当创建一个玩家或敌人时,我了解到最好的做法是将精灵渲染器连接到一个子游戏对象上,这样你就可以轻松地重新定位精灵。然而,这样做意味着动画师也需要连接到子游戏对象上,这意味着你不能访问父游戏对象的任何动画事件功能。有人知道解决这个问题的方法吗?我试着把动画师放在父对象上,但后来它说sprite渲染器组件丢失了,所以我相信它们需要在同一个对象上。
gopyfrb31#
我试着把动画师放在父对象上,但后来它说sprite渲染器组件丢失了,所以我相信它们需要在同一个对象上。不!发生的是你移动了动画师的根,所以存储在你的动画剪辑中的原始属性路径现在无效了。属性路径基本上是通过对象名称存储的。以前是什么,例如(不知道属性路径的确切形式)
/Sprite/SomeProperty
现在需要像这样
YourSpriteObject/Sprite/SomeProperty
但由于动画仍使用第一个组件,并且父对象上没有Sprite组件,因此该组件无效并显示为缺失。您必须重做动画或编写编辑器脚本,以便相应地自动更改所有动画路径。Here我曾经做过类似的事情来重命名动画对象。或者公开子对象上的方法,然后通过
Sprite
transform.parent.GetComponent<YourParentClass>().YourMethod();
当然我会缓存一次或者通过检查器分配
1条答案
按热度按时间gopyfrb31#
我试着把动画师放在父对象上,但后来它说sprite渲染器组件丢失了,所以我相信它们需要在同一个对象上。
不!发生的是你移动了动画师的根,所以存储在你的动画剪辑中的原始属性路径现在无效了。
属性路径基本上是通过对象名称存储的。
以前是什么,例如(不知道属性路径的确切形式)
现在需要像这样
但由于动画仍使用第一个组件,并且父对象上没有
Sprite
组件,因此该组件无效并显示为缺失。您必须重做动画或编写编辑器脚本,以便相应地自动更改所有动画路径。
Here我曾经做过类似的事情来重命名动画对象。
或者公开子对象上的方法,然后通过
当然我会缓存一次或者通过检查器分配