Как обнаружить объекты с помощью прикосновения друг к другу - PullRequest
0 голосов
/ 23 мая 2019

Мне нужно уметь обнаруживать, касаются ли 2 отдельных объекта друг друга.Я понятия не имею, есть ли какой-то определенный фрагмент кода для этого.

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


void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.tag == "Rocket")
        {
            istouchingrocket = true;
        }

        if (other.gameObject.tag == "Ground3")
        {
            Isend = true;   //Ground three is the ending platform. This piece of code is attached to oil which is not touching this. I need to detect if the player is touching "Ground3".
        }
    }

    void OnCollisionExit(Collision other)
    {
        if (other.gameObject.tag == "Rocket")
        {
            istouchingrocket = false;
        }
    }


. Таким образом, код прикреплен к маслу, и когда игрок касается "ground3", он получает возможность уничтожить масло.Код должен обнаруживаться дистанционно, если соприкасаются 2 отдельных объекта.

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Посмотрите на функцию IsTouching () .

Это именно то, что вы просите.

0 голосов
/ 23 мая 2019

Вероятно, для сценария игрока лучше иметь поле, которое отслеживает, получило ли оно способность уничтожать нефть:

public bool canDestroyOil;

Обязательно установите false в Start():

canDestroyOil=false;

Затем, когда игрок обнаруживает, касается ли он «ground3», тогда установите его на true:

canDestroyOil = true;

И затем в масляном сценарии, когда он касается игрока, он уничтожает себя, если игрок может уничтожить масло:

if (player.canDestroyOil) {
    gameObject.Destroy();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...