Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在返回正值之前先返回负值?_C#_Unity3d - Fatal编程技术网

C# 在返回正值之前先返回负值?

C# 在返回正值之前先返回负值?,c#,unity3d,C#,Unity3d,因此,当在我的游戏中执行此代码时,它首先返回负rb.velocity.y值,然后返回正值,我不知道为什么。速度变量始终等于7 我试图更改速度和速度修改器变量,但没有成功 if(wallGrab&&!isDashing) { rb.重力标度=0; 如果(x>.2f | | x0?.5f:1; rb.velocity=新矢量2(rb.velocity.x,y*(速度*速度修饰符)); } } 其他的 { rb.重力标度=3; } 有人想要更多的代码,让我解释一下它是如何工作的。 第一个if语句检查

因此,当在我的游戏中执行此代码时,它首先返回负
rb.velocity.y
值,然后返回正值,我不知道为什么。速度变量始终等于7

我试图更改
速度
速度修改器
变量,但没有成功

if(wallGrab&&!isDashing)
{
rb.重力标度=0;
如果(x>.2f | | x<-.2f)
rb.velocity=新矢量2(rb.velocity.x,0);
浮动速度修改器=y>0?.5f:1;
rb.velocity=新矢量2(rb.velocity.x,y*(速度*速度修饰符));
}
}
其他的
{
rb.重力标度=3;
}
有人想要更多的代码,让我解释一下它是如何工作的。
第一个if语句检查玩家是否抓住一堵墙,然后将重力设置为0。然后检查玩家是否试图朝墙移动,如果为true,则将y速度设置为0。然后它改变了速度。问题是,这段代码适用于游戏的“滑动”功能和爬升功能。因此,如果y>0,它将上升,如果y正常,那么我无法真正解决问题,所以我只实施了一个简陋的解决方案

if(wallGrab&&!isDashing)
{
rb.重力标度=0;
rb.velocity=新矢量2(rb.velocity.x,0);
如果(x>.2f | | x<-.2f)
rb.velocity=新矢量2(rb.velocity.x,0);
浮动速度修改器=y>0?.5f:1;
if(yRaw<0)
{
爬下=正确;
爬升p=假;
rb.velocity=新矢量2(rb.velocity.x,-3.5f);
}
如果(yRaw>0),则为else
{
向下攀爬=错误;
爬升p=真;
rb.velocity=新矢量2(rb.velocity.x,3f);
}
其他的
{
向下攀爬=错误;
爬升p=假;
rb.velocity=新矢量2(rb.velocity.x,0);
}
}
其他的
{
rb.重力标度=3;
}

我没有试图用一条线来处理所有问题,我只是用原始Y值(1,0或-1)来分离不同的结果,然后从中有一个静态的运动

好的,所以我无法真正解决问题,所以我只是实施了一个简陋的解决方案

if(wallGrab&&!isDashing)
{
rb.重力标度=0;
rb.velocity=新矢量2(rb.velocity.x,0);
如果(x>.2f | | x<-.2f)
rb.velocity=新矢量2(rb.velocity.x,0);
浮动速度修改器=y>0?.5f:1;
if(yRaw<0)
{
爬下=正确;
爬升p=假;
rb.velocity=新矢量2(rb.velocity.x,-3.5f);
}
如果(yRaw>0),则为else
{
向下攀爬=错误;
爬升p=真;
rb.velocity=新矢量2(rb.velocity.x,3f);
}
其他的
{
向下攀爬=错误;
爬升p=假;
rb.velocity=新矢量2(rb.velocity.x,0);
}
}
其他的
{
rb.重力标度=3;
}

我没有试图用一行来处理所有问题,我只是用原始Y值(1,0或-1)来分离不同的结果,然后从中产生一个静态运动

我想知道变量Y是什么,何时调用此代码?您是否在inspector中禁用了对象上的重力?一旦玩家“抓取”一堵墙,就会调用该代码,Y是玩家的垂直输入,是的,重力设置为0。在您将gravityScale设置为0的准确时间,rb的速度是否发生变化?或者只有当输入的时候?当角色抓住一堵墙时,重力一直为0,所以假设我抓住墙的中间,按下向上箭头,我会先被向下推一点,然后再上升,这很奇怪,当我在家时,我会用你的代码在我的电脑上重现这个问题。我想知道变量y是什么,你什么时候调用这个代码?您是否在inspector中禁用了对象上的重力?一旦玩家“抓取”一堵墙,就会调用该代码,Y是玩家的垂直输入,是的,重力设置为0。在您将gravityScale设置为0的准确时间,rb的速度是否发生变化?或者只有在输入的时候?当角色抓住一堵墙时,重力始终为0,所以假设我抓住墙的中间并按下向上箭头,我会先被向下推一点,然后再向上推。这很奇怪,当我在家时,我会尝试用你的代码在我的计算机上重现这个问题