美文网首页
Unity3D使用变换组件移动游戏物体(八)

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

作者: TonyWan_AR | 来源:发表于2016-12-16 18:18 被阅读272次

    本节要点

    #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

    相关文章

      网友评论

          本文标题: Unity3D使用变换组件移动游戏物体(八)

          本文链接:https://www.haomeiwen.com/subject/fjdnmttx.html