Как проверить, есть ли на позиции коллайдер (игровой объект) или нет

У меня есть игра в крестики-нолики, и я хочу сделать ее динамичной, поэтому мне нужна функция или метод проверки коллайдера, но я не могу найти его в Интернете, поэтому я спрашиваю здесь. единство

У меня есть этот код для того, чтобы сделать мой крестики-нолики динамическими, он еще не закончен.

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.

Другие вопросы по тегам