Unity3D使用变换组件移动游戏物体(八)

本节要点

#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

推荐阅读更多精彩内容