Physics.SyncTransforms
Declaration
public static void SyncTransforms();Описание
Применить изменения Transform к физике.
При изменении компонента Transform, любой Rigidbody или Collider на этом Transform или его дочерних элементах может потребоваться перемещение, вращение или масштабирование в зависимости от изменения на Transform. Используйте эту функцию для переноса этих изменений в физику вручную.
Соответствующие сценарии использования: * Не используйте ее в FixedUpdate() — Unity уже синхронизирует преобразования автоматически перед каждым шагом физики. * Используйте ее после Transform изменений в Update()/LateUpdate(), если вы немедленно выполняете физический запрос. * Не перегружайте ее — это дорого, если вызов каждого кадра ненужен.
using UnityEngine;
public class SyncTransformExample : MonoBehaviour { public Transform target;
void Update() { // 1. Move a target object by setting its transform.position directly. target.position = new Vector3(5, 0, 0);
// 2. Immediately tell Unity's physics engine to update its internal representation // of all transforms (including the one just moved). Physics.SyncTransforms();
// 3. Run a physics query — in this case, check if a sphere with radius 0.5 // centered at the new target position overlaps any colliders. if (Physics.CheckSphere(target.position, 0.5f)) { Debug.Log("Something is overlapping the moved object!"); } } }