我有一个通用的"生物"预制在我的游戏中。当我将预制实例实例化到场景中时,我会分配生物的类型(龙,妖精等)。然后,该生物的Creature
脚本根据它的生物类型动态加载其动画师。我在Awake
中这样做。在Start
中,我想创建一个位于该生物下方的健康栏(来自预制件)。我使用GetComponent<SpriteRenderer>().bounds.extents
来确定生物的大小,以便我可以适当地定位健康栏。
如果我将精灵分配给该生物SpriteRenderer
,这可以正常工作。
但是,我遇到的问题是每个生物都有不同的大小,因此我无法为生物预制件中的SpriteRenderer
分配一个适当大小的精灵。如果我将SpriteRenderer
的{{1}}属性设置为Sprite
,那么None
的大小(0,0,0)就会GetComponent<SpriteRenderer>().bounds.extents
,即使我有一个Start
附加到该生物。我的假设是Animator
在Animator
内部没有开始制作动画,这导致该生物Creature.Start
的尺寸为零
除了我用来创建状态栏的代码之外,这里有一个。此代码位于附加到保存状态栏的SpriteRenderer
的脚本中。我是从Canvas
Creature.Start
我该如何解决这个问题?我认为解决方案是获得该生物的第一个动画帧的大小,但我无法找到一种方法。还有另外一种解决这个问题的方法吗?