스크립팅이 가능한 오브젝트 (ScriptableObject)
Unity에서는 스트립팅이 가능한 오브젝트라는 데이터를 관리할 수 있는 스크립팅을 지원한다.
ScriptableObject는 스크립트 인스턴스로부터 독립한 대량의 공유 데이터를 저장할 수 있기 때문에 프로퍼티나 설정 값에 주로 많이 사용한다. 위에 인스펙터에서 수정이가능한 형태로 제공되기 때문에. 간단한 데이터나 빌드에 대한 정보 같은 프로퍼티 설정에 많이 사용한다.
public class SHC_SriptableObject : ScriptableObject
{
[SerializeField]
private string VersionName ="";
}
if (GUILayout.Button("Confirm", GUILayout.Width(GUILayoutWidth)))
{
SHC_ScriptableObject scriptObject = Resources.Load("SHC_SriptableObject") as SHC_ScriptableObject;
if (null == scriptObject)
{
Debug.LogErrorFormat("SHC_SriptableObject Not Exist !!");
return;
}
scriptObject.SetAppName(this.m_strAppName);
scriptObject.SetVersion(this.m_strVersion);
scriptObject.SetPlayType(this.m_strPlayType);
scriptObject.SetVersionCode(int.Parse(this.m_strVersionCode));
scriptObject.SetDebugFlag(this.m_bDebugFlag);
scriptObject.SetPakageName(this.m_strPakageName);
this.m_AdMob_Reward_ID_AOS = new List<string>();
string[] tokenInfo = this.m_AdMob_RewardValue.Split('\n');
for(int i =0 ;i< tokenInfo.Length;i++){
this.m_AdMob_Reward_ID_AOS.Add(tokenInfo[i]);
Logger.LogFormat("reward id :{0}",tokenInfo[i]);
}
EditorUtility.DisplayDialog("설정","설정변경되었습니다.", "확인");
this.UpdateSetting();
this.SaveSetting();
EditorUtility.SetDirty(scriptObject);
}
ScriptableObject에서 Class를 처리하는 방법
[System.Serializable]
public class Firebase_Terms
{
public string jsonString = string.Empty;
public string GetPolicyURL()
{
return string.Empty;
}
public string GetTermsURL()
{
return string.Empty;
}
}
public class FirebaseConfigScriptableObject : ScriptableObject
{
[Header("-----terms")]
public Firebase_Terms terms= new Firebase_Terms();
}
URL : https://docs.unity3d.com/kr/530/Manual/class-ScriptableObject.html
★★☆☆☆
반응형
'개발 > Unity' 카테고리의 다른 글
Unity) JsonUtility class Parsing Problem (0) | 2021.03.18 |
---|---|
Unity) Inspector in Dictionary Serialize (6) | 2021.02.27 |
Unity)Bolt - 볼트 비쥬얼 스크립팅 (2) | 2021.02.23 |
문제해결)Unity) Visual Studio Debugging Freezing 관련 버그 (2) | 2021.02.22 |
Unity)해결) An error occurred while resolving packages:~~ (0) | 2021.01.04 |
댓글