setTrigger为什么没法复位啊?
unity3d吧
全部回复
仅看楼主
level 1
picnico 楼主
我用settrigger触发动画,触发完这个trigger卡在true的状态不置为false了,为什么?
后来我想要用setbool和协程来将这个trigger置为true十帧,后来我发现这个协程好像也会堵塞,我输出这个trigger的状态发现并不是我点一次他就置为true十帧,结果是集中在我点了几次之后这个trigger突然有段时间一直为true,这个如何解决?
2023年09月04日 14点09分 1
level 1
picnico 楼主
public static readonly int TriggerCombo = Animator.StringToHash("TriggerCombo");
//Trigger名字
public static void SetComboAnimationTrigger(this Animator animator, int combonumb){ //trigger动画 chatgpt说过渡状态未结束再次触发可能会导致settrigger堵塞,我就试着如果在过渡状态就不进行settrigger
Debug.Log(animator.IsInTransition(0));
if (animator.IsInTransition(0) || animator.IsInTransition(1))
{ return; }
animator.SetInteger(AnimationParameters.TriggerComboNumber, combonumb);
//这里开始setTrigger;
animator.ResetTrigger(AnimationParameters.TriggerCombo); animator.SetTrigger(AnimationParameters.TriggerCombo); Debug.Log(animator.IsInTransition(0));
}
public void Attack(int attackNumber, Side attackSide, Weapon leftWeapon, Weapon rightWeapon)
{
/* animator.SetSide(attackSide);
float attackcombotime = rightWeapon.GetCurrentAttackComboDuration();
float attackLocktime = rightWeapon.GetAttackTime();
_isAttacking = true;
StartCoroutine("AttackRayCastByFrame"); */ animator.SetComboAnimationTrigger(attackNumber);//这行调用trigger动画;
/* Lock(true, true, true, 0, attackLocktime);
LockCombo(attackcombotime); */
}
2023年09月04日 15点09分 3
level 8
trigger不自动变为false只有一个可能 那就是没有触发
2023年09月05日 02点09分 4
level 6
trigger好像并不会自动变为false,要自己调用resettrigger,而且如果是anystate的话要设置状态不可重复进入本身,否则一直为true就是一直重新进去这个状态
2023年09月16日 00点09分 5
1