Объявление
public void SetParent(Transform p);public void SetParent(Transform parent, bool worldPositionStays);
Параметры
parent | Родительское преобразование для использования. |
worldPositionStays | Если установлено значение true, положение, масштаб и поворот относительно родителя изменяются таким образом, что объект сохраняет те же положение, поворот и масштаб в мировом пространстве, что и раньше. |
Описание
Установите родителя преобразования.
Этот метод аналогичен свойству parent, за исключением того, что он также позволяет Transform сохранять свою локальную ориентацию, а не чем его глобальная ориентация.
Это означает, например, что если GameObject ранее находился рядом со своим родителем, установка для worldPositionStays
значения false приведет к перемещению GameObject таким же образом, чтобы он располагался рядом с его новым родителем. р>
Значение аргумента worldPositionStays
по умолчанию равно true.
На изображении ниже показан дочерний объект GameObject в исходном положении:

Вот как это выглядит после вызова SetParent
с параметром worldPositionStays
, установленным в true:

Вот как это выглядит после вызова SetParent
со значением false для worldPositionStays
:

Обратите внимание, что дочерняя сфера находится в том же положении, но теперь относительно нового родительского куба.
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
public GameObject child;
public Transform parent;
// Вызывается при нажатии кнопки.
public void Example(Transform newParent)
{
// Устанавливает "newParent" в качестве нового родителя дочернего элемента GameObject.
child.transform.SetParent(newParent);
// То же, что и выше, за исключением того, что для worldPositionStays установлено значение false
// заставляет дочерний элемент сохранять свою локальную ориентацию, а не
// его глобальная ориентация.
child.transform.SetParent(newParent, false);
// Установка для родительского элемента значения «null» отменяет родительский элемент GameObject
// и превращает дочерний элемент в объект верхнего уровня в иерархии
child.transform.SetParent(null);
}
}