- Home /
OnTriggerEnter2D not Working
I'm creating a runner game where the player has to swipe left/right to change their lanes in order to avoid obstacles (so I use an EventSystem object for my player object). I'm currently working on having the player gameobject detect collisions with specific Obstacle gameobjects. So far, nothing is working and yes, I have doubled checked for Rigidbody 2Ds and Collider 2Ds on both the player and obstacle gameobjects as well as their physics layers. However, for some reason, Unity is not able to detect collisions with the player and Obstacle game objects using the OnTriggerEnter2D function and no debug statement is being printed.
Here is my code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMobility : MonoBehaviour {
public float speed;
float x2;
float x1;
Vector3 move;
public float counter;
int lane = 2;
void Update()
{
//move in x direction according to speed value
gameObject.transform.Translate(speed, 0, 0);
counter += 1;
//when 15 moves have elapsed, reset values to zero, allowing drag events to be processed
if (counter == 15)
{
speed = 0;
counter = 0;
return;
}
}
void OnTriggerEnter2D(Collider2D collider)
{
print("Hitting Obstacle...");
}
public void OnPointerEnter()
{
//get initial mouse x pos
x1 = Input.mousePosition.x;
}
public void onDragEvent()
{
//check that movement is not already happening
if (speed != 0)
return;
//get mouse x pos after drag
x2 = Input.mousePosition.x;
//if distance between two exceeds certain bounds, movement is initiated
if (x2 - x1 > 40)
{
if (lane < 3)
{
speed = 6;
lane += 1;
}
}
else if (x2 - x1 < -40)
{
if (lane > 1)
{
lane -= 1;
speed = -6;
}
}
counter = 0;
return;
}
}
What could I be possibly missing?
Thanks
Comment