//tips
//微調整
ゴーレムの攻撃判定はかなり改善されたが、プレイヤーを捉えてからパンチモーションをし続ける時間が少し長く感じる。
Waitstateにとどまる時間を制御するwaittimeの時間を短くする。
また、SearchCharacterスクリプトのexitの条件がwaitになっており、パンチモーションをオフにするトリガーが含まれていないことからずっとモーションが続いていた。
Walkにstateを変更することでパンチモーションをオフにし、chase状態もリセットする。
void OnTriggerExit(Collider col)
{
if (col.tag == "Player")
{
moveEnemy.SetState(MoveEnemy.EnemyState.Walk);//waitから変更
}
}
こちらで試したら懸念していたwaitとwalkの同時に呼ばれる現象とコライダーがオンのままになってしまう事象が確認できたので元に戻す。
範囲外に出ているのでboolも全てオフにするようにコード追加した。
void OnTriggerExit(Collider col)
{
if (col.tag == "Player")
{
moveEnemy.SetState(MoveEnemy.EnemyState.Wait);
moveEnemy.punchflag = false;
moveEnemy.onchase = false;
moveEnemy.animator.SetBool("PunchAttackB", false);
}
}
これでゴーレムからのダメージ判定はかなり改善された。
次はdestroyされた後のカメラの視野の確保を考えていく。
現在は高所にあるmaincameraの視野に変わってしまっているので、これをプレイヤーの視野に変えていきたい。
現在活動しているプレイヤーの視野に変えるか、自分自身のカメラを再度instantiateしてそちらで周りの様子を伺えるようにする仕様に変更する。
まずは自分のカメラをinstantiateできないか考えてみる。
これはHPscript2のif (hp <= 0)条件下にプレイヤーであった場合、カメラ体でinstantiateされるようにコードを記載していく。
if (this.gameObject.tag == “Player")
{
Vector3 pos = this.gameObject.transform.position;
PhotonNetwork.Instantiate("Ghostcamera",pos,Quaternion.identity);
}
きちんと生成できたのでy軸ポジションを調整し、操作できるようにplayermoveスクリプトをアタッチした。