文章目录

Transform 可以说是每个游戏对象上必备的组件,主要有两个作用:一个是控制游戏对象的位置、旋转和缩放,第二个是管理游戏对象间的父子关系

打开 Unity 创建一个 Cube 物体,然后给 Cube 物体添加一个脚本,新建的 cube 可能不在原点,这时可以选中 Cube 物体,然后在 Inspector 面板中找到 Transform 属性,右键点击 Transform,可以弹出下面的对话框,点击 reset 就可设置 Cube 物体到原点了。

reset

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using UnityEngine;
using System.Collections;

public class Test2 : MonoBehaviour {

// Use this for initialization
void Start () {
// 获取当前游戏对象上的 Transform 组件
// transform
// 控制游戏对象的位置、旋转和缩放
// 获取当前游戏对象的位置 - 世界坐标系中的位置
Vector3 v = transform.position;
print(v);
// localPosiotion 是 在局部坐标系中的位置
// transform.localPosiotion;
// 一般不直接修改 四元数
// transform.rotation;
// transform.localRotation;

// 获取当前游戏父对象的 transform 组件
// transform.parent;
// 当前游戏对象的根对象
// transform.root;
// 获取当前游戏对象 叫做 Cube 的对象
transform.Find("Cube");
// 获取当前游戏对象 叫做 Cube 的子对象
// transform.FindChild("Cube");
}

// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.S)) {
// 修改 transform 的位置
// transform.position = new Vector3(0, 1, 0);
// print (transform.position);
//变化 当前游戏对象
transform.Translate (new Vector3(0, -1, 0));
} else if (Input.GetKeyDown (KeyCode.W)) {
// transform.Translate (new Vector3(0, +1, 0));
// 旋转当前游戏对象
// transform.Rotate (Vector3.up, 10.0f);
// 欧拉角,也是旋转,但是只能旋转一次
transform.eulerAngles = new Vector3(0.0f, 45.0f, 0.0f);
}
}
}
文章目录