- Home /
Question by
Gigh3n · Jan 11 at 04:07 AM ·
rotationtransformlookatlookattarget
How to make AI look at player
I made an AI that goes towards gameobject with tag "player", i wanted to make so he could tourn towards the player, i tried using the function transform.LookAt(), but it gives me an error, maybe because im using it in the wrong way. Can anyone help?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyRun : StateMachineBehaviour
public float speed = 2.5f;
public float attackRange = 3f;
Transform player;
Rigidbody rb;
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
player = GameObject.FindGameObjectWithTag("Player").transform;
rb = animator.GetComponent<Rigidbody>();
}
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
Vector3 target = new Vector3(player.position.x, rb.position.y, player.position.z);
Vector3 newPos = Vector3.MoveTowards(rb.position, target, speed * Time.fixedDeltaTime);
rb.MovePosition(newPos);
if (Vector3.Distance(player.position, rb.position) <= attackRange)
{
animator.SetTrigger("Attack");
}
}
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.ResetTrigger("Attack");
}
}
Comment
Your answer
Follow this Question
Related Questions
!Urgent! How to get a sprite to look at another object? 1 Answer
LookAt Translation Not Sticking 1 Answer
Lock rotation axis? 4 Answers
Alternatives to LookAt() -1 Answers
Joint Transform Rotation in Unity? 0 Answers