4.开始场景-设置界面-拼面板和基础逻辑
4.1 知识点
查看设置面板应该有的控件,注意应该有个半透明背景防止穿透点击。
创建设置面板控件。首先要添加一个半透明背景sprite,设置锚点全屏适配。注意半透明背景要添加碰撞器,才能防止穿透点击。
创建设置面板上的其他控件。包括设置标题文本,关闭按钮,两个拖动条,两个多选框,音乐和音效文本。注意要适配不同分辨率下的情况。检查DrawCall,把文本的层级调高让DrawCall变小。
创建设置界面SettingPanel 脚本继承面板基类挂载到设置面板控件,添加控件变量并关联。实现初始化方法,在初始化方法中添加各个控件的事件监听,包括两个拖动条和两个多选框的监听,很多事件监听待完善。重写显示和隐藏面板的方法,因为可能在显示的时候读取上次存储的拖动条和多选框数据,隐藏的时候存储拖动条和多选框数据,有了数据之后待完善。
public class SettingPanel : BasePanel<SettingPanel>
{
public UIButton btnClose;
public UISlider sliderMusic;
public UISlider sliderSound;
public UIToggle togMusic;
public UIToggle togSound;
public override void Init()
{
btnClose.onClick.Add(new EventDelegate(()=> {
//隐藏自己
HideMe();
}));
sliderMusic.onChange.Add(new EventDelegate(()=> {
//改变音量大小 还要改变数据
}));
sliderSound.onChange.Add(new EventDelegate(() => {
//改变音效大小 还要改变数据
}));
togMusic.onChange.Add(new EventDelegate(()=> {
//背景音乐的开关
}));
togSound.onChange.Add(new EventDelegate(() => {
//背景音乐的开关
}));
HideMe();
}
public override void ShowMe()
{
base.ShowMe();
//显示自己时 更新上面的内容
}
public override void HideMe()
{
base.HideMe();
//隐藏自己时 需要保存该次设置的数据
}
}
在开始面板脚本中完善点击打开设置面板的监听。
//开始面板的设置按钮监听
btnSetting.onClick.Add(new EventDelegate(() => {
//显示 设置面板
SettingPanel.Instance.ShowMe();
}));
4.2 知识点代码
SettingPanel
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SettingPanel : BasePanel<SettingPanel>
{
public UIButton btnClose;
public UISlider sliderMusic;
public UISlider sliderSound;
public UIToggle togMusic;
public UIToggle togSound;
public override void Init()
{
btnClose.onClick.Add(new EventDelegate(() =>
{
HideMe();
}));
sliderMusic.onChange.Add(new EventDelegate(() =>
{
//改变音量大小 还要改变数据
}));
sliderSound.onChange.Add(new EventDelegate(() =>
{
//改变音效大小 还要改变数据
}));
togMusic.onChange.Add(new EventDelegate(() =>
{
//背景音乐的开关
}));
togSound.onChange.Add(new EventDelegate(() =>
{
//背景音乐的开关
}));
HideMe();
}
public override void ShowMe()
{
base.ShowMe();
//显示自己时 更新上面的内容
}
public override void HideMe()
{
base.HideMe();
//隐藏自己时 需要保存该次设置的数据
}
}
BeginPanel
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 开始界面
/// </summary>
public class BeginPanel : BasePanel<BeginPanel>
{
public UIButton btnBegin;
public UIButton btnRank;
public UIButton btnSetting;
public UIButton btnQuit;
public override void Init()
{
//监听按钮事件
btnBegin.onClick.Add(new EventDelegate(() =>
{
//显示 选角面板
print("显示选角");
//隐藏自己
HideMe();
}));
btnRank.onClick.Add(new EventDelegate(() =>
{
//显示 排行榜
print("显示排行榜");
}));
//开始面板的设置按钮监听
btnSetting.onClick.Add(new EventDelegate(() =>
{
//显示 设置面板
SettingPanel.Instance.ShowMe();
}));
btnQuit.onClick.Add(new EventDelegate(() =>
{
//退出游戏
Application.Quit();
}));
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com