์์ ์ฝ๋๋ ์ฐ๋ฆฌ๊ฐ ์ ๋ํฐ์์ ์๋ก์ด ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์์๋ ๋ณผ์ ์๋ ์ฝ๋๋ค.
์ฝ๋ฉ์ ๋ง์ด ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ์ ๋ง ๋ง์ด ๋ดค์ ์ฅ๋ฉด์ด๋ค.
๊ฐ๋ฐ์ ํ๋ฉด ํ ์๋ก ์ฌ๊ธฐ์๋ถํฐ ๋ ์ฑ๊ธํค ํจํด์ ๋ง๋ค๊ฑฐ๋ ๋ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค๊ฑฐ๋ ํ๋๊ฒ ๋งค์ฐ ๊ท์ฐฎ๋ค
๋ฌผ๋ก ์ผ๋ฐํ ์์์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๊ณ ๋๋ ๊ทธ ๋ฐฉ๋ฒ์ ์์ฃผ ์ฐ๊ณ ์์ง๋ง
์ค๋์ ์์์ ์ง์ํ๋ ์ฌ๋๋ค์๊ฒ ์ถ์ฒํ๋ ์ ๋ํฐ์ ํ ๊ธฐ๋ฅ์ ์๊ฐํ๊ฒ ๋ค.
๋ฐ๋ก ScriptTemplates ํด๋์ด๋ค.
์ ๋ํฐ์๋ Resorurces ํด๋๋ Editor ํด๋ ๋ฑ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋๋ฐ ์ฌ์ฉ๋๋ ํน๋ณํ ์ด๋ฆ์ ํด๋๋ค์ด ์กด์ฌํ๋ค.
Unity - Manual: Special folder names (unity3d.com)
์ด๊ฒ๋ ๊ทธ์ค ํ๋๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
Assets ํด๋ ๋ฐ๋ก ๋ฐ์ ScriptTemplates ํด๋๋ฅผ ๋ง๋ค์ด ์ฃผ๊ณ ์ด ์์ ํ ์คํธ ํ์ผ์ ํ๋ ๋ง๋ค์ด ๋ณด์.
์ด๋ ํ ์คํธํ์ผ์ ์ด๋ฆ์ ๋ค์๊ณผ ๊ฐ์ ํฌ๋งท์ผ๋ก ์ง์ผ๋ฉด ๋๋ค.
์ธ๋ฑ์ค-์ฐํด๋ฆญ์๋์ค๋๋ฉ๋ดํด๋์ด๋ฆ__๋ฉ๋ด์์ดํ ์ด๋ฆ-์์ฑ์ํ์ผ์ด๋ฆ.cs.txt
๋นจ๊ฐ๊ณผ ํ๋์ฌ์ด, ์ด๋ก๊ณผ ํํฌ ์ฌ์ด๋ ํ์ดํ(-)์ด๊ณ
ํ๋๊ณผ ์ด๋ก ์ฌ์ด๋ ์ธ๋๋ฐ ๋๊ฐ(__)์ด๋ค
์ธ๋๋ฐ๋๊ฐ๋ก ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๊ณ์๋๋ฆด์๋ ์๋ค.
๋ค ํ์ผ๋ฉด ์ด์ ํ ์คํธ๋ด์ฉ์ ์ฑ์์ฃผ์
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class #SCRIPTNAME# : MonoBehaviour
{
public static #SCRIPTNAME# instance;
void Awake()
{
if(instance == null)
instance = this;
}
}
์ด๋ ํ์์ ์ ์คํธ๋ฆฝํธ๋ฅผ ๋ง๋ค๋ ํ์ผ๋ช ์ NewMonoBehaviour ๋์ ๋ค๋ฅธ ์ด๋ฆ์ ์ ์ผ๋ฉด ๊ทธ ์ด๋ฆ์ผ๋ก ํด๋์ค๋ช ์ด ๋์ฒด ๋๋ฏ
#SCRIPTNAME#์ ์์์ ํ์ผ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ์ค๊ฒ์ด๋ค.
๋คํ์ผ๋ฉด ์ ๋ํฐ๋ฅผ ๊ป๋ค๊ฐ ๋ค์ ์ผ์ ํด๋น ํ์ผ์ ์ฝ๊ณ ์๋ํ๊ฒ ํด๋ณด์.
์ฌ์ง๊ณผ ๊ฐ์ด ํ
ํ๋ฆฟ์ด ์ ์์ฑ๋๊ณ ๋ง๋ค๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ฉด ์ ๋ฐ๋๋ค.
๋ค์์ ScriptableObject ํ ํ๋ฆฟ ์์์ด๋ค.
using UnityEngine;
[CreateAssetMenu(fileName = "New #SCRIPTNAME#", menuName = "ScriptableObjects/#SCRIPTNAME#")]
public class #SCRIPTNAME# : ScriptableObject
{
}
์์ ์คํ ์ด ๋ค์ ธ๋ณด๋๊น #SCRIPTNAME# ๋ง๊ณ ๋ ํ์ผ ์์ฑํ ์๊ฐ์ด๋ ๊ฐ๋ฐ์์ด๋ฆ ๋ฑ ์ฌ๋ฌ ํค์๋ ์ถ๊ฐํด์ฃผ๋ ์์ ๋ ์๋๋ผ
๋ ์์ ๋ง์ ํค์๋๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๋ ๊ตฌ๊ธ๋ง ํด๋ณด๋๊น ์์ผ๋ ๊ด์ฌ์์ผ๋ฉด ์ฐพ์๋ด๋ผ
์ฑ๊ธํค ์์ ์ซ์ด์ ๋งค๋ฒ ๋ฐ๋ก ๋ง๋ค์ด์ฃผ๊ณ ์์๋๋ฐ ๊ฐ์ฌํ๊ฑฐ์์
ํน์ ์์์ผ๋ก ์ฑ๊ธํค์ ์์ฐ๋๊ฑด F12๋๋ฌ์ Instance๋ณ์๋ฅผ ์ถ์ ํ ๋ ๋ถ๋ชจํด๋์ค(Singleton)์ผ๋ก ๊ฐ์ ธ์ ๊ทธ๋ฐ๊ฑด๊ฐ์? ์ด๋ฐ์์ผ๋ก ์ถ์ ํ๊ธฐ ์ข ๋ถํธํด์?
๋ผ์ด๋ ์ปจํธ๋กค b ์ฌ์ฉ์ค์ด๋ผ ๊ทธ๊ฑด ๋ชป ๋๊ผ๋๋ฐ ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ฑ๊ธํค ์ ์ฉํด์ค ์ ๋ค์ด dontdestroy๋ ์ด๊ธฐํ ์ฌ๋ถ๊ฐ ์ ๊ฐ๊ฐ์ด๋ผ ๊ทธ๋ฌ์ด์.
๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ ๊ด๋ฆฌํ๊ธฐ๋ ๋ ๊น๋ํด๋ณด์ด๋ค์. Awake ์ดํ์๋ง ์ฐ๋ฉด null ๋ฌธ์ ๋ ๊ด์ฐฎ์๊ฑฐ ๊ฐ๊ณ ์์ค๋ ๊น๋ํ๊ณ
์์์ ์ฐ๋ค๋ณด๋ฉด ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ด๊ธฐ๋ฅ ์ ๊ธฐ๋ฅ ๋ง๋ถ์ด๊ณ ์์ ํ๊ณ ๋์ค๊ฐ์ ๋ฐ๊พธ๊ณ ํ๋ค๋ณด๋ ๋ง ์งํํ๋ค๊ฐ ๋ถ๋ชจ ์คํฌ๋ฆฝํธ์ ๋ณ๊ฒฝ์ฌํญ ์๊ฒจ์ ์์ ํ๋ฉด ์์ ์คํฌ๋ฆฝํธ๋ค ์ธ๊ทธ๋ฆฌ ์์ ํด์ผ๋๋ค๋ณด๋ ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ํฐ ๊ฒ ๊ฐ๋๋ผ๊ณ ์. ๊ทธ๋์ ๊ทธ๋ฅ ์ ๋ง ์ต์ํ์ผ๋ก ์์ํ๊ฑฐ๋ ๊ตณ์ด ํ์ํ๊ฒ ์๋๋ฉด ์ง์ํ๊ณ ์์ด์.
์ค ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ ์ข๋ค