DungeonEaterの処理の流れ

DungeonEaterの処理の流れ



<プレーヤーが敵を攻撃-その処理の流れ>

1.
  • MonsterCtrl.OnTriggerEnter
  • PlayerController.Encount(Transform other)
  • PlayerController.m_encountFunc(other)デリゲート起動
  • PlayerController.Encount_Normal(Transform other)
  • PlayerController.m_weapon.AutoAttack(other);
  • Weapon.AutoAttack(Transform other)
  • Weapon.SwordAutoAttack()
  • GameCtrl.OnAttack()
★Instantiate(SWORD_ATTACK_OBJ,projectilePos,Quaternion.identity);//これにより攻撃(2.へと続く)
  • Weapon.Remove()
  • GameCtrl.OnEndAttack()

2.
プレーヤーキャラクタの前方に出現した剣の当たり判定が以下の処理を行う
  • ProjectileScr.Start()
  • OnTriggerEnter(Collider other)
  • MonsterCtrl.Damage()
  • SendMessage ("OnDead");
  • CharaAnimator.OnDead()
  • GridMove.OnDead()
  • Score.AddScore(int point)
  • BillBoradText.SetText(string text)
  • StartCoroutine ("Dead");
  • MonsterCtrl.Dead ()
  • GridMove.OnRebone()//気絶した敵が再び動き出す



<プレーヤーが敵にやられる処理>

dungeonEater_routine1.jpg

  • MonsterCtrlのOnTriggerEnterが発端。
ステータスがNORMAL以外なら以下の処理はキャンセルされる(例えばDEADであった場合キャンセルされる)
otherの引数には自分のtransformを渡している。

  • Encountでは純粋にデリゲートを実行している。プレーヤーがNORMAL状態の場合、m_encountFuncにはEncount_Normalが代入されている。
otherの引数は受け取った引数をそのまま渡している。

  • Encount_Normalでは武器の有無を調べ持っていない場合「Attack」メッセージを発行している。引数にはプレーヤーのtransformを渡している
もし、武器を持っていた場合はotherに対して攻撃を仕掛ける為、ウェポンコンポーネントの関数にotherを引き渡して実行している。
ここではプレーヤー側への攻撃「Attack」を追いかける。

  • Attack
アタックターゲットにプレーヤーキャラクターのtranfsormを受け取る。
AttackSubをコルーチン起動。

  • AttackSub
ここでは剣を振り下ろすアニメーション。GridMoveのHitStopを使った敵、主人公の動きの停止。効果音の再生。カメラのズーミング。
それらを処理する間の待機時間の実行を行っている。重要な処理経路は「Damage」メッセージの発行部分。これにより主人公に死を与える。

  • Damage
ここでプレーヤーコントロールの状態遷移を行う
ステータスを「DEAD」にして必要な各デリゲート変数を必要な関数に書き換える。これによりm_encountFuncも書き換わり
Encountで実行される関数も変化する。これにより、今後、MonsterCtrlのOnTriggerEnterのイベントが発生しても何度もプレーヤーが
攻撃される事がなくなる。

  • State_Dead
チェンジステートによりコルーチンとして起動される。キャラクターアニメーターコンポーネントのOnDeadをメッセージ起動。3秒待って
PlayerIsDeadを起動。以降ゲームコントロールコンポーネントが残機数やデモモードであるか等を精査してリトライやリスタート、
ゲームオーバーシーケンス等を制御していく



  • 最終更新:2013-09-14 01:49:13

このWIKIを編集するにはパスワード入力が必要です

認証パスワード