Как проверить, есть ли на позиции коллайдер (игровой объект) или нет
У меня есть игра в крестики-нолики, и я хочу сделать ее динамичной, поэтому мне нужна функция или метод проверки коллайдера, но я не могу найти его в Интернете, поэтому я спрашиваю здесь. единство
У меня есть этот код для того, чтобы сделать мой крестики-нолики динамическими, он еще не закончен.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour {
public Transform Button;
public int rows;
public int columns;
void Start () {
int i = 0;
int x = 0;
int y = 0;
for (i = 0; i < columns; i++) {
Transform newButton = Instantiate<Transform> (Button);
newButton.SetParent(GameObject.Find ("ButtonsContainer").transform);
newButton.localScale = Vector3.one;
newButton.localPosition = new Vector3(x,y,0);
}
}
}
2 ответа
Есть много способов определить, находится ли коллайдер в определенной позиции, можно было бы иметь отдельный объект коллайдера, который вы перемещаете в позицию, а затем выполнить проверку столкновения для этого объекта с помощью OnCollisionEnter.
Хотя вы можете достичь своей цели таким образом, я бы порекомендовал вам использовать другой подход, чтобы определить, где находятся коллайдеры. если это крестики-нолики, то это основано на сетке, вы можете хранить все игровые данные в двумерном массиве, и тогда вы всегда будете знать положение объектов без необходимости сканировать сцену для них. Это не только будет более эффективным, но и сделает проверку правил намного проще.
Самый простой способ обнаружить коллайдеры по коду - использовать метод Physics.SphereCast.