Unityの実装で質問があります。
実現したいこと
Prefabから生成したオブジェクトがタッチされたとき、Canvasの文字がそのタッチされたオブジェクトの名前に変わるようにしたいです。
構成
- GameMaster(GameMaster.csをアタッチ)
C#
1public GameObject[] testPrefabs 2float timeleft; 3 4void Start () { 5 GameObject obj = Instantiate(testPrefabs[0], this.transform.position, Quaternion.identity) as GameObject; 6} 7 8//質問後に抜けてました。すみません(2/5 0:10) 9void Update(){ 10 //1秒ごとに生成 11 timeleft -= Time.deltaTime; 12 if (timeleft <= 0.0) { 13 timeleft = 1.0f; 14 GameObject obj = Instantiate(testPrefabs[0], this.transform.position, Quaternion.identity) as GameObject; 15 } 16}
Inspectorで、Assets/Prefab内のプレファブをtestPrefabsにセット。
- プレファブ(PrefabScript.csをアタッチ)
C#
1public Text objName; //どのオブジェクトを触ったか表示するテキスト 2 3//タッチされたオブジェクトの名前をテキストに表示 4public void TouchObj(GameObject obj) { 5 objName.text = obj.name; 6}
Add ComponentでEventTriggerを追加。
EventTriggerのEventTypeはPointerClickで、自身を選択して、FunctionはPrefabScript.TouchObjとしました。
ここで、InspectorからPrefabScript.csのobjNameに、Canvas内のTextをセットしようとしましたが、できませんでした。
どのようにすれば、Textをセットできますでしょうか?
また、他に一般的な方法がありましたら提言していただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/04 15:19