Описание
Непрерывное обнаружение столкновений включено для столкновений со статической и динамической геометрией.
Предотвратите прохождение этого твердого тела через статическую геометрию сетки и через другие твердые тела, для которых включено непрерывное обнаружение столкновений, когда оно движется быстро. Это самый медленный режим обнаружения столкновений, и его следует использовать только для выбранных быстро движущихся объектов.
//This script allows you to switch collision detection mode at the press of the space key
//Attach this script to a GameObject
//Click the GameObject, go to its Inspector and click the Add ComponentButton. Then, go to Physics>Rigidbody.
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
Rigidbody m_Rigidbody;
void Start()
{
m_Rigidbody = GetComponent<Rigidbody>();
}
public void Update()
{
//Press the space key to switch the collision detection mode
if (Input.GetKeyDown(KeyCode.Space))
SwitchCollisionDetectionMode();
}
//Switch between the different Collision Detection Modes
void SwitchCollisionDetectionMode()
{
switch (m_Rigidbody.collisionDetectionMode)
{
//If the current mode is continuous, switch it to continuous dynamic mode
case CollisionDetectionMode.Continuous:
m_Rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
break;
//If the current mode is continuous dynamic, switch it to continuous speculative
case CollisionDetectionMode.ContinuousDynamic:
m_Rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative;
break;
// If the curren mode is continuous speculative, switch it to discrete mode
case CollisionDetectionMode.ContinuousSpeculative:
m_Rigidbody.collisionDetectionMode = CollisionDetectionMode.Discrete;
break;
//If the current mode is discrete, switch it to continuous mode
case CollisionDetectionMode.Discrete:
m_Rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;
break;
}
}
}