C# 动画+;精灵在统一上翻转;

C# 动画+;精灵在统一上翻转;,c#,unity3d,animation,C#,Unity3d,Animation,我需要在Unity上设置2D游戏中翻转的动画。最好的方法是什么 我正在尝试这样的伪代码: void FixedUpdate(){ if(lastSide!=currentSide) 翻转(); } void flip(){ if(lastSide==1)//if朝向右侧 设置触发器(“flipToLeft”); else if(lastSide==-1)//if朝左 设置触发器(“FliptRight”); this.player.transform.localScale=新向量3(lastSi

我需要在Unity上设置2D游戏中翻转的动画。最好的方法是什么

我正在尝试这样的伪代码:

void FixedUpdate(){
if(lastSide!=currentSide)
翻转();
}
void flip(){
if(lastSide==1)//if朝向右侧
设置触发器(“flipToLeft”);
else if(lastSide==-1)//if朝左
设置触发器(“FliptRight”);
this.player.transform.localScale=新向量3(lastSide*-1,1f,1f);
}  

这“起作用”,但精灵在翻转动画开始之前正在翻转。

一个选项是硬编码希望精灵翻转的点的延迟:

void FixedUpdate()
{ 
     if(lastSide != currentSide)
         StartCoroutine(Flip());
}

IEnumerator Flip()
{
    if(lastSide == 1) // if is facing right
         animator.SetTrigger("flipToLeft");

    else if(lastSide == -1) //if is facing left
         animator.SetTrigger("flipToRight");

    yield return new WaitForSeconds(.5f); // delay before flipping sprite
    transform.localScale = new Vector3(lastSide*-1,1f,1f);
}

如果您不想硬编码计时,您可以查看哪些可以直接从动画调用函数。

您可以使用DoTween以简单的方式进行翻转