Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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_Animation_Animator - Fatal编程技术网

C# 如何创建此动画过渡?

C# 如何创建此动画过渡?,c#,unity3d,animation,animator,C#,Unity3d,Animation,Animator,我正在使用3D头像,这是我第一次使用动画。我已经完成了一个从空闲动画到另一个动画的转换。当滑块的值低于40时,它会进行转换,代码如下: public Slider barraAlimento; void Start() { anim = GetComponent<Animator>(); } void Update() { if (barraAlimento.value <= 40) { anim.SetBool("IrHambrient

我正在使用3D头像,这是我第一次使用动画。我已经完成了一个从空闲动画到另一个动画的转换。当滑块的值低于40时,它会进行转换,代码如下:

public Slider barraAlimento;
void Start()
{
    anim = GetComponent<Animator>();
}
void Update()
{
    if (barraAlimento.value <= 40)
    {
        anim.SetBool("IrHambriento", true);
    }
    else
    {
        anim.SetBool("IrHambriento", false);
    }
}
public-Slider-barralimento;
void Start()
{

anim=GetComponent

我相信你在寻找一个触发器而不是bool

将动画师中的布尔值从布尔更改为触发器,并将代码更改为

void ButtonManzanaClicked() 
{
    anim.SetTrigger("IrComiendo");
}
这将使每次“触发”触发器时都发生转换,就像一次性事件一样,不需要任何布尔值true->false来重置,就像您在代码中尝试的那样


我认为,你的代码不起作用的原因是,你在同一帧中将其设置回
false
,我认为动画系统会查看每个代码帧末尾的值,可以这么说。

我认为你在寻找触发器而不是bool

将动画师中的布尔值从布尔更改为触发器,并将代码更改为

void ButtonManzanaClicked() 
{
    anim.SetTrigger("IrComiendo");
}
这将使每次“触发”触发器时都发生转换,就像一次性事件一样,不需要任何布尔值true->false来重置,就像您在代码中尝试的那样


我认为,代码不起作用的原因是,在同一帧中将代码设置回
false
,我认为动画系统会查看每个代码帧末尾的值,可以这么说。

这可能是因为:

void ButtonManzanaClicked()
{
    anim.SetBool("IrComiendo", true);
    anim.SetBool("IrComiendo", false);
}
在将其设置为true之后,立即将其设置为false

尝试仅在按钮单击事件中放置
anim.SetBool(“IrComiendo”,true);
,并且
anim.SetBool(“IrComiendo”,false);
仅当您希望它返回到“Hambriento”动画时

编辑:
尝试这样做:

将“IrComiendo”更改为触发器(只是不需要将其值更改为false)
OBS:使用
anim.SetTrigger(“IrComiendo”);
调用它

如图所示设置连接:

*如果单击按钮后滑块的值不可能仍然小于40,则无需连接

**如果你想让它转到Comiendo,即使它不是hambriento,也要连接它

OBS:在按钮方法中,您只需更改滑块的值并调用“IrComiendo”


希望它有所帮助

这可能是因为:

void ButtonManzanaClicked()
{
    anim.SetBool("IrComiendo", true);
    anim.SetBool("IrComiendo", false);
}
在将其设置为true之后,立即将其设置为false

尝试仅在按钮单击事件中放置
anim.SetBool(“IrComiendo”,true);
,并且
anim.SetBool(“IrComiendo”,false);
仅当您希望它返回到“Hambriento”动画时

编辑:
尝试这样做:

将“IrComiendo”更改为触发器(只是不需要将其值更改为false)
OBS:使用
anim.SetTrigger(“IrComiendo”);
调用它

如图所示设置连接:

*如果单击按钮后滑块的值不可能仍然小于40,则无需连接

**如果你想让它转到Comiendo,即使它不是hambriento,也要连接它

OBS:在按钮方法中,您只需更改滑块的值并调用“IrComiendo”


希望它有帮助

我试过了,但是当它必须做第一个动画(哈姆布里安托)时,它只做这个新的动画(Comiendo),它不会返回到以前的动画。我试过了,但是当它必须做第一个动画(哈姆布里安托)时,它只做这个新的动画(Comiendo),它不会返回到上一个动画。我不知道为什么它不工作。我尝试只将anim.SetBool(“IrComiendo”,true);放在按钮单击事件中以检查该部分是否工作,但当我单击按钮时它不会执行动画。相反,第一次在空闲动画和“Hambriento”之间进行转换动画,但它不会进入“Comiendo”动画。第二次,它从空闲动画进入“Comiendo”动画并在那里停止,不返回任何动画。第一次单击按钮时IrComiendo的值是否为真?从Hambriento到Comiendo的转换条件是否设置为IrComiendo=真?是的,在条件中设置为真。我尝试编写
anim.SetBool(“IrComiendo”,false);
在Start()方法的开头,现在它第一次进入Comiendo动画,而不是第二次(不按按钮)。因此,您希望它第一次单击按钮时进入Hambriento,第二次单击按钮时进入Comiendo动画,对吗?如果是这样,在button方法中,您可以获得“IrHambriento”使用anim.GetBool(“IrHambriento”)和do anim.SetBool(“IrComiendo”,true);如果是真的。不,对不起,不是这样。每次滑块的值(随着时间的推移而减小)为40时,它都必须返回到空闲动画。我不知道为什么它不起作用。我尝试只放置anim.SetBool(“IrComiendo”,true);在button click事件中,检查该部分是否工作,但当我单击按钮时,它不会执行动画。相反,第一次在空闲动画和“Hambriento”动画之间进行转换,但不会转到“Comiendo”动画。第二次,它从空闲动画转到“Comiendo”“动画并在那里停止,不返回任何动画。第一次单击按钮时IrComiendo的值是否为真?从Hambriento到Comiendo的转换条件是否设置为IrComiendo=真?是的,在条件中设置为真。我尝试编写
anim.SetBool(“IrComiendo”,false)
在Start()方法的开头,现在它第一次进入Comiendo动画,而不是第二次(不按按钮)。因此,您希望它第一次单击按钮时进入Hambriento,第二次单击按钮时进入Comiendo动画,对吗?如果