基础知识 SetParent
// 摘要:
// Set the parent of the transform.
//
// 参数:
// parent:
// The parent Transform to use.
//
// worldPositionStays:
// If true, the parent-relative position, scale and rotation are modified such that
// the object keeps the same world space position, rotation and scale as before.
//
// p:
[FreeFunction("SetParent", HasExplicitThis = true)]
public void SetParent(Transform parent, bool worldPositionStays);
简单意思就是:  bool worldPositionStays默认为true。 我们知道,在Unity中,物体2 成为了 物体1 的子物体,那么物体2便需要采用物体1的坐标系,也就是localposition。
worldPositionStays 问的就是你是否保持原本的状态,
-------------------------worldPositionStays == true(即默认)----------------------------------
仅仅只是成为另一个物体的子物体而已。
public GameObject sphere1;
public GameObject sphere2;
private void OnEnable()
{
sphere2.transform.SetParent(sphere1.transform,true);
}

-------------------------worldPositionStays == false----------------------------------
此时原本的世界坐标直接变成局部坐标
public GameObject sphere1;
public GameObject sphere2;
private void OnEnable()
{
sphere2.transform.SetParent(sphere1.transform,true);
}

当物体1成为了物体2的子物体,那么当销毁父物体时,子物体便会被销毁。
|