关于将一个界面设置成常驻节点,跟场景只能有一个Canvas之间的矛盾

现在游戏有多个场景,有些界面是所有场景是共用的。比如提示界面。
我现在想把提示界面放到初始化场景,然后设置成常驻节点。这样做个单例其它地方就直接调用就可以。

现在的问题就是一个场景只能有一个Canvas,同时常驻节点又必须是根节点才能设置。这样就会出现问题,我如何能让提示界面在不放在Canvas下面变成常驻节点?同时又能匹配每个场景的Canvas。

如果做成预设然后每个场景都放一个也不太好,因为在一个场景中提示了某个提示后,可能自动切换到其它场景,这个时候提示是不能消失的,要处于同一个状态。如果每个场景放个提示界面预设的话,为了保持同一个状态还得写个同步方法,太麻烦了。

不知各位大佬有什么好的方法可以处理这个问题。

数据驱动,不要界面驱动。只要由一个数据层对象管理好状态即可。

这样当然也可以,我就是想问下没有其它办法吗?对于提示这种简单界面当然还好,如果是特别复杂的界面也用数据来整不是好麻烦吗?

奇怪的是,我弄两个Canvas,然后把提示的Canvas设置成常驻似乎也能生效,但是会提示场景只能有一个Canvas。

这个就是一开始框架设计问题了。如果刚开始设计框架建议往数据驱动界面的方向走。这样框架主动权在你手,而不会因为引擎局限遇到各种麻烦。

请问为什么要用Canvas做常驻节点呢?

根节点是跟 Canvas 平级的节点,不需要在 Canvas 下面,也不用再带 Canvas 组件,也不用匹配每个场景的 Canvas,根节点只要带个 widget 就能充满整个屏幕

还真是 谢谢

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。