Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IAMovement : MonoBehaviour
{
[SerializeField] private Transform targetTransform;
[SerializeField] private float speed;
private float offsetDistance;
private Animator animatorController;
void Start()
{
animatorController = GetComponent<Animator>();
animatorController.SetBool("Moving", false);
animatorController.SetBool("Shooting", false);
animatorController.SetTrigger("DefTurn");
offsetDistance = (targetTransform.position - transform.position).magnitude + 0.5f;
}
private void Update()
{
Vector2 displacementFromTarget = targetTransform.position - transform.position;
Vector2 directionToTarget = displacementFromTarget.normalized;
Vector2 velocity = directionToTarget * speed;
float distanceToTarget = displacementFromTarget.magnitude;
if (distanceToTarget > offsetDistance)
{
animatorController.SetBool("Moving", true);
transform.Translate(velocity * Time.deltaTime);
}
else
{
animatorController.SetBool("Moving", false);
}
}
}