Распознавание столкновения определенных объектов в Unity - PullRequest
0 голосов
/ 19 января 2019

Я пытался выяснить, как обнаружить столкновение, чтобы создать простую боевую систему, но команды тоже не возвращают то, что я хочу. Что я сейчас использую (в движке Unity):

using UnityEngine;

public class swordDetect : MonoBehaviour
{
    void OnCollisionEnter(UnityEngine.Collision CollisionInfo)
    {
        if (CollisionInfo.gameObject.name == "swordCollide")
        {
            Debug.Log("it work again");
        }
    }
}

Это ничего не возвращает, и оно прикреплено к скале, которую я использовал для проверки.

Объект swordCollide прикреплен к мечу игрока, но ничего не происходит, когда он сталкивается со скалой.

1 Ответ

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

Убедитесь, что у вашего Gameobject есть коллайдер, для которого не установлено значение Trigger (потому что тогда он не может получить столкновение, а только сработает). Я всегда предпочел бы пометить свои Gameobjects и проверить тег, чем имя, потому что он менее подвержен ошибкам Если сталкивающийся Gameobject является триггером, вам нужно проверить

private void OnTriggerEnter(Collider other){}

Лучшие уроки Unity о столкновениях https://unity3d.com/learn/tutorials/topics/physics/colliders?playlist=17120 и проверьте документацию https://docs.unity3d.com/ScriptReference/Collider.html

Оба легко понять и идут с некоторыми примерами кода

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