- Home /
Question by
hiback · Nov 04, 2014 at 05:57 PM ·
raycastcharactercontrollerenemy aienemyai
Enemy Jump AI Problem
I built this game http://youtu.be/JNQ7EcEALY0
But my enemy is not jumping properly. Please Help Code
public class enemyaiscript : MonoBehaviour {
public float speed = 8.58f;
public float jetPackSpeed = 0.9f;
public float jumpSpeed = 8f;
public float gravity = 10f;
private Transform _Player;
private CharacterController character;
private Transform tr;
private float vSpeed = 0f;
private bool jump = false;
void Start ()
{
_Player = GameObject.FindGameObjectWithTag("Player").transform;
character = GetComponent<CharacterController>();
tr = transform;
}
void Update ()
{
Vector3 chaseDir = _Player.position - tr.position;
float distance = chaseDir.magnitude;
if (distance <= 2)
{
Debug.Log ("Attacking Player");
Destroy (GameObject.FindGameObjectWithTag("Player"));
Application.LoadLevel(3);
return;
}
if (character.isGrounded)
{
Debug.Log("Inside IF");
vSpeed = 0;
if (jump)
{
Debug.Log("Inside Jump");
vSpeed = jumpSpeed;
jump = false;
}
}
else
if (!Physics.Raycast(tr.position, -tr.up, 0.3f)){
vSpeed = jetPackSpeed;
}
vSpeed =vSpeed - (gravity * Time.deltaTime);
chaseDir = chaseDir.normalized * speed;
chaseDir.y += vSpeed;
character.Move(chaseDir * Time.deltaTime);
}
void OnControllerColliderHit(ControllerColliderHit hit){
if (Mathf.Abs(hit.normal.y) < 0.5){
jump = true;
}
}
}
Comment