1、需要实现的功能
2、程序设计
3. 如何做
我们可以知道的是,首先UI界面的设计需要采用MVC模式来分离界面的显示。 该部分需要继承MonoBehaviour才能挂载到UIPrefab上。
看法:
1.只显示数据,不处理数据。
2. 只接受来自控制器的事件,所有其他外部事件将由控制器处理。
3、建议按钮响应回调放在控制器中处理。
4. 视图的创建也在控制器中处理。
控制器:
1.接受外部数据和事件并处理,然后存储到相应的数据层中,并通知视图层进行显示。
2.对于controller和view的交互,最好使用事件通知,而不是直接调用。
3.对于数据层,可以直接在控制器中写入,也可以独立写入。
上面说的MVC分离是针对单个界面的,比如排名界面、邮件界面等,那么如何整体管理呢?
UI界面管理
对于UI界面管理,其实需要做这些事情:
1.明确UI的层次。 这应该是一开始就设计好的。 从功能上来说,和游戏一样,最底层的背景,然后是普通的UI内容,然后是各种弹窗,然后是最顶层。 可能是系统通知,
所以假设有背景、正常的UI内容、弹窗、系统通知,我们在做的时候就应该设置这四层,并且每层的层次要依次递增游戏ui界面设计,否则显示会不正确。 。
2、UI资源加载,通俗的讲就是把各个UI子模块做成一个预制体,然后在需要的时候通过资源来加载,然后实例化并显示。 在这个过程中,我们按照上面提到的到达了游戏ui界面设计,那么你首先应该
为每个UI界面创建一个Controller,然后在需要的时候通过controller显示对应的View。但是,在这个过程中,有些界面并不是很常用。 它们可能会偶尔使用一次,然后就不再使用。 那么这个时候就会有
至于如何管理这些加载的资源,对于这种不常用的表单,应该在显示后销毁(以节省内存)。 对于一些常用的表单,您可能需要保存引用。 避免频繁加载资源带来的问题
IO问题。
UI显示效果
对于有特效的UI,比如进入退出动画、黑色半透明背景的弹窗、背景高斯模糊的弹窗等,这些效果应该如何处理?
通常的做法是对每个 UI 进行分类。 比如有退出动画和进入动画的在一个类别,没有任何动画的在另一个类别,有背景的在另一个类别,有高斯模糊的在另一个类别,然后写在使用父类的时候所有UI类,在父类中写Enter、Exit等。
状态方法在这些方法中调用一些对应的显示方法。 根据不同的UI类别,这些显示方式也不同。 这样就可以统一UI的显示效果,而不必为每个UI都写。 当然,也可能是A UI有不同的显示动画,这个
这时候你可以重写父类的动画方法游戏动态,就可以了。
UI与其他模块交互
为了减少耦合游戏动态,请使用事件通知并避免直接调用。 一般来说,这是一个简单但非常有效的方法。