Unityを触っている時、他クラスで宣言したゲームオブジェクトを操作する時にnullになってしまいます。
C#
1public class TestA : MonoBehaviour{ 2 3 void Start(){ 4 TestB testB = new TestB(); 5 testB.LogTest(); 6 testB.ImgTest(); 7 } 8}
C#
1public class TestB : MonoBehaviour { 2 3 int num = 10; 4 public GameObject img; 5 6 public void LogTest(){ 7 Debug.Log(num); 8 } 9 10 public void ImgTest(){ 11 img.SetActive(false); 12 } 13}
【出力結果】
10
imgがnull
※imgはちゃんとInspectorでオブジェクトを設定しております
通常のintやfloatなどの変数ではnullにならないのに、何故GameObjectだとnullになってしまうのでしょうか?
ご教授いただければ幸いです。
ちなみに、以下のようにTestBをnewするのではなくPublic変数として宣言し、InspectorでTestBを設定して実行したところ
きちんとimgが非アクティブになりました。
c#
1public class TestA : MonoBehaviour{ 2 3 public TestB testB; //Inspectorで設定 4 5 void Start(){ 6 testB.LogTest(); 7 testB.ImgTest(); 8 } 9}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/03 12:17