Button属性のObjectをPrefab化してそのButtonからアクションを発生させたいのですが
設定がうまくいきません。
生成するPrefab
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PrefabScript : MonoBehaviour { [SerializeField] GameObject prefab; // ButtonのPrefab // Start is called before the first frame update void Start() { for (int i=0; i < 10; i++) { var item = GameObject.Instantiate(prefab) as GameObject; item.transform.SetParent(panel.transform, false); } } }
やりたいことは下記です。
<図>
Canvas
GameObjectA(デフォルトアクティブ)--GameObjectC(Button)←PrefabScript
GameObjectB(デフォルト非アクティブ)
<説明>
1)PrefabScriptはGameObjectAの子オブジェクトのGameObjectCにアタッチして
prefabを生成しています。
2)1で生成されたprefabのボタンをタップするとGameObjectAを非アクティブにして
GameObjectBをアクティブにしたい
public class ActiveScript : MonoBehaviour { [SerializeField]GameObject GameObjectA; [SerializeField]GameObject GameObjectB; public void SetActiveScript() { GameObjectA.SetActive(false); GameObjectB.SetActive(true); } }
3)しかしこのActiveScriptを空のObjectにアタッチして作成しても
prefabから参照することができません。
(prefabのインスペクタのOnClick()で参照できない)
4)かといってprefab内にActiveScriptを作ると
今度はGameObjectAとGameObjectBを参照することができません。
どうすればできるのでしょうか?分かる方お手数ですが教えて下さい。
環境)
PC: mac
Unity2018.2
言語:C#
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/13 08:46