Unityでsceneをまたいで変数(string型)を使いたいのですが、中身がうまく反映されずNullが入りUnity上では何も表示されません。
ソースは以下の通りです。(プログラムの定義量が多いためGetdatastationname2はGetdatastationnameとあまり変わらずstationname2があるため割愛させていただきます)
Getdatastationname、Getdatastationname2の二つのscriptからTagに対応している文字列をstationname、stationname2に代入しUnionでdata1、data2に値を代入しUnityにあるtextに出力したいのですがなぜかNullが入っているというエラー文が出てきます。
エラー文
NullReferenceException: Object reference not set to an instance of an object
Union.Update () (at Assets/script/Union.cs:20)
これはどうしたら出力できるようになるのでしょうか。
ご回答よろしくお願いします。
C#
1using UnityEngine; 2using System.Collections; 3using UnityEngine.UI; 4 5public class Getdatestationname : MonoBehaviour 6{ 7 public static string stationname; 8 9 private Button gotanda; 10 private Button meguro; 11 private Button ebisu; 12 private Button sibuya; 13 private Button harazyuku; 14 private Button yoyogi; 15 private Button sinzyuku; 16 private Button sinookubo; 17 private Button takatdanobaba; 18 private Button meziro; 19 private Button ootuka; 20 private Button sugamo; 21 private Button komagome; 22 private Button tabata; 23 private Button nisinippori; 24 private Button nippori; 25 private Button uguisudani; 26 private Button ueno; 27 private Button akihabara; 28 private Button kanda; 29 private Button tokyou; 30 private Button yuurakutyou; 31 private Button sinbasi; 32 private Button hamamatutyou; 33 private Button tamati; 34 private Button sinagawa; 35 private Button oosaki; 36 37 // Use this for initialization 38 void Start () 39 { 40 41 gotanda = GetComponent<Button>(); 42 meguro = GetComponent<Button>(); 43 ebisu = GetComponent<Button>(); 44 sibuya = GetComponent<Button>(); 45 harazyuku = GetComponent<Button>(); 46 yoyogi = GetComponent<Button>(); 47 sinzyuku = GetComponent<Button>(); 48 sinookubo = GetComponent<Button>(); 49 takatdanobaba = GetComponent<Button>(); 50 meziro = GetComponent<Button>(); 51 ootuka = GetComponent<Button>(); 52 sugamo = GetComponent<Button>(); 53 komagome = GetComponent<Button>(); 54 tabata = GetComponent<Button>(); 55 nisinippori = GetComponent<Button>(); 56 nippori = GetComponent<Button>(); 57 uguisudani = GetComponent<Button>(); 58 ueno = GetComponent<Button>(); 59 akihabara = GetComponent<Button>(); 60 kanda = GetComponent<Button>(); 61 tokyou = GetComponent<Button>(); 62 yuurakutyou = GetComponent<Button>(); 63 sinbasi = GetComponent<Button>(); 64 hamamatutyou = GetComponent<Button>(); 65 tamati = GetComponent<Button>(); 66 sinagawa = GetComponent<Button>(); 67 oosaki = GetComponent<Button>(); 68 69 gotanda.onClick.AddListener(OnClickButton); 70 meguro.onClick.AddListener(OnClickButton); 71 ebisu.onClick.AddListener(OnClickButton); 72 sibuya.onClick.AddListener(OnClickButton); 73 harazyuku.onClick.AddListener(OnClickButton); 74 yoyogi.onClick.AddListener(OnClickButton); 75 sinzyuku.onClick.AddListener(OnClickButton); 76 sinookubo.onClick.AddListener(OnClickButton); 77 takatdanobaba.onClick.AddListener(OnClickButton); 78 meziro.onClick.AddListener(OnClickButton); 79 ootuka.onClick.AddListener(OnClickButton); 80 sugamo.onClick.AddListener(OnClickButton); 81 komagome.onClick.AddListener(OnClickButton); 82 tabata.onClick.AddListener(OnClickButton); 83 nisinippori.onClick.AddListener(OnClickButton); 84 nippori.onClick.AddListener(OnClickButton); 85 uguisudani.onClick.AddListener(OnClickButton); 86 ueno.onClick.AddListener(OnClickButton); 87 akihabara.onClick.AddListener(OnClickButton); 88 kanda.onClick.AddListener(OnClickButton); 89 tokyou.onClick.AddListener(OnClickButton); 90 yuurakutyou.onClick.AddListener(OnClickButton); 91 sinbasi.onClick.AddListener(OnClickButton); 92 hamamatutyou.onClick.AddListener(OnClickButton); 93 tamati.onClick.AddListener(OnClickButton); 94 sinagawa.onClick.AddListener(OnClickButton); 95 oosaki.onClick.AddListener(OnClickButton); 96 } 97 98 // Update is called once per frame 99 void Update () 100 { 101 102 } 103 public void OnClickButton() 104 { 105 Debug.Log("クリックされた"); 106 if (tag == "gotanda") 107 { 108 Debug.Log("五反田"); 109 stationname = "五反田"; 110 } 111 if (tag == "meguro") 112 { 113 Debug.Log("目黒"); 114 stationname = "目黒"; 115 } 116 if (tag == "ebisu") 117 { 118 Debug.Log("恵比寿"); 119 stationname = "恵比寿"; 120 } 121 if (tag == "sibuya") 122 { 123 Debug.Log("渋谷"); 124 stationname = "渋谷"; 125 } 126 if (tag == "harazyuku") 127 { 128 Debug.Log("原宿"); 129 stationname = "原宿"; 130 } 131 if (tag == "yoyogi") 132 { 133 Debug.Log("代々木"); 134 stationname = "代々木"; 135 } 136 if (tag == "sinzyuku") 137 { 138 Debug.Log("新宿"); 139 stationname = "新宿"; 140 } 141 if (tag == "sinookubo") 142 { 143 Debug.Log("新大久保"); 144 stationname = "新大久保"; 145 } 146 if (tag == "takadanobaba") 147 { 148 Debug.Log("高田馬場"); 149 stationname = "高田馬場"; 150 } 151 if (tag == "meziro") 152 { 153 Debug.Log("目白"); 154 stationname = "目白"; 155 } 156 if (tag == "ootuka") 157 { 158 Debug.Log("大塚"); 159 stationname = "大塚"; 160 } 161 if (tag == "sugamo") 162 { 163 Debug.Log("巣鴨"); 164 stationname = "巣鴨"; 165 } 166 if (tag == "komagome") 167 { 168 Debug.Log("駒込"); 169 stationname = "駒込"; 170 } 171 if (tag == "tabata") 172 { 173 Debug.Log("田端"); 174 stationname = "田端"; 175 } 176 if (tag == "nisinippori") 177 { 178 Debug.Log("西日暮里"); 179 stationname = "西日暮里"; 180 } 181 if (tag == "nippori") 182 { 183 Debug.Log("日暮里"); 184 stationname = "日暮里"; 185 } 186 if (tag == "uguisudani") 187 { 188 Debug.Log("鶯谷"); 189 stationname = "鶯谷"; 190 } 191 if (tag == "ueno") 192 { 193 Debug.Log("上野"); 194 stationname = "上野"; 195 } 196 if (tag == "okatimati") 197 { 198 Debug.Log("御徒町"); 199 stationname = "御徒町"; 200 } 201 if (tag == "akihabara") 202 { 203 Debug.Log("秋葉原"); 204 stationname = "秋葉原"; 205 } 206 if (tag == "kanda") 207 { 208 Debug.Log("神田"); 209 stationname = "神田"; 210 } 211 if (tag == "tokyou") 212 { 213 Debug.Log("東京"); 214 stationname = "東京"; 215 } 216 if (tag == "yuurakutyou") 217 { 218 Debug.Log("有楽町"); 219 stationname = "有楽町"; 220 } 221 if (tag == "sinbasi") 222 { 223 Debug.Log("新橋"); 224 stationname = "新橋"; 225 } 226 if (tag == "hamamatutyou") 227 { 228 Debug.Log("浜松町"); 229 stationname = "浜松町"; 230 } 231 if (tag == "tamati") 232 { 233 Debug.Log("田町"); 234 stationname = "田町"; 235 } 236 if (tag == "sinagawa") 237 { 238 Debug.Log("品川"); 239 stationname = "品川"; 240 } 241 if (tag == "oosaki") 242 { 243 Debug.Log("大崎"); 244 stationname = "大崎"; 245 } 246 Debug.Log(stationname); 247 } 248 public static string getStationname() 249 { 250 return stationname; 251 } 252} 253
C#
1using UnityEngine; 2using System.Collections; 3using UnityEngine.UI; 4 5public class Union : MonoBehaviour 6{ 7 8 Getdatestationname data1; 9 Getdatestationname2 data2; 10 // Use this for initialization 11 void Start () 12 { 13 string data1 = Getdatestationname.getStationname(); 14 string data2 = Getdatestationname2.getStationname2(); 15 } 16 17 // Update is called once per frame 18 void Update () 19 { 20 this.GetComponent<Text>().text = "aaa" + data1.ToString() + data2.ToString(); 21 22 } 23} 24
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/26 07:56
2018/09/26 09:53
2018/09/27 02:20
2018/09/27 02:27
2018/09/27 04:40
2018/09/27 05:55
2018/09/27 06:37 編集
2018/09/27 07:46
2018/09/27 09:00
2018/09/27 11:27
2018/09/28 01:33