ゾンビをひと蹴りで10点、倒すと1000点
02のハイキックはHPに-50ダメージ
01のスピンキックはHPに-100ダメージ
ということで、HPゲージの上に獲得スコアを3DTextで表示
ゾンビのやられたモーションは、AssetStoreのFreeのBoxingAnimationのKnockoutを使用
https://www.assetstore.unity3d.com/en/#!/content/26693
モーションのrigがgenericになってる場合はhumanoidに変更してapplyしておけば
Humanoidのmecanimでそのまま使える(めちゃ便利で助かる)
倒した時は勝利モーションで、UnityChanのWinモーションを使用(キメの敬礼が可愛いw)
01さんの方が攻撃力があるので、スコア獲得でも有利なはず
あと、距離が10f以内の敵だけを索敵対象にして、敵がいないときはランダムウォークにしてみました。視界という奴ですね
スコア表示は、セーラー服さんのObjectにchildとして3DTextを追加して、
以下のコードで値を設定
childObject = gameObject.transform.FindChild("exp").gameObject; childObject.GetComponent<TextMesh>().text = ""+exp;
攻撃に関しては、
if( targetObj.GetComponent<ZombieController> ().hp<=atk) { exp+=1000;animator.SetBool ("Win", true); myTimer2 = 2f; }else{ exp+=10; animator.SetBool ("SpinKick", true); myTimer2 = 1.5f; } targetObj.GetComponent<ZombieController> ().DAMAGE (atk);
一蹴りでゾンビのHPが無くなるときはWinモーション遷移して、タイマーで2秒遷移停止
まだゾンビが元気のときは、キックモーション遷移して、1.5秒遷移停止
遷移停止しておけば、すぐ歩き出すことでモーションが中断しない
これってAnimationだとIsPlaying()なんかで再生中か判るようだけど、
Animatorは、
AnimatorStateInfo stateInfo = anim.GetCurrentAnimatorStateInfo(0); //0はLayer番号 stateInfo.nameHashにAnimatorの現在のステートのハッシュが入っている if( stateInfo.nameHash == runStateHash) { ... } //走っている状態の時といった条件が指定できる
といった感じで現在のstateは取れるようだけど、animationの再生状態は判らないんですよね
検索しまくったんですが、いまのところ不明