zoukankan      html  css  js  c++  java
  • Unity 物体的移动

    Unity 通过内置的 Input 类获取外部的输入

    具体可通过 Editor---Project Setting---Input 查看

    常见的输入例如:Vertical、Horizontal、Fire1、Jump等

    物体移动

    1、物体自己移动

    private Transform transform;
    transform = GetComponent<Transform>();
    
    transform.position += new Vector3(0, 0, 1);
    transform.Translate(Vector3.forward);

    首先定义 Transform 组件,再获取组件

    1)可以改变组件的位置属性进行移动,Vector3(0,0,1) 表示物体沿z轴的正方向移动,其他类似 Vector3(1,0,0) 表示沿x的正方向移动

    2)使用组件的 Translate() 函数进行移动,函数的传值 Vector3.forward 其实等价于 Vector3(0,0,1)

       当然还有 Vector3.left=Vector3(-1,0,0) 等

    2、键盘控制物体移动

    private Transform transform;
    
    private float v = 0.0F;
    private float h = 0.0F;
    
    v = Input.GetAxis("Vertical");
    h = Input.GetAxis("Horizontal");
    
    transform.Translate(Vector3.forward*v);
    transform.Translate(Vector3.left*h);
    transform.Translate(Vector3.forward*v*Speed*Time.deltaTime);

    1)分别获取x轴和z轴的方向

       同样定义组件和获取组件,接下来需要获取水平和垂直坐标,直接乘到 Vector3.* 向量就可以实现,值得注意的是 Vector3.* 获取的只是方向

       总之是方向*坐标轴即可移动

       最后可以看到加入的移动速度和 Time.daltaTime 同样改变游戏移动速度的参数,以每秒10个单位的速度前进

    2)用向量 moveDir 获取 X 轴和 Z 轴的方向,更加简练

    v = Input.GetAxis("Vertical");
    h = Input.GetAxis("Horizontal");
    
    Vector3 moveDir = (Vector3.forward*v) + (Vector3.right*h);
    transform.Translate(moveDir.normalized*Speed * Time.deltaTime );

    物体旋转

    其实在 transform 组件中除了位置外,还有一个重要的属性,旋转 Rotate()

    旋转其实也可以分为自动旋转和通过键盘输入进行旋转;

    1 private Transform transform;
    2 public float rotSpeed = 100.0F;
    3 
    4 transform = GetComponent<Transform>();
    5 
    6 transform.Rotate(Vector3.forward * Time.deltaTime * rotSpeed* Input.GetAxis("Mouse X"));
    7 transform.Rotate(Vector3.forward * Time.deltaTime * rotSpeed);

    首先需要定义 Transform 组件,然后获取组件,再通过函数 Rotate() 进行旋转,其中的参数和位置函数 Traslate() 类似

    原文:彩色的梦

    *** |  以上内容仅为学习参考、学习笔记使用  | ***

  • 相关阅读:
    【 一次性密码】TOTP
    动态令牌-(OTP,HOTP,TOTP)-基本原理
    动态口令
    Jmeter参数化 CSV Data Set Config界面说明
    Jmeter测试监控 Summary Report界面
    jmeter命令行参数
    jmeter场景设计
    jmeter事务控制器
    软件测试模型
    业务流程测试
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13401855.html
Copyright © 2011-2022 走看看