Unityでビルド時にエラーが出る : Type '[Assembly-CSharp]AAAAA' has an extra field 'BBBBB' of type 'System.Int32' in the player and thus can't be serialized (expected 'CCCCC' of type 'string[]')
こんな感じの事をしたかった
BaseClass.cs
public class BaseClass : MonoBehaviour { public int ArrayCursor = 0; public string[] NameArray; void Start() { NameArray = new string[3]{ "山田", "鈴木", "佐藤" }; } }
UsingClass.cs
public class UsingClass : MonoBehaviour { public BaseClass BasCls; //エディタ上で設定する想定 void Start() { Debug.Log( "My Name is " + BasCls.NameArray[BasCls.ArrayCursor] ); } }
そうしたらビルド時、こんなエラーが出た
Type '[Assembly-CSharp]BaseClass' has an extra field 'ArrayCursor' of type 'System.Int32' in the player and thus can't be serialized (expected 'NameArray' of type 'string[]')
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
こうしたら通った
BaseClass.cs
public class BaseClass : MonoBehaviour { public int ArrayCursor = 0; public string[] NameArray; void Start() { ArrayCursor = 0; //←■ここに追記した NameArray = new string[3]{ "山田", "鈴木", "佐藤" }; } }
他クラスから直接変数いじったり見たりするのはクソらしいので、これに近い事をやるならgetterとsetterでやった方がいいと思う
docs.microsoft.com