分类:Unity、C#、VS2015 学习
建立日期:2016-04-20 spa
Unity引擎提供了丰富的组件和类库,为游戏开发提供了很是大的便利,熟练掌握和使用这些API,对于游戏开发的效率提升很重要。 3d
这一节咱们主要学习Transform的基本用法。本节例子的运行效果以下: code
场景中的每个物体都有一个Transform。 orm
Transform组件决定了游戏对象的位置、方向和缩放比例,若是但愿在游戏中更新玩家位置、设置相机观察角度,都免不了要和Transform组件打交道。 对象
每个Transform能够有一个父级,容许你分层次应用位置、旋转和缩放。能够在Hierarchy面板查看层次关系。他们也支持计数器(enumerator),所以你可使用循环遍历子物体。例如: blog
using UnityEngine; using System.Collections; public class example : MonoBehaviour { public void Awake() { foreach (Transform child in transform) { child.position += Vector3.up * 10.0F; } } }
一、成员变量游戏
二、方法 游戏开发
例如(C#脚本): 开发
void Update() { //相对于自身坐标系统沿z轴向前移动物体(1单位/秒) transform.Translate(0, 0, Time.deltaTime); //在世界坐标系中向上移动物体(1单位/秒) transform.Translate(0, Time.deltaTime, 0, Space.World); //相对于摄像机向右移动物体(1单位/秒) transform.Translate(Vector3.right * Time.deltaTime, Camera.main.transform); //相对于自身坐标系统向右移动物体(1单位/秒) transform.Translate(Time.deltaTime, 0, 0, Camera.main.transform); }
其中,relativeTo的选项有:
Space.Self--默认。相对于变换的自身轴移动。
Space.World--(当在场景视图选择物体时,x、y和z轴显示)相对于世界坐标系统移动。
一、运行Unity,打开ch06Demos工程。
二、在Assets下添加名为6.4的子文件夹,而后在该文件夹下建立一个名为Scene6_4.unity的场景:
三、双击打开该场景。
四、向场景中添加一个圆柱体(Cylinder),并将其Y轴缩放改成5:
五、再向场景中添加一个lifangt(Cube),而后将X、Y、Z缩放系数全改成2:
六、调整摄像机位置,让圆柱体和立方体呈现出合适的大小:
七、在6.4文件夹中建立一个文件名为Demo4_1.cs的C#脚本:
八、双击Demo4_1,它就会自动启动VS2015,在VS2015中将Demo4_1.cs改成下面的代码并保存:
using UnityEngine; using System.Collections; public class Demo4_1 : MonoBehaviour { public GameObject cube; public GameObject cylinder; void OnGUI() { if (GUILayout.Button("向左移动Cube")) { cube.transform.Translate(new Vector3(-0.5f, 0f, 0f)); } if (GUILayout.Button("向右移动Cube")) { cube.transform.position = cube.transform.position + new Vector3(0.5f, 0f, 0f); } if (GUILayout.Button("放大Cube")) { cube.transform.localScale *= 1.2f; } if (GUILayout.Button("缩小Cube")) { cube.transform.localScale *= 0.8f; } if (GUILayout.Button("旋转Cube")) { cube.transform.Rotate(new Vector3(0, 10, 0)); } if (GUILayout.Button("围绕圆柱旋转Cube")) { cube.transform.RotateAround(cylinder.transform.position, Vector3.up, 10); } } }
九、切换到Unity,向场景中添加一个空的GameObject,而后将脚本拖放到检视器视图中,再将Cube和Cylinder分别拖放到脚本对应的属性下(赋初值):
十、按【播放】按钮,便可看到下面的预览效果:
屡次单击不一样的按钮或者同一个按钮,分别观察变化。