• 【Unity笔记】角色的移动方法


    方法一:改变物体的transform

    public class ExampleClass : MonoBehaviour {
        public float speed = 5;
    
        // 跟随摄像机的移动要写在LateUpdate中
        void LateUpdate() {
            transform.Translate(0, 0, Time.deltaTime * speed);
        }
    }

    方法二:使用刚体的位移函数MovePosition()

    public class ExampleClass : MonoBehaviour {
        public float speed = 6.0f;
        Vector3 movement;
        void Start()
        {
            playerRigidbody = rigidbody;
        }
        void FixedUpdate()
        {
            // 角色控制
            float h = Input.GetAxisRaw("Horizontal"); // 获取横轴值
            float v = Input.GetAxisRaw("Vertical");   // 获取纵轴值
            Move(h, v);
        }
        void Move(float h, float v)
        {
            movement.Set(h, 0, v);
            movement = movement.normalized * speed * Time.deltaTime;
            playerRigidbody.MovePosition(transform.position + movement);
        }
    }

    方式三:改变刚体的速度rigidbody.velocity。速度是矢量,具有方向性。

    public class ExampleClass : MonoBehaviour {
        // 获取摇杆值
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");
    
        // 改变速度
        rigidbody.velocity = new Vector3(moveHorizontal, 0.0f, moveVertical) * speed;
    }
  • 相关阅读:
    java中的工厂模式(简单工厂模式+工厂方法模式)
    代码集合
    java读取文件的路径问题
    使用ZXing库生成二维码
    java设计模式-装饰者模式
    android文件流缓存
    java8 新特性
    Excel导出
    常用的在线工具
    Java加密简介
  • 原文地址:https://www.cnblogs.com/guxin/p/unitiy-how-to-move-player.html
Copyright © 2020-2023  润新知