Как то, что у меня в вопросе, я знаю, что это что-то простое, и есть такой вопрос, но недостаточно, чтобы решить эту путаницу, мой рабочий процесс был: A и B - 2 GO, A столкнулся с триггером, не отмечен, B имеет коллайдер с установленным триггером.Я использую функцию OnTriggerEnter2D (Collision collision) в A GO, чтобы проверить, касается ли B (столкновение) A GO, я работал с этим до сих пор, когда обнаружил, что он также работает, когда я использовал OnTriggerEnter2D (Collision collision ) в скрипте B, чтобы проверить, касался ли он A GO, даже если A не проверил триггер. Так что просто мне нужно проверить триггер в одном из них (A или B), чтобы использовать функцию OnTriggerEnter2D () в ком-либо?

1
Mr Zero 7 Июн 2018 в 04:56

1 ответ

Лучший ответ

Так нужно ли мне просто проверять триггер в одном из них (A или B), чтобы использовать функцию OnTriggerEnter2D () в ком-либо?

Да только один из них. Вы также можете включить его на обоих. Неважно.

Это сбивает с толку новичков в Unity.

Когда вызывается любой тип функции обратного вызова столкновения, такой как OnTriggerEnter2D и OnCollisionEnter2D, оба объекта GameObject, участвующие в конфликте, будут иметь вызываемые функции обратного вызова.

Не имеет значения, для какого из них IsTrigger установлено значение true. Пока один имеет триггер, оба будут вызывать OnTriggerEnter2D, если есть сценарий, реализующий функцию обратного вызова. То же самое относится и к OnCollisionEnter2D. Когда OnCollisionEnter2D или OnTriggerEnter2D вызывается для одного объекта, он также будет вызываться для другого объекта, вызываемого в Collins.

2
Programmer 7 Июн 2018 в 02:10