У меня проблема с функцией OnCollisionEnter в C# при создании игры в Unity - PullRequest
0 голосов
/ 11 февраля 2020

Итак, я узнал, что вы можете использовать функцию с именем OnCollisionEnter для различных действий при столкновениях gameObjects. Я попробовал что-то простое:

using UnityEngine;

public class Bouncing : MonoBehaviour
{
    void OnCollisionEnter(Collision collisionInfo)
    {
        Debug.Log("text");
    }
}

У меня есть плеер с этими детьми - Camera, Player Body и Ground Check. Тело игрока содержит компонент капсульного коллайдера (поскольку это, конечно, капсула, у коллайдера опция «Триггер» отключена). Bouncer должен был отразить меня примерно на 5 единиц в высоту (я сделаю это когда-нибудь, если у вас есть какие-либо учебные пособия или что-нибудь, что может мне помочь, тогда вы тоже можете это прокомментировать. :)) Bouncer имеет эти компоненты - Rigidbody (это не так) 't kinemati c, но использует гравитацию) и Box Collider (опция "Is Trigger" не проверена.).

Я попытался найти справку по Inte rnet, но ничего не получилось бы так, как я как (потому что это не будет работать вообще).

Извините за мой плохой Энгли sh, спасибо за вашу помощь всем.

1 Ответ

0 голосов
/ 11 февраля 2020

OnCollisionEnter - это событие: Unity вызывает его, когда объект (который должен иметь твердое тело) сталкивается с любым коллайдером. Это событие может происходить как в объектах, так и в твердом теле и объекте попадания. В плеере код может быть таким:

void OnCollisionEnter(Collision col){
   if (col.gameObject.tag == "Ball"){
     // a rigidbody tagged as "Ball" hit the player
   }
 }

В шаре код практически одинаков - единственное отличие состоит в том, что структура col содержит информацию о попадании объекта:

void OnCollisionEnter(Collision col){
   if (col.gameObject.tag == "Player"){
     // this rigidbody hit the player
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...