zoukankan      html  css  js  c++  java
  • 【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;
    }
  • 相关阅读:
    装饰 Markdown
    小技巧
    LINUX 下挂载 exfat 格式 u 盘或移动硬盘
    Matlab 也很强大!
    imageio 载入 Buffer 格式的图片
    Docker 入门
    COCO 数据集使用说明书
    Python 基础 json 与pickle
    Python 基础 常用模块
    Python 基础 装饰器
  • 原文地址:https://www.cnblogs.com/guxin/p/unitiy-how-to-move-player.html
Copyright © 2011-2022 走看看