У меня возникли проблемы с созданием способа проверить, не сталкивается ли игрок с определенной «путевой точкой», если я нажму на эту путевую точку. Я установил 7 путевых точек, к которым игрок захочет двигаться.
Теперь я пытаюсь написать фрагмент скрипта, который проверяет, что ПОСЛЕ щелчка по путевой точке (onMouseDown) происходит столкновение с игроком. Потому что в этом случае он не будет вычислять позицию для перехода.
public class WayPointPositioner : MonoBehaviour {
private Vector3 wayPointPosition;
public GameObject playercheck;
//Check if object is clicked
void OnMouseDown ()
{
Debug.Log ("Object Clicked " + GameObject.name);
// Check if collision occurs with playercheck
OnCollisionEnter(playercheck != Collision)
{
// If its the player, then return a new position for the player to move to for walking
// Else debug that its not so
if (playercheck.gameObject.CompareTag("Player"))
{
Debug.Log ("Object not colliding and retrieving position");
wayPointPosition = new Vector3 (GameObject.X, GameObject.Y, 10);
wayPointPosition = Camera.main.ScreenToWorldPoint(wayPointPosition);
}
else
{
Debug.Log ("Object is colliding, no movement needed");
}
}
}
}
Теперь я уже понял, что OnCollisionEnter
не сработает. Потому что для его работы требуется оператор void перед ним. Однако я понятия не имею, как еще я могу это сделать.