在动态大小的生物下添加状态栏

时间:2017-07-04 00:45:54

标签: c# unity3d

我有一个通用的&#34;生物&#34;预制在我的游戏中。当我将预制实例实例化到场景中时,我会分配生物的类型(龙,妖精等)。然后,该生物的Creature脚本根据它的生物类型动态加载其动画师。我在Awake中这样做。在Start中,我想创建一个位于该生物下方的健康栏(来自预制件)。我使用GetComponent<SpriteRenderer>().bounds.extents来确定生物的大小,以便我可以适当地定位健康栏。

如果我将精灵分配给该生物SpriteRenderer,这可以正常工作。  但是,我遇到的问题是每个生物都有不同的大小,因此我无法为生物预制件中的SpriteRenderer分配一个适当大小的精灵。如果我将SpriteRenderer的{​​{1}}属性设置为Sprite,那么None的大小(0,0,0)就会GetComponent<SpriteRenderer>().bounds.extents ,即使我有一个Start附加到该生物。我的假设是AnimatorAnimator内部没有开始制作动画,这导致该生物Creature.Start的尺寸为零

除了我用来创建状态栏的代码之外,这里有一个。此代码位于附加到保存状态栏的SpriteRenderer的脚本中。我是从Canvas

打来的
Creature.Start

我该如何解决这个问题?我认为解决方案是获得该生物的第一个动画帧的大小,但我无法找到一种方法。还有另外一种解决这个问题的方法吗?

0 个答案:

没有答案