Input Unity 2d平台控制器支持

Input Unity 2d平台控制器支持,input,controller,unity3d,sprite,direction,Input,Controller,Unity3d,Sprite,Direction,我目前正在尝试在Unity中创建一个2d平台成型器,除了一件事,其他一切都很好。当我向左或向右推动时,我的精灵动画将镜像到正确的方向。我目前正在尝试添加控制器输入,但我似乎无法将模拟向左或向右推。当向右推动斗杆时,它应该是镜像的,反之亦然 希望有人能帮我:) 你有这个: if(Input.GetAxis("Horizontal")) { // Gamer pushes left arrow key // Set texture to normal position transform.local

我目前正在尝试在Unity中创建一个2d平台成型器,除了一件事,其他一切都很好。当我向左或向右推动时,我的精灵动画将镜像到正确的方向。我目前正在尝试添加控制器输入,但我似乎无法将模拟向左或向右推。当向右推动斗杆时,它应该是镜像的,反之亦然

希望有人能帮我:)

你有这个:

if(Input.GetAxis("Horizontal")) {
// Gamer pushes left arrow key
// Set texture to normal position
transform.localScale.x = -X;
}
else if (Input.GetAxis("Horizontal")) {
// Gamer pushes right arrow key
// Flip texture
transform.localScale.x = X;
}
第二个else if将始终被调用,因为您正在检查完全相同的输入。GetAxis()

试着这样做:

if (Input.GetAxis("Horizontal") < 0)
{
    transform.localScale.x = -X;
}
else if (Input.GetAxis("Horizontal") > 0)
{
    transform.localScale.x = X;
}
if(Input.GetAxis(“水平”)<0)
{
transform.localScale.x=-x;
}
else if(Input.GetAxis(“水平”)>0)
{
transform.localScale.x=x;
}
Input.GetAxis(“水平”)检查所有可按下的左键和右键,并根据左键或右键吐出一个数字

示例 如果我按下“左箭头”键,它将返回一个介于0和-1之间的数字。 如果我按下“向右箭头”键,它将返回一个介于0和1之间的数字


这有意义吗?

我会彻底抛弃标准的Unity输入,这简直是太可怕了,转而使用InControl智能驭享

他们的API允许您检测正在使用的设备,并允许非常简单和高效的多玩家支持


不同游戏板和平台的映射将允许您开发标准布局,并且您将花费更少的时间尝试使控件在不同平台上或多或少工作。

您好,是的,这是有意义的,我目前正在上课,因此我没有机会用我的控制器测试脚本。所以这个脚本的意思是如果水平方向<0向左移动,如果水平方向>0向右移动?unity是否自动理解左边的模拟是输入?除此之外,我还在unity的输入部分添加了有线控制器的D-pad。它确实有效,但我必须添加两个水平轴,一个用于D-pad的左箭头,一个用于右箭头。@QuincyNorbert Yeh我不完全确定您是如何设置输入的,但请阅读下面的链接,看看这是否有帮助。。。那么您已经创建了自己的定制d-pad?我尝试了您的方法,现在它正在工作,非常感谢!我确实尝试过一次,但忘记在else if语句上添加>0:s
if (Input.GetAxis("Horizontal") < 0)
{
    transform.localScale.x = -X;
}
else if (Input.GetAxis("Horizontal") > 0)
{
    transform.localScale.x = X;
}