プレファブ化した複数のキャラクターの移動、停止、削除などをゲーム全体制御用スクリプトで制御する意図で下記のスクリプトを書きましたが、プレファブ化する前は正常に動作していましたが、プレファブ化し、手作業で複数のインスタンスをヒエラルキービューに配置した後は、動作しなくなりました。
おそらくプレファブからインスタンス化した場合のGetComponentのやり方が問題ではないかと考えていますが、どうしたらよいかわからず困っています。
プレファブからインスタンス化した場合のGetComponentを介した制御の方法について、下記のスクリプトが正常に動作する方法(GameController から制御する方法)を教えていただければと思います。
※質問用に下記のスクリプトは単純化させています
(ボタンはテスト用に配置したものです)
//ゲーム全体制御用スクリプト
//(EmptyのGameControllerオブジェクトにアタッチ)
//CharaPrefabはインスペクタ上で設定済
//PushButton()はボタンUIのOnClick()からコール
public class GameController : MonoBehaviour {
public GameObject CharaPrefab;
public void PushButton() { CharaPrefab.GetComponent<CharaPrefab>().walkFlag = true; }
}
//スプライト制御用スクリプト
//(プレファブ化したスプライトオブジェクトにアタッチ)
public class CharaPrefab : MonoBehaviour {
public bool walkFlag = false;
// Update is called once per frame void Update () { if (walkFlag) { transform.Translate(0.05f, 0, 0); } }
}
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。