版本:Unity 6 (6000.0)
语言English
  • C#

Space.World

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交内容,但我们确实会阅读用户提出的每项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

世界坐标空间,相对于场景的 x、y 和 z 轴原点 (0,0,0)。

使用 Space.World 相对游戏对象的 Transform.position 和场景轴变换游戏对象,忽略游戏对象自身的方向。例如,Transform.Translate(Vector3.forward, Space.World) 在场景的 z 轴上将游戏对象的 Transform.position 增加一个单位。

要相对于游戏对象的 Transform.localPosition 以及沿着游戏对象自身轴变换游戏对象,请使用 Space.Self

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

using UnityEngine;

public class Example : MonoBehaviour { float m_Speed; public bool m_WorldSpace;

void Start() { //Set the speed of the rotation m_Speed = 20.0f; //Rotate the GameObject a little at the start to show the difference between Space and Local transform.Rotate(60, 0, 60); }

void Update() { //Rotate the GameObject in World Space if in the m_WorldSpace state if (m_WorldSpace) transform.Rotate(Vector3.up * m_Speed * Time.deltaTime, Space.World); //Otherwise, rotate the GameObject in local space else transform.Rotate(Vector3.up * m_Speed * 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 m_WorldSpace = !m_WorldSpace; //Output the Current state to the console Debug.Log("World Space : " + m_WorldSpace.ToString()); } } }