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"

 

转载于:https://www.cnblogs.com/sun-shadow/p/7881789.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值