level 1
我之后为了检验,把代码修改成了下面的,删除了受伤效果和跳跃判定,改成了只要player碰到青蛙就会消灭,结果运行成功
2022年05月30日 02点05分
2
level 1
刚刚看了下animator,我估计是falling触发时间太短的锅
2022年05月30日 03点05分
7
level 5
鉴于我对面相对象的信仰,代码我不会这样写。我会写一个colideManager, 在player生成的时候把碰撞的方法都委托给colideManager,当碰撞的时候。colideManager根据逻辑来告诉player anim要怎样演,告诉frog是否演示死亡。
这样写,你这种失误完全避免了。
另外,你这用字符串来找anim属性,建议你声明一个常量来找,避免输入错误的问题。
2022年05月30日 07点05分
9
level 1
我是用fall的bool值来判断消灭青蛙的,但是我发现animator里面fall的bool值只有刚刚下落一瞬间为true,虽然fall的动画会持续到落地,但是bool只有一瞬间是true
2022年05月30日 10点05分
13
level 1
void SwitchAnim()
{
anim. SetBool("idleing", false);
if(rb.velocity.y<0.01f && !coll.IsTouchingLayers(ground))
{
anim.SetBool("falling",false);
}
if(anim. GetBool("jumping"))
{
if(rb. velocity.y < 0)
{
anim. SetBool("jumping",false);
anim. SetBool("falling",true);
}
}
else if(IsHurt)
{
anim.SetBool("hurting",true);
anim.SetFloat("running",0);
if(Mathf.Abs(rb.velocity.x)<0.1f)
{ anim.SetBool("hurting",false);
anim.SetBool("idleing",true);
IsHurt = false;}
}
else if(coll. IsTouchingLayers(ground))
{
anim. SetBool("falling", false);
anim. SetBool("idleing", true);
}
}
2022年05月30日 10点05分
14
level 1
上面这段是跳跃jump,落地fall,受伤hurt的代码,有大佬看看为什么fall的bool值只有一瞬间为true吗,我明明写的是只要y方向的速度小于0就为true
2022年05月30日 10点05分
15
level 1
没写过编程,代码很乱,但是也不知道乱在什么地方,空格这种很重要吗
2022年05月30日 15点05分
18