准备工作
延续之前的工程:
1.构建一个角色Cube,命名为Student。
2.创建材质球,利用纯色填充,并拖拽到Student上。
3.将Student拖拽到Prefabs面板中。
变换组件移动物体
游戏物体与组件之间的联系:
相关方法
gameObject.GetComponent():获取相应组件的引用。
查找当前游戏物体身上的某个组件,然后保存它的引用。
Transform.Translate(Vector3, Space):移动物体的位置。
游戏物体往某个方向移动;以自身坐标系或世界坐标系。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StudentMove : MonoBehaviour {
private Transform m_Transform;
// Use this for initialization
void Start () {
//获取当前物体的Transform组件
m_Transform = gameObject.GetComponent<Transform>();
}
// Update is called once per frame
void Update () {
//移动物体位置:以自身坐标系为基准,向前走
m_Transform.Translate(Vector3.forward * 0.1f, Space.Self);
//移动物体位置:以世界坐标系为基准,向前走
//m_Transform.Translate(Vector3.forward * 0.1f, Space.World);
}
}
相关参数
Vector3[struct]:三维向量。
向量,可以表示一个方向,也可以表示一个位置。
Space[enum]:空间。
Space.Self:表示物体自身的坐标系。
!Space.World:表示物体所在的世界坐标系。
备注:脚本是游戏物体的一部分,一般控制谁的脚本就挂载在谁的身上。
2.键盘控制移动方向
查使用键盘上的“W,A,S,D”来控制游戏物体的前后左右移动。
变换组件运动特点
使用 Transform.Translate()方法移动物体的位置,特点如下:
①移动的物体会“穿透”场景中其他的物体模型;
②移动的物体不会受重力影响(到达场景边缘外,不会下落)。