目次
前回のチュートリアル
はじめに
前回は、出現する敵の種類を追加しました
今回は、敵の移動パターンを追加していきます
プレイヤーを他のスクリプトから参照できるように
現在は、すべての敵が一直線に進むだけで、少し味気ないので、
敵の移動パターンを追加して、見栄えを良くしていきます
その下準備として、プレイヤーを他のスクリプトから参照できるようにしていきます
「Player」スクリプトをコードエディタで開き、
変数の定義に下記のコードを追加します
// プレイヤーのインスタンスを管理する static 変数 public static Player m_instance;
そして、Awake 関数の先頭に下記のコードを記述します
// 他のクラスからプレイヤーを参照できるように // static 変数にインスタンス情報を格納する m_instance = this;
これで、他のスクリプトからプレイヤーを参照できるようになりました
敵の移動パターンの追加
今回は、プレイヤーを追尾するような移動パターンを作成していきます
「Enemy」スクリプトをコードエディタで開き、
変数の定義に下記のコードを追加します
public bool m_isFollow; // プレイヤーを追尾する場合 true
そして、Update 関数の先頭に下記のコードを記述します
// プレイヤーを追尾する場合 if ( m_isFollow ) { // プレイヤーの現在位置へ向かうベクトルを作成する var angle = Utils.GetAngle( transform.localPosition, Player.m_instance.transform.localPosition ); var direction = Utils.GetDirection( angle ); // プレイヤーが存在する方向に移動する transform.localPosition += direction * m_speed; // プレイヤーが存在する方向を向く var angles = transform.localEulerAngles; angles.z = angle - 90; transform.localEulerAngles = angles; return; }
これで、敵の移動パターンの追加が完了しました
敵の移動パターンの反映
移動パターンを追加できたので、
「Enemy2」と「Enemy4」がプレイヤーを追尾するように設定していきます
Unity エディタに戻り、「Enemy2」プレハブと「Enemy4」プレハブを
Ctrl を押しながらクリックすることで、同時に選択します
そして、この状態で、「Is Fllow」をチェックします
これで、Unity を再生すると、「Enemy2」と「Enemy4」は
プレイヤーを追尾するようになったことが確認できます
次回は、取得すると経験値が増える宝石を作成していきます