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

Space

перечисление

Описание

Координатные пространства, в которых будет применяться преобразование к GameObject.

Значение из этого перечисления можно передать как параметр в такие методы, как Transform.Rotate и Transform.Translate чтобы указать, в каком координатном пространстве будет применяться преобразование.

Всемирное координатное пространство, представленное Space.World относится к положению GameObject относительно точки начала (0,0,0) осей x, y и z сцены. Transform.position свойство показывает текущее положение GameObject в мировом пространстве.

Использование Space.World для преобразования GameObject по отношению к его Transform.position и оси сцены, игнорируя собственную ориентацию GameObject. Например, transform.Translate(Vector3.forward, Space.World) добавляет одну единицу к объекту Transform.position на оси z сцены.

Локальное координатное пространство, представленное Space.Self относится к положению объекта относительно его родителя GameObject, включая любое вращение родителя GameObject. Transform.localPosition свойство даёт текущее положение GameObject в локальном пространстве, которое относительно родительского GameObject, если таковой существует. Если GameObject не имеет родителя, его Transform.localPosition является таким же, как его Transform.position.

Например, GameObject без родителя и Transform.position из (1,3,0) также будет иметь Transform.localPosition (1,3,0). Но если дочерний объект GameObject этого первого объекта имеет Transform.position (1,3,0), дочерний объект Transform.localPosition является (0,0,0), так как находится в том же положении, что и родительский объект.

Использование Space.Self для преобразования GameObject по отношению к его Transform.localPosition и его собственных локальных осей, с учетом его ориентации. Например, Transform.Translate(Vector3.forward, Space.Self) добавляет одну единицу к объекту Transform.localPosition на оси z объекта, которая может отличаться от оси z сцены в зависимости от ориентации объекта. Выберите объект в представлении Scene, чтобы увидеть его локальное положение и оси.

Более подробную информацию см. Преобразования, Вращение и ориентация в Unity, и Позиция GameObjects в Руководстве.

// Attach this script to a GameObject.
// This example demonstrates the difference between Space.World and Space.Self in rotation.
// The inWorldSpace field is automatically exposed as a checkbox in the Inspector window labelled In World Space. Enable or disable the checkbox in the Inspector to start in world or self space, respectively.
// Press play to see the GameObject rotating appropriately. Press space or toggle the In World Space checkbox to switch between world and self space.

using UnityEngine;

public class Example : MonoBehaviour { float rotationSpeed; public bool inWorldSpace;

void Start() { // Set the speed of the rotation rotationSpeed = 20.0f; // Start off in World.Space inWorldSpace = true; // Rotate the GameObject a little at the start to show the difference between world and local spaces transform.Rotate(60, 0, 60); }

void Update() { // Rotate the GameObject in world space if inWorldSpace is true if (inWorldSpace) transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.World); // Otherwise, rotate the GameObject in local space else transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.Self);

// Press the Space button to switch between world and local space states if (Input.GetKeyDown(KeyCode.Space)) { // Make the current state switch to the other state inWorldSpace = !inWorldSpace; // Output the current state to the console Debug.Log("World space : " + inWorldSpace.ToString()); } } }

Дополнительные ресурсы: ,Transform,, ,Transform.Rotate,, ,Transform.Translate,.

Свойства

Свойство Описание
WorldВсемирное координатное пространство относительно точки начала (0,0,0) осей x, y и z сцены.
SelfЛокальная система координат GameObject по отношению к родительской системе, включая ориентацию.