已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
3天前关闭。
Improve this question
在我的Unity防御游戏中,每个敌人都有自己的HP栏,使用UI滑块和布告牌系统as such.渲染
我担心的是可能存在too many canvas elements in the scene。是否有替代选项,或者我的解决方案在性能方面是否足够有效?
已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
3天前关闭。
Improve this question
在我的Unity防御游戏中,每个敌人都有自己的HP栏,使用UI滑块和布告牌系统as such.渲染
我担心的是可能存在too many canvas elements in the scene。是否有替代选项,或者我的解决方案在性能方面是否足够有效?
1条答案
按热度按时间dtcbnfnu1#
假设你的屏幕上不会同时出现数百个敌人,那么你的性能应该没问题。如果你发现性能下降,你可以为屏幕上的UI组件引入一个ObjectPool。
我建议将Canvas
RectTransform
的缩放比例设置为类似0.01
的大小,这样它在屏幕上占用的空间会更小。然后重新调整现有UI元素的大小以匹配此缩放比例。一张画布
假设您正在寻找一种替代解决方案来在Unity中创建世界空间UI健康条,在这种情况下,您可以使用一个画布,并根据游戏对象的位置动态更改其中UI元素的位置。
一种方法是使用
RectTransformUtility
的ScreenPointToLocalPointInRectangle方法,将游戏对象的世界位置转换为画布中的本地位置,然后使用rectTransform.anchoredPosition
属性设置UI元素在画布中的位置。然而,使用单个画布来显示附加到不同游戏对象的多个UI元素也有缺点。这可能会导致画布变得“脏”,这意味着每个帧都需要重新绘制。