- Home /
Question by
ro00 · Jun 01, 2021 at 11:45 AM ·
ontriggerentermovetowards
Doesn't the ontriggerenter method work when we use movetowards?
I want the enemy to shoot towards the player. if the bullet goes into the player i will do some other work. But ontriggerenter is not working. Why is that? The player and bullets have collider.
public class PigBullets : MonoBehaviour
{
Transform player;
Vector2 direction;
Vector2 target;
public float speed;
public int damage = 20;
bool colliderBusy = false;
void Start()
{
player = GameObject.FindGameObjectWithTag("Player").transform;
direction = (player.transform.position - transform.position).normalized * speed;
target = new Vector2(direction.x, direction.y);
}
void Update()
{
MoveToTarget();
}
void MoveToTarget()
{
transform.position = Vector2.MoveTowards(transform.position, target, speed * Time.deltaTime);
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player" && !colliderBusy)
{
Debug.Log("Entered to player");
colliderBusy = true;
other.GetComponent<PlayerManager>().TakeDamage(damage);
}
}
private void OnTriggerExit2D(Collider2D other)
{
if (other.tag == "Player")
{
colliderBusy = false;
}
}
}
Comment
Did you set the colliders to onTrigger in the inspector? Also one gameObject will probably need a rigidbody.