zoukankan      html  css  js  c++  java
  • unity官网教程——Roll-a-ball tutorial——1移动的小球

    参考网址:https://unity3d.com/cn/learn/tutorials/projects/roll-ball-tutorial/moving-player?playlist=17141

        http://blog.csdn.net/u013681344/article/details/51319248?locationNum=9

    实现结果:键盘按钮控制小球的移动

    代码:

     1 using System.Collections;
     2 using System.Collections.Generic;
     3 using UnityEngine;
     4 
     5 public class PlayerController : MonoBehaviour
     6 {
     7     public float mBallSpeed = 0.0f;
     8 
     9     private Rigidbody mPlayerRgbody = null;
    10     private float mMoveX = 0.0f;
    11     private float mMoveZ = 0.0f;
    12     private Vector3 mMovement = Vector3.zero;
    13 
    14     private void Start()
    15     {
    16         mPlayerRgbody = gameObject.GetComponent<Rigidbody>();
    17         if (mPlayerRgbody == null)
    18         {
    19             Debug.LogError("this rigidBody is null !!!");
    20         }
    21     }
    22 
    23     // 如果启用 MonoBehaviour,则每个固定帧速率的帧都将调用此函数
    24     private void FixedUpdate()
    25     {
    26         mMoveX = Input.GetAxis("Horizontal");
    27 
    28         Debug.LogError("X:" + mMoveX);
    29 
    30         mMoveZ = Input.GetAxis("Vertical");
    31 
    32         mMovement.x = mMoveX;
    33         mMovement.z = mMoveZ;
    34 
    35         mPlayerRgbody.AddForce(mMovement * mBallSpeed, ForceMode.Force);
    36     }
    37 
    38 }

    从日志可以看出 

    Debug.LogError("X:" + mMoveX);  当按下D按键不松时 mMoveX是不断从0增大到1.0f

    总结:

    Input类的GetAxis()函数:返回值为浮点数,范围在-1和1之间(重置坐标设置)
    Input.GetAxis()与Input.GetKey()和Input.Button()原理类似,但有根本区别,Input.GetKey()和Input.Button()返回布尔值,表示按钮是否被按下,而GetAxis返回浮点数,范围在1和-1之间,如果想在Input Manager中重置坐标设置,按键只需要设置"Postive Button",而坐标轴需要设置"Positive&NegativeButton",

    "Gravity","Seneitivity(灵敏度)","Dead","Snap"
    Gravity:表示按钮松开后,返回值归零的速度,Gravity越大,归零速度越快
    Sensitivity:表示按下按钮后,返回值到达1或者-1的速度,值越大,速度越快,反之则越平滑
    如果我们使用摇杆来控制坐标轴,我们不需要让他的返回值过小,可以设置Dead,Dead值越大,摇杆也需要移动更大距离才能获取返回值
    勾选Snap选项当正反按钮同时按下时会返回0
    如果想要获取水平和垂直方向的输入,只需加入代码Input.GetAxis("Horizontal")还有Input.GetAxis("Vertical")
    你可以使用Input.GetAxisRaw("Horizonta l")只返回整数值,不需要设置"Gravity","Seneitivity"

    改变自己
  • 相关阅读:
    (转)ELK Stack 中文指南--性能优化
    (转)如何在CentOS / RHEL 7上安装Elasticsearch,Logstash和Kibana(ELK)
    (转)GlusterFS 01 理论基础,企业实战,故障处理
    (转)CentOS7.4环境下搭建--Gluster分布式集群存储
    (转)DB2性能优化 – 如何通过调整锁参数优化锁升级
    (转)架构师之DNS实战CentOS7VSCentOS6
    PHP:计算文件或数组中单词出现频率
    [获取行数]php读取大文件提供性能的方法,PHP的stream_get_line函数读取大文件获取文件的行数的方...
    Windows下配置环境变量和需不需要重启问题
    CENTOS 下安装APK反编译工具 APKTOOL
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/7881789.html
Copyright © 2011-2022 走看看