整个游戏的工程源码下载链接:点击打开链接
可以参考的写的Demo和本文章来学习
毕竟有些细节问题在文章中不能一一说到
工具:VS2010、Unity5.2.3f
先介绍整个Demo的主面板
其中任务、技能、符文等等都是按钮,点击按钮会生成相应面板
【Protobuf的生成与解析】
要使得框架的可扩展性与自适应性,我把各个面板的名字与路径配置到protobuf文件
在VS中我们把代码编写完成后生成protobuf文件
在Unity中解析
如何生成与解析请参考:点击打开链接
【UIManager】
在Unity工程中,使用UIManager这个类对整个UI框架进行管理
UIManager.cs
using UnityEngine;
using System.Collections;
using UIFrameworkForProtobuf;
using System.Collections.Generic;
public class UIManager
{
private Dictionary<UIPanelTypeEnum, string> dicPanelPath;//存储面板路径
private Dictionary<UIPanelTypeEnum, BaseManager> dicPanelBase;//存储面板BaseManager组件
private Stack<BaseManager> panelStack;
//单例模式
private static UIManager manager;
public static UIManager GetInstance
{
get
{
if (manager == null)
{
manager = new UIManager();
}
return manager;
}
}
private UIManager()
{
Dederializer();
}
private Transform canvasTransform;
private Transform CanvasTransform
{
get
{
if (canvasTransform == null)
{
canvasTransform = GameObject.Find("Canvas").transform;
}
return canvasTransform;
}
}