本节要点
#1.变换组件移动物体
1.相关方法
gameObject.GetComponent<T>():获取相应组件的引用。
查找当前游戏物体身上的某个组件,然后保存它的引用。
Transform.Translate(Vector3, Space):移动物体的位置。
游戏物体往某个方向移动;以自身坐标系或世界坐标系。
2.相关参数
Vector3[struct]:三维向量。
向量,可以表示一个方向,也可以表示一个位置。
Space[enum]:空间。
Space.Self:表示物体自身的坐标系。
Space.World:表示物体所在的世界坐标系。
备注:脚本是游戏物体的一部分,一般控制谁的脚本就挂载在谁的身上。
#2.键盘控制移动方向
查使用键盘上的“W,A,S,D”来控制游戏物体的前后左右移动。
场景视图
关键代码
public class StudentMove : MonoBehaviour {
private Transform m_Transform;
// Use this for initialization
void Start () {
//获取相应组件的引用,声明同类型字段去接收
m_Transform=gameObject.GetComponent<Transform>();
}
// Update is called once per frame
void Update () {
//移动物体位置的关键语句
// m_Transform.Translate(Vector3.forward*0.1f,Space.World);
//参数1:Vector3移动物体的三维变量(枚举类型),表示x,y,z;Space参数2:移动物体的坐标系(枚举类型)自身坐标系或世界坐标系
//0.1f 表示将当前速度下调到原来十分之一;切记加上f
//获取相应键控制方向;w a s d
if (Input.GetKey(KeyCode.W))
{
m_Transform.Translate(Vector3.forward*0.1f,Space.World);//往前
}
if (Input.GetKey(KeyCode.S))
{
m_Transform.Translate(Vector3.back * 0.1f, Space.World);//向后
}
if (Input.GetKey(KeyCode.A))
{
m_Transform.Translate(Vector3.left * 0.1f, Space.World);//向左
}
if (Input.GetKey(KeyCode.D))
{
m_Transform.Translate(Vector3.right * 0.1f, Space.World);//向右
}
}
}
小结
游戏物体与组件.png
Unity API.png
网友评论