unity3d .2 配置xbox手柄

时间:2024-03-03 22:18:35

1.设置 input

进入 Project Settings,点击input->axes, 很多列出来的axes和按键都是重复的,第一组用于用于键盘控制,第二组用于游戏控制器,默认设置与xbox手柄配合的不错。

右键单击第二组 horizontal 和vertical,duplicate 复制这两组,单独配置各项。如下图:

注意:axes和按键的设置界面在mac和win10 系统的界面是不同的。

如果你用的是win10,把刚才复制出来的多的那一组配置分别按照如下图中的设置:

 

 

 

 

如果你是mac电脑,按下图设置:

 

 

 

 

然后关闭这个setting窗口。

2. 相关scene中的设置:

在物体中新建player controller脚本:

 

声明一下参数:

public float runSpeed = 10f;

public float jumpForce = 5f;

public Rigidbody rigidbody;

private vector3 movement =new vector3();

有两种方法可以得到input轴的值:GetAxis和 GetAxisRaw

GetAxis:执行筛选和平滑数据

GetAxisRaw:返回确切值

使用getaxisraw可以让输入相应更快但不精准,getaxis可以更流畅但是响应速度较低。我理解的是getaxis可以精确获得线性值。

 

 然后在fixedupdate中编写脚本:

movement.x = runSpeed * Input.GetAxisRaw("Horizontal")

 movement.z = runSpeed * Input.GetAxisRaw("Vertical")

 rigidbody.MovePosition(rigidbody.position+movement * Time.fixedDeltaTime);

if (Input.GetButtonDown("Jump")) rigidbody.velocity = Vector3.up * jumpForce

 以上是来自unity learn官网的教程我以我的理解翻译的,我自己试了一下配置xbox 手柄,没太明白为什么要配置horizon和vertical ,以及为什么要设置成6th axis和7th axis 。因为默认的多出来的那组就可以给xbox用的。希望懂的大佬给指明一下谢谢!

不过试了一下多出来的那组horizon和vertical默认是左摇杆的,为了实现右摇杆可以实现鼠标的转向,我把mousexy 各多复制了一份,设置如下,可以实现鼠标的转向,如下图,这样就可以fps那样操纵人物移动了,左摇杆我用的默认的多出来的那组horizon和vertical。