Единство столкновения не обнаружено - PullRequest
0 голосов
/ 30 января 2019

Я делаю игру Unity, в которой игрок должен вытолкнуть все объекты «Враг» с самолета.Таким образом, чтобы иметь возможность подсчитать количество упавших объектов, я хочу, чтобы я всегда мог определить, когда произошло столкновение между красным кубом и любым другим кубом.Сценарий, похоже, не обнаруживает столкновения, как это исправить?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Collide : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Enemy")
            Destroy(gameObject);
                Debug.Log("Hit Occured");
    }

}

View

View

View

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Вам необходимо реализовать OnCollisionEnter (Collision collision), а не OnTriggerEnter (Collider other) или установить флажок BoxCollider IsTrigger

0 голосов
/ 30 января 2019

Необходимо проверить 3 вещи: 1. OnCrigisionEnter следует использовать вместо OnTriggerEnter 2. Необходимо активировать флажок isTrigger, чтобы событие вызывалось, когда оба тела сталкиваются с другим.3. Самая важная вещь, о которой никто не упомянул, - это теги, данные игровому объекту или врагам, потому что мы должны определить для игрового объекта, что событие должно вызываться при попадании в конкретное тело, поскольку игровой объект содержит коллайдер и может сталкиваться с любымстена или что-то еще, поэтому вам нужно правильно определить теги

0 голосов
/ 30 января 2019

вам нужно OnCollisionEnter

void OnCollisionEnter(Collision collision){

}

, потому что ваши коллайдеры не являются триггерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...