Survival Shooterのおおまかな構造


オブジェクトは、PlayerとEnemyに別れる
Enemyにはカプセルコライダーと球コライダーの2つがある

Playerに追加されているscriptは以下の3つ
  • PlayerHealth
 Enemyからの攻撃を処理するTakeDamege()がある
 currentHealth -= amountで体力を減少させ、ダメージ音を鳴らし、
 currentHealthが0以下になると死亡処理
  • PlayerMovement
 入力デバイスの出力を受け取って、Move()で移動
 Turning()がマウスカーソルの方向に向かせる
 Animating()は、boolのwakingフラグによって、モーションを静止と移動で切り替える
  • PlayerShooting
 発射ボタンを押すとShoot()が呼ばれる
 音を鳴らし、gunParticles.Play()で、レーザー銃の発射エフェクトを表示
 Raycastで光線の延長線を調べて、当たっていれば、EnemyのTakeDamage()を呼び出す

Enemyに追加されているscriptは以下の3つ
(攻撃間隔とかHPとか攻撃力はpublic変数になっていて、prefabのうさぎ・クマ・象に設定されている)
  • EnemyHealth
 Playerからの攻撃を処理するTakeDamege()がある
 currentHealth -= amountで体力を減少させ、ダメージ音を鳴らし、
 currentHealthが0以下になると死亡処理(徐々に沈んでいく(sink)処理)←ゾンビなので土に帰る
  • EnemyMovement
 NavMeshAentの機能で、Playerの方向へ移動
  • EnemyAttack
 Playerがコライダーの範囲に入ったらOnTriggerEnter()で、playerInRangeをtrue
 Playerがコライダー外に出たらOnTriggerExit()で、playerInRangeをfalse
 playerInRangeがtrueの時、timerがtimeBetweenAttacksを超えていたら、timerを0初期化して、PlayerのTakeDamage()を呼ぶ
 currentHelthが0以下なら死亡モーションを再生(死亡処理はEnemyHealthの方にある)

タグ:

unity
最終更新:2015年04月22日 17:54