前言
本节主要实现UI框架调用不同的面板界面
UI框架
不懂UI框架的设计思路可以查看我之前写的笔记:【Unity小技巧】手戳一个简单易用的游戏UI框架(附源码)
先绘制一些常用UI面板,设置为预制件
提示弹窗
用户列表
去除滚动条和水平滚动
面板内容添加Grid Layout Group控制子物体的布局
添加Content Size Fitter组件,配置垂直适应为Preferred Size,自动按子物体数量适配垂直高度
菜单
修改复选框的背景和选中图片
输入框弹窗
创建各个面板的脚本控制代码
比如MenuPanel菜单面板代码
public class MenuPanel : BasePanel { public Button btnCancel;//返回游戏 public Button btnAtlas;//查看图鉴 public Button btnRestart;//重新开始 public Button btnMainMenu;//主菜单 [SerializeField] private SceneField mainMenuScene;//主菜单场景 private void Awake() { btnCancel.onClick.AddListener(OnBtnCancel); btnAtlas.onClick.AddListener(OnBtnAtlas); btnRestart.onClick.AddListener(OnBtnRestart); btnMainMenu.onClick.AddListener(OnBtnMainMenu); } public void OnBtnCancel() { ClosePanel(); } public void OnBtnAtlas() { UIManager.Instance.OpenTips("功能正在火速开发中,敬请期待"); } public void OnBtnRestart() { ClosePanel(); SceneManager.LoadScene(SceneManager.GetActiveScene().name); } public void OnBtnMainMenu() { ClosePanel(); SceneManager.LoadScene(mainMenuScene); } }
配置
其他面板脚本也类似配置即可,记得继承BasePanel
控制菜单界面按钮事件
新增MainMenuPanel
public class MainMenuPanel : MonoBehaviour { public Button btnChangeUser;//更改用户 public Button btnMenu;//选项 public Button btnHelp;//帮助 public Button btnQuit;//退出 private void Awake() { btnChangeUser.onClick.AddListener(OnBtnChangeUser); btnMenu.onClick.AddListener(OnBtnMenu); btnHelp.onClick.AddListener(OnBtnHelp); btnQuit.onClick.AddListener(OnBtnQuit); } //打开用户列表 public void OnBtnChangeUser() { UIManager.Instance.OpenPanel(UIConst.UserListPanel); } public void OnBtnMenu() { UIManager.Instance.OpenPanel(UIConst.MenuPanel); } public void OnBtnHelp() { UIManager.Instance.OpenTips("功能正在火速开发中,敬请期待"); } public void OnBtnQuit() { UIManager.Instance.OpenTips("功能正在火速开发中,敬请期待"); } }
配置
效果
源码
源码不出意外的话我会放在最后一节