unity3d 使用多个世界空间UI画布对性能有何影响?[closed]

8mmmxcuj  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(330)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

3天前关闭。
Improve this question
在我的Unity防御游戏中,每个敌人都有自己的HP栏,使用UI滑块和布告牌系统as such.渲染
我担心的是可能存在too many canvas elements in the scene。是否有替代选项,或者我的解决方案在性能方面是否足够有效?

dtcbnfnu

dtcbnfnu1#

假设你的屏幕上不会同时出现数百个敌人,那么你的性能应该没问题。如果你发现性能下降,你可以为屏幕上的UI组件引入一个ObjectPool
我建议将Canvas RectTransform的缩放比例设置为类似0.01的大小,这样它在屏幕上占用的空间会更小。然后重新调整现有UI元素的大小以匹配此缩放比例。

一张画布

假设您正在寻找一种替代解决方案来在Unity中创建世界空间UI健康条,在这种情况下,您可以使用一个画布,并根据游戏对象的位置动态更改其中UI元素的位置。
一种方法是使用RectTransformUtilityScreenPointToLocalPointInRectangle方法,将游戏对象的世界位置转换为画布中的本地位置,然后使用rectTransform.anchoredPosition属性设置UI元素在画布中的位置。
然而,使用单个画布来显示附加到不同游戏对象的多个UI元素也有缺点。这可能会导致画布变得“脏”,这意味着每个帧都需要重新绘制。

相关问题