首页 > 其他分享 >【Unity】 HTFramework框架(三十一)全局设置

【Unity】 HTFramework框架(三十一)全局设置

时间:2022-12-13 14:31:23浏览次数:80  
标签:gameSetting 三十一 Unity 设置 override 全局 面板 public HTFramework


更新日期:2020年3月2日。
Github源码:​​​[点我获取源码]​​​ Gitee源码:​​[点我获取源码]​

索引

  • ​​全局设置简介​​
  • ​​使用全局设置​​
  • ​​打开全局设置面板​​
  • ​​浏览设置项​​
  • ​​自定义设置项​​
  • ​​自定义设置面板UI​​

全局设置简介

全局设置面板可以快捷、统一的设置全局的一些参数,还可以自定义设置项,用来设置自己的任何游戏参数。

使用全局设置

打开全局设置面板

1.点击菜单HTFramework -> HTFramework Settings…打开全局设置面板。

2.在Build Settings界面点击右上角HTFramework Settings…按钮,打开全局设置面板。

【Unity】 HTFramework框架(三十一)全局设置_自定义

浏览设置项

【Unity】 HTFramework框架(三十一)全局设置_自定义_02


在左侧选择指定的设置项,右侧会显示该设置项的详细设置内容。

自定义设置项

【Unity】 HTFramework框架(三十一)全局设置_框架_03


点击全局设置面板左上角New Setting Item按钮,可以快捷创建自定义设置项类。

注意:自定义的设置项类文件必须放在Editor文件夹内,否则无效。

如下,我们自定义了一个设置项类型NewSettingItem

/// <summary>
/// 新建设置项
/// </summary>
public class NewSettingItem : SettingItemBase
{
/// <summary>
/// 设置面板的显示名称
/// </summary>
public override string Name
{
get
{
return "我的游戏设置";
}
}

/// <summary>
/// 开始设置
/// </summary>
public override void OnBeginSetting()
{
base.OnBeginSetting();
}

/// <summary>
/// 设置面板UI
/// </summary>
public override void OnSettingGUI()
{
base.OnSettingGUI();
}

/// <summary>
/// 结束设置
/// </summary>
public override void OnEndSetting()
{
base.OnEndSetting();
}

/// <summary>
/// 重置所有设置
/// </summary>
public override void OnReset()
{
base.OnReset();
}
}

新建设置项类完成后,全局设置面板会立即捕获并显示该设置项:

【Unity】 HTFramework框架(三十一)全局设置_自定义_04

自定义设置面板UI

重写OnSettingGUI便可以构建该设置项在设置面板的详细设置内容。

我们在NewSettingItem加入如下代码:

private GameSetting _gameSetting;

/// <summary>
/// 开始设置
/// </summary>
public override void OnBeginSetting()
{
base.OnBeginSetting();

GameObject go = GameObject.Find("Controller");
if (go) _gameSetting = go.GetComponent<GameSetting>();
}

/// <summary>
/// 设置面板UI
/// </summary>
public override void OnSettingGUI()
{
base.OnSettingGUI();

if (_gameSetting)
{
GUILayout.BeginHorizontal();
_gameSetting.Level = EditorGUILayout.IntField("关卡等级", _gameSetting.Level);
GUILayout.EndHorizontal();

GUILayout.BeginHorizontal();
_gameSetting.MonsterCoefficient = EditorGUILayout.IntField("怪物生成系数", _gameSetting.MonsterCoefficient);
GUILayout.EndHorizontal();
}
}

/// <summary>
/// 结束设置
/// </summary>
public override void OnEndSetting()
{
base.OnEndSetting();
}

/// <summary>
/// 重置所有设置
/// </summary>
public override void OnReset()
{
base.OnReset();

_gameSetting.Level = 0;
_gameSetting.MonsterCoefficient = 0;
}

这下设置面板便可以显示我们加入的这两个设置栏目了:

【Unity】 HTFramework框架(三十一)全局设置_ide_05


标签:gameSetting,三十一,Unity,设置,override,全局,面板,public,HTFramework
From: https://blog.51cto.com/u_15911199/5934063

相关文章

  • unity使用ugui自制调色面板
    突然想实现一个调色面板,然后开工...首先找找有没有什么接口可调,木有找到,找到一些调用win32实现的本地颜色面板的调用,感觉不科学,反正多平台肯定是搞不定的。既然没找到,还是老......
  • Unity 自定义创建脚本模板
    Unity自定义创建脚本模板原理:以模板代码为底板,通过关键字替换来实现代码创建两种实现方案方案11.先准备好对应的代码模板,放到Assets\ScriptTemplates目录下usingSys......
  • Unity中实现A*寻路
    前言:最近没事儿没工作,计划每天写一篇博客,防止对Unity生疏,也可以记录学习的点点滴滴。A*寻路在很多面试里都会问到,但实际工作中根本用不着自己写,网上有成熟的插件,不容易错......
  • Unity 脚本基础
    Unity官方手册是最好的教程书,只是偶尔限于冗长ScriptingconceptsAlthoughUnityusesanimplementationofthestandardMonoruntimeforscripting,itstillh......
  • [SIGMOD 2022]DMCS Density Modularity based Community Search
    [SIGMOD2022]DMCS:DensityModularitybasedCommunitySearch介绍目标是找到含有查询点的社区。文章的切入点是高质量的社区一定也是高模块化的,及社区内密度高,且社......
  • unity 实现物体空间距离音量远小近大的效果
    需要两个组件一 AudioListener需要添加到摄像机,一般默认都有 二 AudioSource需要添加到需要发出声音的物体对象上将AudioSource中空间混合SpatialBlend设置为1......
  • 在Unity3D软件中将图片转换为UI图片
    在Unity3D软件中将图片转换为UI图片,先将图片拖进Unity3D中,然后在右侧栏Inspector->TextureType下选择Sprite(2DandUI),点击apply,图片变为UI图片(显示播放键)。 ......
  • 菜鸡学Unity 之 坑神之路 (记录坑点,不断更新中~)
    LZ-Says:万事儿开头难,枪在手,不得不发~前言最近在了解Unity这块的内容,不得不说,新的领域,陌生的代码世界,初入茅庐,太多的陌生与不适,唯有咬紧牙关,坚持下去,到最后,会发现,一切不过......
  • unity 判断当前点击的按钮对象是谁
    ①将以下代码复制到新建c#脚本中,名称可以随意改,挂载到屏幕空间的画布上usingUnityEngine;//地下城副本管理器publicclassDungeonLairManager:MonoBehaviour{//......
  • Mapbox 与 Babylon.js 可视化 glsl 特效篇(三十一)
    我决定不从Babylonjs基础来讲了直接整合mapbox与babylonjs可视化来讲我整合一个类库后续不断更新中npmi@haibalai/mapbox-babylonjs 初始化mapbox-babylonjs......