気ままなUnityエンジニアブログ

新米Unityエンジニアが送る解説アウトプットブログです。Twitter : @UjinUnity

MENU

【Unity】前回のFactoryクラス x ObjectPoolの組み合わせの修正

スポンサーリンク

wojtek.hatenablog.com

前回の記事で書いた部分ですが、一部修正しました。

修正箇所をザックリ書くと

  • 生成を1つの関数に
  • オブジェクトの移動関数を変更

の2点になります。

実際の変更は以下の通りです。

生成関数を一元化 

f:id:Wojtek:20190612083953p:plain

前回はバレットを生成する関数が複数箇所にありましたが、それらを1つの関数にまとめました。

(もっと早くやれ)

_beginPosで弾の初期位置を調整しております。

移動処理を変更

f:id:Wojtek:20190612002007p:plain

ShotBullet関数の発生箇所を BulletクラスからCoreクラスへ変更しました。

理由としてはザックリ言うとオブジェクトが動かなかったから!

何言ってんだこいつ・・?と思った方も多いかも知れませんが重要なことです。

 

f:id:Wojtek:20190612084756p:plain

ShotBulletの中身はこんな感じです。

Attackerは攻撃者はプレイヤーか敵か判定します。

(今回の内容には関係ありません。)

disposableはUpdateを監視しており、下記のreturnの部分通り8秒ったらDisposeする処理になっています。

そしてUpdateのSubscribeでバレットを移動させています。

以上が今回の変更点です。

今後の予定

今後ですが、正直今回の修正はあまり良くは思っておりません。

  • 生成・・(Factory)
  • 実体・・(Core)
  • 移動・・(XXBullet)

の様に役割別に動かしたいのが本音ですね。

今後の修正部分の予定ですが、

  • BulletCore内部でxxBullet派生クラスの移動処理を呼ぶ

まずはここを修正し、弾の挙動を管理するクラスの役割を発揮できるようにしていきたいと思います。