・
レビュー 4 件
・
平均評価 4.5
ECS/DOTSを初めて実習してみました! 理論的にすべてを扱っているわけではありませんが、ECSがどのようなものなのか確実に理解できる時間でした。 他の学習者の方々も完走後、様々な機能についてはUnityの公式ドキュメントを通じて学習すれば大きな助けになると思います。 完走後に復習と自習を兼ねてスクリプトを修正してみましたが、他の学習者の方々もチャレンジしてみると良いと思います! 良い講義ありがとうございました!!!! --- [復習及び自習] 1. Movement System PlayerMovementSystemとProjectileMovementSystemをIJobEntityベースで動作するようにリファクタリングし、Burstコンパイル効率を高め、並列処理が可能になるよう修正しました。 - PlayerMovementSystemは単一エンティティですが、他のものと一貫性を保つのが良いと思い、Job構造を追加し、ロジック全体がBurstコンパイルされるよう保証しました。 - ProjectileMovementSystemのforeachループを削除し、ScheduleParallelを使用して多数の発射体が同時に移動する際、ワーカースレッドを効率的に使用するよう修正しました。 2. HP Bar System PlayerHpBarSystemとEnemyHpBarSystemにComponentLookup.DidChange()チェックを追加し、PlayerComponentとEnemyComponentのデータが実際に変更された場合のみFillAmountを計算するよう修正しました。 3. Collision ProjectileCollisionSystemで手動でEntityCommandBufferを生成し、Job完了待機時に行っていたComplete、PlaybackをEndFixedStepSimulationEntityCommandBufferSystemを使用する方式に修正しました。 4. Audio 最後の効果音実装まで完了後、メインシーンからゲームシーンに移動する際、AudioManagerでエンティティが即座に生成されずエラーが発生しているようです。 そのため、他のSystemスクリプトで行ったように (audioBufferEntity == Entity.Null || !entityManager.Exists(audioBufferEntity)) をチェックし、Updateでエンティティの存在有無を確認後、再生できるよう修正しました。
貴重な講義レビューありがとうございます。〜 詳細なリファクタリング過程まで紹介してくださって 他の方々にも大変参考になると思います。




