parent | 要使用的父 Transform。 |
worldPositionStays | 如果为 true,则修改父级相对位置、缩放和旋转,以便对象保持与之前相同的 world 空间位置、旋转和缩放。 |
设置变换的父级。
此方法与 parent 属性相同,不同之处在于它还允许 Transform 保持其局部方向而不是其全局方向。这意味着例如,如果 GameObject 之前在其父级旁边,将 worldPositionStays
设置为 false 将移动 GameObject 以与之前相同的方式定位在其新父级旁边。worldPositionStays
参数的默认值为 true。
下图显示了子 GameObject 在其原始位置
以下是在调用 SetParent
时将 worldPositionStays
设置为 true 的效果
以下是在调用 SetParent
时将 worldPositionStays
设置为 false 的效果
请注意,子球体位于相同的位置,但现在相对于新父立方体。
using UnityEngine;
public class ExampleClass : MonoBehaviour { public GameObject child;
public Transform parent;
//Invoked when a button is clicked. public void Example(Transform newParent) { // Sets "newParent" as the new parent of the child GameObject. child.transform.SetParent(newParent);
// Same as above, except worldPositionStays set to false // makes the child keep its local orientation rather than // its global orientation. child.transform.SetParent(newParent, false);
// Setting the parent to ‘null’ unparents the GameObject // and turns child into a top-level object in the hierarchy child.transform.SetParent(null); } }