閲覧ありがとうございます.
今回はPrefabで生成したオブジェクト(Enemy)に内包されているTextMeshPro内のデータ(写真の大学名の部分)をテキスト形式で取得し,オブジェクトの名前にしたいと考えています.
以下のようなコードを自分で考えてみたのですが,NullReferenceException: Object reference not set to an instance of an objectが出ました.
どのように書き換えればうまくいくと思われますか.
この部分に何日も躓いており,お力をお借りしたいと思い質問させて頂きました.宜しくお願い致します.
prefabにTextMeshProの内容(大学名)を決定し代入するコードも載せておきます.
C#
1//Spawn(生成)するコード 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using TMPro; 6 7public class Spawner : MonoBehaviour { 8 9 public GameObject Enemy; 10 public GameObject obj; 11 public int spawntime; 12 public bool spawn; 13 14 // Use this for initialization 15 void Start () { 16 spawn = true; 17 } 18 19 // Update is called once per frame 20 void Update () { 21 if (spawn) 22 { 23 Spawn(); 24 } 25 } 26 27 void Spawn () 28 { 29 spawn = false; 30 obj = Instantiate(Enemy, transform.position, transform.rotation); 31 obj.name = this.GetComponent<TextMeshPro>().text; //ここで名前を付けようとしました. 32 StartCoroutine(spawndelay()); 33 } 34 35 IEnumerator spawndelay () 36 { 37 yield return new WaitForSeconds(spawntime); 38 spawn = true; 39 } 40} 41 42 43
C#
1//TextMeshProの内容を決定するコード 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using TMPro; 6 7public class textmesh 8 : MonoBehaviour 9{ 10 public TextMeshPro GeneText; 11 string sentence; 12 string rnd ; 13 public static int c1; 14 public static int c2; 15 // Start is called before the first frame update 16 void Start() 17 { 18 c1 = Random.Range(0, 1001); 19 c2 = Random.Range(0, 1); 20 rnd = csv.getCSV(c1,1) ; //大学名リストからランダムに大学名を取り出して変数に代入 21 GeneText.text = rnd ; //TextMeshProに代入 22 } 23 24 public static int getNum() 25 { 26 return c1; 27 } 28 29 public string getName() 30 { 31 return rnd; 32 } 33 34 // Update is called once per frame 35 void Update() 36 { 37 38 } 39}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/07 05:51