Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход

IPreSolveCallback

интерфейс в UnityEngine.LowLevelPhysics2D

Описание

Интерфейс, который, будучи реализованным в UnityEngine.Object, может быть вызван в качестве цели, когда PhysicsShape имеет PhysicsShape.preSolveCallbacks установлено на true. PhysicsWorld 2000 год PhysicsShape также должен иметь свой PhysicsWorld.preSolveCallbacks установлено на true.

Открытые методы

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