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

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