前提・実現したいこと
unityでゲームを作っています。敵のステータスの作成を友人にお願いしたところ、Javaで作ってきて困っています。一応そのコードを使ってunityで実行したのですが、敵がplayerの近くを通ると挙動がおかしくなるなどが起きてしまいました。また敵が浮遊している状態で動いているなども確認しました。
該当のソースコード
var target : GameObject;//追いかけるターゲットを決める var speed :float = 1.0;//追いかけるスピード var gravity:float=2.0f;//重力(これは必要なのでしょうか?浮遊させず、変な挙動にしたくないため、リジッドボディが使いたいのですが) private var isEnable = false;//敵の認識範囲にいるかどうか function Update () { var controller : CharacterController = GetComponent(CharacterController); var moveDirection : Vector3 = Vector3.zero; if(isEnable==true){ if (Vector3.Distance(transform.position, target.transform.position)) { var targetDirection : Vector3 = target.transform.position; targetDirection.y = 0; transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(targetDirection - transform.position), Time.time * 0.1); moveDirection += transform.forward * 1; moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime * speed); } } } function OnTriggerEnter( colobj : Collider ){//ボックスコライダーを範囲にしているので、その範囲にいるかどうか if(colobj.tag == 'Player'){ isEnable = true; target= colobj.gameObject; } } function OnTriggerExit( colobj : Collider ){ if(colobj.tag == 'Player'){ isEnable = false; } }
敵はunity公式のAdmを使用しています。勿論アニメーションもです。Admに入れているのは、ボックスコライダー、キャラクターコントローラーです。
補足情報(FW/ツールのバージョンなど)
unity2018.2.4f1