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();

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

    private Transform transform;
    public float rotSpeed = 100.0F;
    
    transform = GetComponent<Transform>();
    transform.Rotate(Vector3.forward
    * Time.deltaTime * rotSpeed* Input.GetAxis("Mouse X")); transform.Rotate(Vector3.forward * Time.deltaTime * rotSpeed);

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

  • 相关阅读:
    shell变量解析
    visual studio code(vscode)使用
    linux虚拟机安装
    算法总结系列之八:复读机的故事散列表及其在.NET中的应用浅析(上集)
    对改善Dictionary时间性能的思考及一个线程安全的Dictionary实现
    算法总结系列之八:复读机的故事 散列表.NET应用的研究(下集)
    使用WiX打包你的应用程序之二向WiX脚本传递信息(属性)的几种方式
    当心Dictionary带来的一种隐式内存泄漏
    从DWG到XAML (II) DWFx格式解析及其和XPS的关系
    从DWG到XAML (I) 浅谈DWG历史,现状及方向
  • 原文地址:https://www.cnblogs.com/Optimism/p/10638795.html
Copyright © 2011-2022 走看看