using UnityEngine; public class Rocket : MonoBehaviour { public PlayerMovement playerMovement; public GameObject player; public Vector3 TargetPosition; public float playerDistance; public Vector3 direction; public Quaternion targetRotation; public float rotationSpeed = 30; public bool isStuck; public float despawnTimer = 10; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { player = GameObject.Find("Player"); playerMovement = FindObjectOfType(); TargetPosition = player.transform.position; } // Update is called once per frame void Update() { if (playerDistance >= 25) { rotationSpeed = 60; } else{ rotationSpeed = 30; } direction = (player.transform.position - transform.position).normalized; targetRotation = Quaternion.LookRotation(direction); transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, 30 * Time.deltaTime); playerDistance = Vector3.Distance(transform.position, player.transform.position); transform.Translate(Vector3.forward * Time.deltaTime * (playerDistance/1.5f+8)); } public void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { Debug.Log("Hit Player"); playerMovement.HP -= 2f; } else if (other.CompareTag("Boss")){ Debug.Log("Shooting"); } else if (other.CompareTag("Ground")){ Destroy(this.gameObject); } } }