unity gameframework 《starforce》 DialogForm UI学习
DialogForm的和其他界面一样,继承自UGuiForm
比起普通的界面,自己实现了这些功能(可在创建时配置的):
1.m_DialogMode
2.m_PauseGame:是否暂停界面,如果为true,在onopen(OnOpen是每次打开是调用)时就会调用一次 GameEntry.Base.PauseGame():
public void PauseGame(){if (IsGamePaused){return;}m_GameSpeedBeforePause = GameSpeed;GameSpeed = 0f;}
3. 此外,还有这三个委托:
private GameFrameworkAction<object> m_OnClickConfirm = null;private GameFrameworkAction<object> m_OnClickCancel = null;private GameFrameworkAction<object> m_OnClickOther = null;
它们在OnOpen时会被注册(userid)
RefreshConfirmText(dialogParams.ConfirmText);m_OnClickConfirm = dialogParams.OnClickConfirm;RefreshCancelText(dialogParams.CancelText);m_OnClickCancel = dialogParams.OnClickCancel;RefreshOtherText(dialogParams.OtherText);m_OnClickOther = dialogParams.OnClickOther;
它们分别会:
public void OnConfirmButtonClick(){Close();if (m_OnClickConfirm != null){m_OnClickConfirm(m_UserData);}}public void OnCancelButtonClick(){Close();if (m_OnClickCancel != null){m_OnClickCancel(m_UserData);}}public void OnOtherButtonClick(){Close();if (m_OnClickOther != null){m_OnClickOther(m_UserData);}}
____________________
有关产生Dialog的函数,在UIExtension中:
public static int? OpenUIForm(this UIComponent uiComponent, int uiFormId, object userData = null){IDataTable<DRUIForm> dtUIForm = GameEntry.DataTable.GetDataTable<DRUIForm>();DRUIForm drUIForm = dtUIForm.GetDataRow(uiFormId);if (drUIForm == null){Log.Warning("Can not load UI form '{0}' from data table.", uiFormId.ToString());return null;}string assetName = AssetUtility.GetUIFormAsset(drUIForm.AssetName);if (!drUIForm.AllowMultiInstance){if (uiComponent.IsLoadingUIForm(assetName)){return null;}if (uiComponent.HasUIForm(assetName)){return null;}}return uiComponent.OpenUIForm(assetName, drUIForm.UIGroupName, Constant.AssetPriority.UIFormAsset, drUIForm.PauseCoveredUIForm, userData);}public static void OpenDialog(this UIComponent uiComponent, DialogParams dialogParams){if (((ProcedureBase)GameEntry.Procedure.CurrentProcedure).UseNativeDialog){OpenNativeDialog(dialogParams);}else{uiComponent.OpenUIForm(UIFormId.DialogForm, dialogParams);}}
调用这个OpenDialog的地方有:
// 需要强制更新游戏应用GameEntry.UI.OpenDialog(new DialogParams{Mode = 2,Title = GameEntry.Localization.GetString("ForceUpdate.Title"),Message = GameEntry.Localization.GetString("ForceUpdate.Message"),ConfirmText = GameEntry.Localization.GetString("ForceUpdate.UpdateButton"),OnClickConfirm = GotoUpdateApp,CancelText = GameEntry.Localization.GetString("ForceUpdate.QuitButton"),OnClickCancel = delegate (object userData) { UnityGameFramework.Runtime.GameEntry.Shutdown(ShutdownType.Quit); },});
GameEntry.UI.OpenDialog(new DialogParams{Mode = 2,Title = GameEntry.Localization.GetString("UpdateResourceViaCarrierDataNetwork.Title"),Message = GameEntry.Localization.GetString("UpdateResourceViaCarrierDataNetwork.Message"),ConfirmText = GameEntry.Localization.GetString("UpdateResourceViaCarrierDataNetwork.UpdateButton"),OnClickConfirm = StartUpdateResources,CancelText = GameEntry.Localization.GetString("UpdateResourceViaCarrierDataNetwork.QuitButton"),OnClickCancel = delegate (object userData) { UnityGameFramework.Runtime.GameEntry.Shutdown(ShutdownType.Quit); },});
超棒!
unity gameframework 《starforce》 DialogForm UI学习相关推荐
- unity gameframework starforce学习1
TargetableObject是可当作目标物entity的逻辑脚本都要继承的脚本 实现接口: OnInit OnShow OnUpdate OnDead:GameEntry.Entity.HideE ...
- 1.15 从0开始学习Unity游戏开发--游戏UI
上一章中,我们剩下最后一个任务,需要支持鼠标控制准心来进行设计,那么准心本质上就是一个始终呈现在屏幕上的一个图片,你当然可以用一个3D物体来制作,之前讲解渲染概念的时候也提到过,我们的屏幕就是相机的近 ...
- Unity UI学习(1)——制作技能冷却图标
在初步了解了Unity的UI相关资料后,对UI了更多了解. 首先了解一下相关概念 UI: User Interface 用户界面: GUI: Graphic User Interface 图形 ...
- Unity游戏优化[第二版]学习记录6
以下内容是根据Unity 2020.1.01f版本进行编写的 Unity游戏优化[第二版]学习记录6 第6章 动态图形 一.管线渲染 1.GPU前端 2.GPU后端 3.光照和阴影 4.多线程渲染 5 ...
- Unity——基于MVC的UI框架
Unity--基于MVC的UI框架 前言 今天来学习一下MVC框架思想在Unity项目中的应用 MVC框架 概念 MVC全名是Model View Controller,是模型(Model)-视图(V ...
- Unity MVC设计模式与UI背包界面制作
Unity MVC设计模式与UI背包界面制作 MVC设计模式非常适合UI的架构,UI界面相当于View,UI转换控制相当于Controller,UI上面的数据变换相当于Model.MVC设计模式在软件 ...
- Unity游戏优化[第二版]学习记录4
Unity游戏优化[第二版]学习记录4 第4章 着手处理艺术资源 一.音频 1.导入音频文件 2.加载音频文件 3.编码格式与品质级别 4. 音频性能增强 二.纹理文件 1.纹理压缩格式 2.纹理性能 ...
- Unity游戏积分/计分UI系统制作方法
Unity游戏积分/计分UI系统制作方法 本篇博客将讲解游戏开发中常见的积分/计分系统的制作,看过论坛有很多这种帖子,但基本都是从一个大型系统里进行讲解,今天我把这个方法独立挖出来做个小案例,来分析这 ...
- Unity UGUI 效果 之 UI 元素 多边形UI (例如雷达图,圆形,不规则多边形 UI等)显示 的简单实现的几种方法整理
Unity UGUI 效果 之 UI 元素 多边形UI (例如雷达图,圆形,不规则多边形 UI等)显示 的简单实现的几种方法整理 目录 Unity UGUI 效果 之 UI 元素 多边形UI (例如雷 ...
最新文章
- SQL Server中EXISTS结构
- Alpha(5/10)
- 直播协议HTTP-FLV标准解读与技术实现
- mysql数据库的三级模式_2016年计算机三级MySQL数据库试题
- pandas 基本使用
- DIY制作otto机器人
- 5G 时代,微软又走对了一步棋!
- 按摩器具抽查三成不合格 选购需注意哪些?
- 锚具ovm是什么意思_OVM锚具
- 光耦合器的工作原理和作用
- 2021-07-07随笔
- 峰会回顾 | 阿里云与StarRocks合作、开放、共赢
- DbVisualizer解决中文乱码问题
- 作业调度算法--先来先服务
- windows操作系统基础总结
- Android MultiDex 源码分析
- (SQL)修改表结构[字段类型]、表字段长度,
- 策略模式代替if-else
- Python函数返回值的作用
- MQ消息队列搭建命令及方法
热门文章
- 现在转行码农的成本已经非常高了,别盲目转行..
- notability整理归档_5000 字干货:iPad 笔记神器《Notability》详细教程,助你开启学霸之路...
- android 第三方recovery刷机
- 古镇智慧旅游建设方案ppt
- 饥荒联机自建服务器有什么用,联机版饥荒使用专用服务器的好处 | 手游网游页游攻略大全...
- 【详细教程】将Kail Linux安装入U盘并随身携带
- 游戏开发中的人工智能(六):基本路径寻找及航点应用
- win102004优化_win102004有什么新功能
- 临界导通模式下PFC特性分析
- 中国高端护肤品牌林清轩数字化特色店于广州开幕