diff --git a/Assets/Scripts/Pet/PetDragonMovement.cs b/Assets/Scripts/Pet/PetDragonMovement.cs index c363d78bcc180b743d2cf6596b96d0b938e0a958..f015cbd921b110b9f5fdcd0d0f2e286a6346909d 100644 --- a/Assets/Scripts/Pet/PetDragonMovement.cs +++ b/Assets/Scripts/Pet/PetDragonMovement.cs @@ -2,122 +2,44 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; -using System.Linq; -using Nightmare; public class PetDragonMovement : MonoBehaviour { + private static readonly int IsWalking = Animator.StringToHash("IsWalking"); + public Transform target; + public GameObject player; + public GameObject enemy; + public float speed = 6f; NavMeshAgent nav; Animator _anim; - PetDragonAttack petDragonAttack; bool move = false; - public List<EnemyHealth> Damageables = new List<EnemyHealth>(); - public EnemyHealth closestDamageable; - Rigidbody dragonRigidBody; + bool _enemyInRange = false; + Vector3 enemyPosition; + Rigidbody _dragonRigidBody; + Vector3 _movement; // Start is called before the first frame update void Start() { + player = GameObject.FindGameObjectWithTag("Player"); + enemy = GameObject.FindGameObjectWithTag("Enemy"); nav = GetComponent<NavMeshAgent>(); _anim = GetComponent<Animator>(); - petDragonAttack = GetComponent<PetDragonAttack>(); - dragonRigidBody = GetComponent<Rigidbody>(); + _dragonRigidBody = GetComponent<Rigidbody>(); } - void LookAt(Transform target) + private void FixedUpdate() { - //Debug.Log($"{target.position} - {transform.position}"); - var targetVector = new Vector3(target.position.x, 0, target.position.z); - var sourceVector = new Vector3(transform.position.x, 0, transform.position.z); - Quaternion lookRotation = Quaternion.LookRotation(targetVector - sourceVector); - dragonRigidBody.MoveRotation(Quaternion.Slerp(transform.rotation, lookRotation, 0.4f)); - } - - // Update is called once per frame - void Update() - { - move = false; - - if (Damageables.Count > 0) + if ((player.transform.position - transform.position).magnitude >= 3) { - if (closestDamageable == null) - { - float closestDistance = float.MaxValue; - for (int i = 0; i < Damageables.Count; i++) - { - var damagable = Damageables[i]; - if (damagable != null) - { - var damagableTransform = damagable.transform; - float distance = Vector3.Distance(transform.position, damagableTransform.position); - - if (distance < closestDistance) - { - closestDistance = distance; - closestDamageable = damagable; - } - } - } - } - - if (closestDamageable != null) - { - if (nav.enabled) - { - move = true; - _anim.SetBool("IsMoving", move); - nav.SetDestination(closestDamageable.transform.position); - } - } - else - { - _anim.SetBool("IsMoving", move); - } + _anim.SetBool(IsWalking, true); + //_anim.SetTrigger("Walk"); + Debug.Log("Move to player"); + nav.SetDestination(player.transform.position); } else { - closestDamageable = null; - _anim.SetBool("IsMoving", move); - } - - // if (closestDamageable == null || closestDamageable.IsDead || closestDamageable.currentHealth < 0) - // { - // Damageables.Remove(closestDamageable); - // closestDamageable = null; - // } - } - - private void OnTriggerEnter(Collider other) - { - if ( - other.CompareTag("ZomBear") - || other.CompareTag("ZomBunny") - || other.CompareTag("Hellephant") - || other.CompareTag("Wizard") - ) - { - var enemyHealth = other.GetComponent<EnemyHealth>(); - if (enemyHealth != null) - { - Damageables.Add(enemyHealth); - } - } - } - - private void OnTriggerExit(Collider other) - { - if ( - other.CompareTag("ZomBear") - || other.CompareTag("ZomBunny") - || other.CompareTag("Hellephant") - || other.CompareTag("Wizard") - ) - { - var enemyHealth = other.GetComponent<EnemyHealth>(); - if (enemyHealth != null) - { - Damageables.Remove(enemyHealth); - } + nav.SetDestination(enemy.transform.position); } } } diff --git a/Assets/Scripts/Pet/PetWizardMovement.cs b/Assets/Scripts/Pet/PetWizardMovement.cs index 4407abc8cc22ea3a9faca885e74e45ee9f4ed1df..6489c65ea35dad8a40fd84b79892eabacefea03f 100644 --- a/Assets/Scripts/Pet/PetWizardMovement.cs +++ b/Assets/Scripts/Pet/PetWizardMovement.cs @@ -28,7 +28,7 @@ public class PetWizardMovement : MonoBehaviour private void FixedUpdate() { - if ((player.transform.position - transform.position).magnitude >= 4.5) + if ((player.transform.position - transform.position).magnitude >= 3) { _anim.SetBool(IsWalking, true); //_anim.SetTrigger("Walk");