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