超初心者のころに分からなかったことのメモ
参考:Unityを使ってゲーム作成にチャレンジ Vol.3: 「2D縦スクロール シューティング」を作ってみよう (中高生向けUnity入門)
オブジェクトをスクリプトから取得したい
//private変数だとインスペクターで関連を付けられない
private GameObject gamaManager;
//だからスクリプトで呼び出す
//これがオブジェクトGameManagerを取得する方法
gameManager = GameObject.Find("GameManager");
//そこからコンポーネントにアクセスする例
gameManager.GetComponent<ScoreManager>().AddScore(3);
//まとめて記述することもできる
scoreManager = GameObject.Find("GameManager").GetComponent<ScoreManager>();
scoreManager.AddScore(3);
なぜスクリプトから取得するのか?
p214より
敵はScene上にはいないため、作成されたタイミングでスクリプトからの取得が必要。
なぜprivateを使うのか?
初心のころの記憶。
「全部publicでもいいんじゃね?」
privateは他から値を更新されにくいのが特徴。
複数人での開発での事故を防ぐ。
p169より
isBossModeを確認するGetBossMode()関数は必要なのか?
なぜ直接isBossModeがはいらないのか?
//ScoreManagerの記述より
private bool isBossMode = false;
public bool Get_BossMode()
{
return isBossMode;
}
//EnemyManagerより
if(class_ScoreManager.Get_BossMode() == false)
isBossModeをpublic変数にして、
if(class_ScoreManager.isBossMode == false)でも可能。
参考:Unityを使ってゲーム作成にチャレンジ Vol.3: 「2D縦スクロール シューティング」を作ってみよう (中高生向けUnity入門)
コメント