如果这些游戏对象与 UI 无关,是不是可以将 Canvas 对象 (rectTransform) 与常规游戏对象 (transform) 混合? [关闭]
Posted
技术标签:
【中文标题】如果这些游戏对象与 UI 无关,是不是可以将 Canvas 对象 (rectTransform) 与常规游戏对象 (transform) 混合? [关闭]【英文标题】:is it okay to mix Canvas objects (rectTransform) with regular game objects (transform), if those game objects have nothing to do with UI? [closed]如果这些游戏对象与 UI 无关,是否可以将 Canvas 对象 (rectTransform) 与常规游戏对象 (transform) 混合? [关闭] 【发布时间】:2021-09-07 09:46:11 【问题描述】:我最终遇到了这样一种情况:我的游戏战斗系统有一个父 Canvas 元素(用于显示健康文本等),并且混合了 UI 内容和可控制的游戏对象,因为它是子项。所以有些对象有transform
,有些有rectTransform
。
这是我的层次结构的一个小样本:
父 BattleCanvas 是一个画布对象 (rectTransform
)
BattleEnemyObject 和 BattlePlayerObject 是常规游戏对象 (transform
)
BattleObjects(所有实例化对象的容器)使用rectTransform
,
但它的子 SnakePlayer 是一个普通的游戏对象 (transform
)
我开始意识到这是多么混乱,但到目前为止一切似乎都很好。所以我的问题是,如果这些游戏对象与 UI 无关,可以将 Canvas 内容 (rectTransform
) 与常规游戏对象内容 (transform
) 混合使用吗?
我想我对transform
和rectTransform
之间的区别有点缺乏了解。任何建议在这里表示赞赏!
【问题讨论】:
【参考方案1】:是的,绝对没问题。 RectTransform
继承自 Transform
。所以所有的 RectTransform 都具有普通变换的所有功能。
许多人将画布的渲染模式更改为World Space
,然后将RectTransform
视为正常变换以将其在世界中隔开。有一些有趣的效果,如下面的效果,需要将RectTransform
用作转换。
您可以拥有多个具有多种渲染模式的画布,以获得一些非常有趣的效果。
【讨论】:
以上是关于如果这些游戏对象与 UI 无关,是不是可以将 Canvas 对象 (rectTransform) 与常规游戏对象 (transform) 混合? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章