I have a player targeting system where enemies fire at the player. But instead of firing at the player the missiles target the player manager and follows it to whatever side of the passage it's on.
I have made a short video to show what happens
- https://youtu.be/3R7EGrbdfbk
any suggestions as to what the problem could be?
Tracker code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Tracker : MonoBehaviour{
public float speed;
public Rigidbody rb; //addition
public GameObject objectToDestroy; //addition
private Transform playerManager;
private Vector3 target;
void Start() //targeting the player
{
playerManager = GameObject.FindGameObjectWithTag("PlayerManager").transform;
target = new Vector3(playerManager.position.x, playerManager.position.y);
rb.velocity = transform.forward * speed; //addition, tells it to shoot forward
}
void Update() //movement of the missile
{
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime); //NB: swapping "Target" with "player" the bolt will follow the play instead of the target
{
if (transform.position.x == target.x && transform.position.y == target.y)
{
DestroyBolt();
}
}
}
void OnTriggerEnter(Collider col) //killing the player
{
if (col.gameObject.tag == "Player")
{
Debug.Log("Bolt hit player: Tracker Script");
Destroy(objectToDestroy);
}
}
void DestroyBolt() //destroying the bolt
{
Destroy(gameObject); //addition
Debug.Log("Bolt deleted: Tracker Script");
}
}
↧