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

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

全局设置简介

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

使用全局设置

打开全局设置面板

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

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

在这里插入图片描述

浏览设置项

在这里插入图片描述
在左侧选择指定的设置项,右侧会显示该设置项的详细设置内容。

自定义设置项

在这里插入图片描述
点击全局设置面板左上角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();
    }
}

新建设置项类完成后,全局设置面板会立即捕获并显示该设置项:
在这里插入图片描述

自定义设置面板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;
    }

这下设置面板便可以显示我们加入的这两个设置栏目了:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq992817263/article/details/104610857