两个动画层,base和mask,如何实现在移动状态时使用遮罩动画,待机状态时使用同一个(没有遮罩)动画。
我的设想是在2个层中都加入这个动画,然后在代码中加入移动和非移动时SetLayerWeight(),
但是失败了,它始终只能播放base层的动画.
Unity动画状态机的层与遮罩
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- m0_54204465 2023-02-02 08:40关注
在Unity中实现动画层的遮罩可以通过设置动画层的权重来实现。
在两个动画层中分别添加你的动画,然后在代码中使用Animator.SetLayerWeight(layerIndex, weight)方法来设置动画层的权重,从而控制动画层的混合。在移动状态时,设置遮罩动画层的权重为1,设置base动画层的权重为0,在待机状态时,则相反。
例如:
Animator animator; int baseLayer = 0; int maskLayer = 1; void Update() { if (isMoving) { animator.SetLayerWeight(baseLayer, 0); animator.SetLayerWeight(maskLayer, 1); } else { animator.SetLayerWeight(baseLayer, 1); animator.SetLayerWeight(maskLayer, 0); } }
请确保在Animator组件中的对应动画层的名称正确设置,并且每个动画层都设置为独立播放,而不是共享同一个状态机。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
- ¥500 52810做蓝牙接受端
- ¥15 基于PLC的三轴机械手程序
- ¥15 多址通信方式的抗噪声性能和系统容量对比
- ¥15 winform的chart曲线生成时有凸起
- ¥15 msix packaging tool打包问题
- ¥15 finalshell节点的搭建代码和那个端口代码教程
- ¥15 Centos / PETSc / PETGEM
- ¥15 centos7.9 IPv6端口telnet和端口监控问题
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作