【Unity2D 入門】横スクロールアクションゲームを作ってみたい -敵のAIの作成
※非常にニュアンスだけのざっくりとしたソースに出来上がり非常に不本意ですが、
やりたい事はこんな感じです
- 敵はジャンプ、歩く、攻撃をランダムに選択
- ランダムに選択されたモーションをプレイヤーに対して行なう
- 方向も変わればオブジェクトの向きも変える
こんな物を書いてみました。
mob_AI
こんなかんじですが、、、
非 常 に 雑 か つ 汎 用 性 の 無 い ソ ー ス !!
認めます。これじゃ正直今後の拡張には一切耐えられないでしょう。
ソースの問題点
モーションの処理を使い回せない
この敵の動きって正直playerと同じなんですよね、この処理をコピーしてるなんてダサすぎです
モーションが増える度にupdate内にソース行が増えていく
今はアイドル状態、攻撃、ジャンプ、歩くの4つの動きなのでまだ良いですけど。
こんなもんをいちいち持っていられません。
playerの向きを取得するのに毎回Findが走る
最初はplayerオブジェクトはメンバにセットされていたのですが、
実際に動かしてみると、最初にソースが読み込まれた時のplayerの位置情報をキャッシュしてしまい、
playerが動いても敵はずっと同じ方向にplayerがいるという認識をしました。
これをなんとかしたかったのですが、方法が見つからず非常に不本意ながらFindしてみました。
次回へ向けての課題
モーションを実行するソースは個別に作る
ただジャンプするというtransformを変更するスクリプトを作り
それを対象のオブジェクトにアタッチするのが普通だと思います。
オブジェクトの可変データに対するアプローチ方法の確立
public GameObject player;
で宣言したデータが可変する場合に毎フレーム毎に最新の情報を取得するのはこれしかできないのか?
をもう少し深く掘り下げたい