IContactFilterCallback
интерфейс в UnityEngine.LowLevelPhysics2D
Описание
Интерфейс, который, будучи реализованным в UnityEngine.Object, может быть вызван в качестве цели, когда PhysicsShape имеет PhysicsShape.contactFilterCallbacks установлено на true. PhysicsWorld 2000 год PhysicsShape также должен иметь свой PhysicsWorld.contactFilterCallbacks установлено на true.
Открытые методы
| Метод | Описание |
|---|---|
| OnContactFilter2D | Вызывается, когда обнаружено, что пара фигур находится в контакте. Этот вызов используется, чтобы решить, будет ли для этих фигур создан контакт: его можно не создавать, и тогда контакт не будет передан решателю. Вызов выполняется, только если у PhysicsWorld свойство PhysicsWorld.contactFilterCallbacks равно true. Событие возникает, только если хотя бы у одной из PhysicsShape свойство PhysicsShape.contactFilterCallbacks равно true. Вызов используется как для триггеров, так и для нетриггеров, но только с динамическими телами. С этим вызовом следует обращаться крайне осторожно! Он происходит на этапе моделирования и может быть вызван из любого потока, поэтому должен быть потокобезопасным. В этот момент состояние моделирования не определено для широкой фазы, событий и т. д. По этой причине любая попытка выполнить операцию записи приведёт к взаимной блокировке, так как сам мир заблокирован для записи. Простые операции чтения на PhysicsBody, PhysicsShape или PhysicsJoint безопасны — например, чтение скорости или получение геометрии фигуры, — однако более сложные операции, затрагивающие мир, такие как выполнение запроса, могут привести к повреждению данных или сбоям. Рекомендуется читать UnityEngine.LowLevelPhysics2D.PhysicsUserData любого объекта — это полностью безопасная операция чтения, поэтому всю необходимую информацию по возможности стоит закодировать именно там. |