実現したいこと
var characterStorage
がnullなのを解決したいです。
CharacterStorage.csの変数をTestCharacterStorage.csの変数に代入しようと考えています。
VisualStudio上ではエラーは出ていなく、自分の調査力では不明で詰まっております。助言いただければ嬉しいです。
発生している問題・エラーメッセージ
UnityをPlayモードにするとエラーが発生して代入までいかない。
NullReferenceException: Object reference not set to an instance of an object TestCharacterStorage.Start () (at Assets/scripts/Manager/TestCharacterStorage.cs:15)
該当のソースコード
TestCharacterStorageにアタッチされているTestCharacterStorage.cs
C#
1using System.Collections.Generic; 2using UnityEngine; 3using System.Collections; 4 5public class TestCharacterStorage : MonoBehaviour 6{ 7 [SerializeField] GameObject objCharacterStorage;//CharacterStorageオブジェクトがアタッチされている。 8 9 void Start() 10 { 11 var characterStorage = objCharacterStorage.GetComponent< CharacterStorage.Ui.MainMenu > (); 12 13 if (characterStorage == null) Debug.Log("nullです"); 14 15 string MainMenuLanguage = characterStorage.Japan[0][0]; 16 } 17}
CharacterStorageにアタッチされているCharacterStorage.cs
C#
1using System.Collections.Generic; 2using UnityEngine; 3using System.Collections; 4 5namespace CharacterStorage 6{ 7 namespace Ui 8 { 9 public class CharacterStorage : MonoBehaviour { }; 10 11 public class MainMenu : MonoBehaviour 12 { 13 //とある事情で配列の配列をしています 14 public string[][] Japan { get; } = 15 { 16 new [] 17 { 18 "aaa", 19 "bbb", 20 }, 21 new [] 22 { 23 "ccc", 24 }, 25 new [] 26 { 27 "ddd", 28 "eee", 29 "fff", 30 "ggg", 31 "hhh" 32 } 33 }; 34 } 35 } 36}
試したこと
①[SerializeField] GameObject objCharacterStorage;
オブジェクトがアタッチされているか確認をした。CharacterStorageオブジェクトがアタッチされていた。
②if (characterStorage == null) Debug.Log("nullです");
代入した直後に確認をした。nullだった。
補足情報(FW/ツールのバージョンなど)
Unity 3.2f1
回答1件
あなたの回答
tips
プレビュー