TransformHandle.SetParent
Declaration
public void SetParent(TransformHandle p);public void SetParent(TransformHandle parent, bool worldPositionStays);Параметры
| Параметр | Описание |
|---|---|
| родитель | Используемый родитель TransformHandle. |
| worldPositionStays | Если true, относительное положение родительского объекта, масштаб и вращение изменяются таким образом, что объект сохраняет то же положение в мировом пространстве, вращение и масштаб, как и прежде. |
Описание
Устанавливает родитель преобразования.
Этот метод аналогичен свойству parent, за исключением того, что он также позволяет TransformHandle сохранять свою локальную ориентацию, а не глобальную. Это означает, например, что если GameObject ранее находился рядом со своим родителем, установка worldPositionStays в false переместит GameObject так же рядом с его новым родителем.
Значение по умолчанию аргумента worldPositionStays является true.
Следующие изображения представляют сцену с тремя GameObjects: новый родительский куб, родительская сфера и дочерняя сфера.
Новый родительский куб находится слева от экрана, а дочерняя сфера находится в своем первоначальном положении, рядом с родительской сферой справа от экрана.
После вызова SetParent со свойством worldPositionStays, установленным в true, все объекты находятся в том же положении, что и в начале.
После вызова SetParent с worldPositionStays установленным на false, дочерняя сфера находится в том же положении, но теперь относительно нового родительского куба.
using UnityEngine;
public class ExampleClass : MonoBehaviour { public GameObject child;
public TransformHandle parent;
//Invoked when a button is clicked. public void Example(TransformHandle newParent) { // Sets "newParent" as the new parent of the child GameObject. child.transformHandle.SetParent(newParent);
// Same as above, except worldPositionStays set to false // makes the child keep its local orientation rather than // its global orientation. child.transformHandle.SetParent(newParent, false);
// Setting the parent to ‘TransformHandle.None’ unparents the GameObject // and turns child into a top-level object in the hierarchy child.transformHandle.SetParent(TransformHandle.None); } }