#unity3d #game-physics
#unity3d #игра-физика
Вопрос:
У меня есть система взаимодействия, которая полагается на событие OnCollisionStay, вызываемое на время перекрытия.
Физическая система переводит жесткое тело в спящий режим, и следующее не имеет никакого эффекта:
- вызов
rigidbody.WakeUp()
- настройка
rigidbody.sleepThreshold = 0;
- вызов
rigidbody.AddForce(Vector3.zero);
Ответ №1:
Похоже, что кинематические жесткие тела гораздо больше стремятся оставаться спящими, чем их некинематические собратья. Вызов следующего гарантирует, что ваше кинематическое жесткое тело не перейдет в спящий режим.
void FixedUpdate()
{
rigidbody.MovePosition(rigidbody.position);
}
Имейте в виду, что это обходит встроенную оптимизацию, поэтому используйте только при необходимости.