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

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!"); } } }