Unity3d 根据游戏对象和/或相机方向触发动画播放

Unity3d 根据游戏对象和/或相机方向触发动画播放,unity3d,animation,animator,Unity3d,Animation,Animator,Unity 2018.4.7f1,C# 我正在用3D环境中的2D精灵制作一个游戏,使用混合树将12个动画片段分组(代表12个不同的透视/旋转)。我最近为我的角色制作了3个新动画(36个新剪辑)——她完全转过身(180度)、向左(90度)和向右(270度),但问题是我不知道如何将这些插入到我现有的动画师中 具体来说,问题是我需要“旋转”动画激活一次,并且只有在特定情况下才能根据游戏对象的方向激活。例如,如果我的角色背对着摄影机并选择向前移动,那么当然不需要旋转动画。但如果她向左、向右或朝着相机移动

Unity 2018.4.7f1,C#

我正在用3D环境中的2D精灵制作一个游戏,使用混合树将12个动画片段分组(代表12个不同的透视/旋转)。我最近为我的角色制作了3个新动画(36个新剪辑)——她完全转过身(180度)、向左(90度)和向右(270度),但问题是我不知道如何将这些插入到我现有的动画师中

具体来说,问题是我需要“旋转”动画激活一次,并且只有在特定情况下才能根据游戏对象的方向激活。例如,如果我的角色背对着摄影机并选择向前移动,那么当然不需要旋转动画。但如果她向左、向右或朝着相机移动,那么我需要三个旋转动画中的一个来触发

我已经尝试了几种不同的方法来实现这一点,但找不到最好的方法。我应该:

  • 创建3个新的混合树,每个旋转动画一个,在动画中创建一个参数以在过渡中激活?如果是,哪种参数(bool、trigger)?如果脚本考虑游戏对象的转换位置,脚本是否应该关注?

  • 在“属性”中的“动画”窗口中对动画执行某些操作

  • 在我的玩家脚本中制作动画事件

  • 将一个混合树插入另一个混合树

  • 开始研究四元数方法

  • 下面的屏幕截图是一个“普通”动画的混合树(SL代表左移,就像角色在许多空闲动画中左移重量一样),我试图通过添加一个带有旋转动画剪辑的混合树来修改它