gpt4 book ai didi

c# - 动画停止后直接调用函数 - Unity

转载 作者:行者123 更新时间:2023-11-30 17:00:08 25 4
gpt4 key购买 nike

我正在尝试使用名为 Turnaround 的动画让我的角色转身。我的 Turnaround 动画与它应该的方向相反,因为我在转动动画之前或期间调用了 Flip() (它翻转了动画中的图像)。 Turn() 设置一个触发器,它将调用 Turnaround 动画来运行。它现在看起来几乎完美,但有一个 flickr,因为 Flip() 不会在 turnAround 动画之后直接出现,而且永远不会。我需要在 Turn() 之后直接执行 Flip(),但它永远不会及时发生,因此该技术无法作为专业解决方案使用。有没有人有任何其他想法如何去做?

 void Flip()
{
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}

void Turn()
{
facingRight = !facingRight;
anim.SetTrigger("JustTurned");
}

IEnumerator wait()
{
maxSpeed = 0;
Turn();
//float length = anim.animation["TurnAround"].clip.length;
yield return new WaitForSeconds(1.1f);
Flip();
maxSpeed = 5;
}

我已经创建了一个新的镜像 Sprite 表,所以我现在每个动画都有 2 个(一个用于左侧,一个用于右侧),现在我不需要翻转世界。我发现无论我采用何种方法,翻转世界都会导致一帧的方向与应有的方向相反。删除翻转似乎是最好的解决方案,看起来不错。请发表您的意见。

最佳答案

改变你的

yield return new WaitForSeconds(1.1f)

yield return new WaitForSeconds(animation.clip.length)

Link to Unity docs

关于c# - 动画停止后直接调用函数 - Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22678154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com