版本: Unity 6 (6000.0)
语言English
  • C#

Rigidbody.PublishTransform

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交内容,但我们确实会阅读用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void PublishTransform();

描述

将 Rigidbody 的位置旋转应用到相应的Transform组件。

这比手动设置Transform.positionTransform.rotation更有效率。

注意:此方法不会更新子 Transform。它应该从最顶层的 Transform 调用,向下遍历层次结构。

using UnityEngine;

public class PositionTracker : MonoBehaviour { private PhysicsScene m_SomeScene; private Rigidbody m_Rigidbody;

public void SimulateTrajectory(float totalTime) { m_SomeScene.RunSimulationStages(0f, SimulationStage.PrepareSimulation);

for (int i = 0; i < totalTime / Time.fixedDeltaTime; i++) m_SomeScene.RunSimulationStages(Time.fixedDeltaTime, SimulationStage.RunSimulation);

// Transform of the m_Rigidbody is still like it was at the start of the method m_Rigidbody.PublishTransform(); // Transform of the m_Rigidbody is now up to date and can be accessed to see where the body ended up after simulating for "totalTime" seconds } }

使用Rigidbody模拟PhysicsScene,并使用PublishTransform将物理系统中的信息读取到Transform组件。