当前位置: 首页 > news >正文

兰州做网站优化网络营销方案设计范文

兰州做网站优化,网络营销方案设计范文,住房和城乡建设部办公厅,充值话费网站建设【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了音频的大小设置与保存加载 音频管理器 UI_VolumeSlider.cs 定义了 UI_VolumeSlider 类,用于处理与音频设置相关的…

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili

教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/

本章节实现了音频的大小设置与保存加载

音频管理器

UI_VolumeSlider.cs

定义了 UI_VolumeSlider 类,用于处理与音频设置相关的 UI 滑块(Slider)交互。

  1. 音量调整

    • SliderValue(float _value) 方法根据滑块的值调整音量,利用 audioMixer.SetFloat 设置音频混音器中指定参数(parametr)的值。使用 Mathf.Log10(_value) * multiplier 将滑块值转化为对数刻度,以平滑音量变化。
  2. 加载保存的音量设置

    • LoadSlider(float _value) 方法将加载的音量值(如果值大于 0.001)应用到滑块上,避免音量翻转。
  3. 成员变量

    • slider:关联的 UI 滑块。
    • parametr:音频混音器中的参数名称。
    • audioMixer:用于音频混合的 AudioMixer 实例。
    • multiplier:用于音量计算的乘数。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;//2024.12.2 from summer to winter
public class UI_VolumeSlider : MonoBehaviour
{public Slider slider;//滑块public string parametr;//音频混合器的参数[SerializeField] private AudioMixer audioMixer;//音频混合器[SerializeField] private float multiplier;//音量的倍数public void SliderValue(float _value) => audioMixer.SetFloat(parametr, Mathf.Log10(_value) * multiplier);//设置音量public void LoadSlider(float _value)//加载音量{if(_value >= 0.001f)//防止翻转slider.value = _value;}}

UI.cs

添加的部分!!!

这段代码包含了两个方法:LoadDataSaveData,用于加载和保存游戏中的音量设置。它们的主要功能是处理音量设置的保存和加载机制,将音量设置保存在 GameData 对象中并能够恢复。

1. LoadData(GameData _data):

  • 功能:加载音量设置并应用到 UI 滑块。
  • 逻辑
    1. 遍历传入的 GameData 对象中的 volumeSettings 字典,字典存储了音量设置的参数名和相应的值(如 "masterVolume", "musicVolume" 等)。
    2. 对每一个音量设置项(KeyValuePair<string, float>),遍历 volumeSettings(UI 控件中的 UI_VolumeSlider 实例),检查每个 UI_VolumeSliderparametr(音频参数名称)是否与保存的音量设置的参数名称相匹配。
    3. 如果匹配,就调用 UI_VolumeSliderLoadSlider 方法,将保存的音量值应用到相应的 UI 滑块上。

2. SaveData(ref GameData _data):

  • 功能:保存当前的音量设置到 GameData 中。
  • 逻辑
    1. 清空 GameData 对象中的 volumeSettings 字典,以确保旧的音量设置不被遗留。
    2. 遍历 volumeSettings(UI 控件中的 UI_VolumeSlider 实例),获取每个滑块的值,并将其添加到 volumeSettings 字典中。
    3. 每个滑块的 parametr(音频参数名称)作为字典的键,slider.value(滑块当前的值)作为字典的值,保存到 GameData 中。
    public void LoadData(GameData _data){foreach(KeyValuePair<string,float> pair in _data.volumeSettings)//遍历音量设置{foreach (UI_VolumeSlider item in volumeSettings){if (item.parametr == pair.Key)//如果音量设置的参数和保存的参数一致item.LoadSlider(pair.Value);}}}public void SaveData(ref GameData _data){_data.volumeSettings.Clear();//清空音量设置foreach (UI_VolumeSlider item in volumeSettings)//遍历音量设置{_data.volumeSettings.Add(item.parametr,item.slider.value);//保存音量设置}}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class UI : MonoBehaviour,ISaveManager
{[Header("End screens")][SerializeField] private UI_FadeScreen fadeScreen;[SerializeField] private GameObject endText;[SerializeField] private GameObject restartButton;[Space][SerializeField] private GameObject characterUI;[SerializeField] private GameObject skillTreeUI;[SerializeField] private GameObject craftUI;[SerializeField] private GameObject optionsUI;[SerializeField] private GameObject inGameUI;//物品提示框和状态提示框public UI_SkillToolTip skillToolTip;public UI_ItemTooltip itemToolTip;public UI_StatToolTip statToolTip;public UI_CraftWindow craftWindow;[SerializeField] private UI_VolumeSlider[] volumeSettings;private void Awake(){SwitchTo(skillTreeUI);//2024年11月22日,P138 Skill Tree Hot Fix,启动时默认显示技能树界面fadeScreen.gameObject.SetActive(true);}void Start(){SwitchTo(inGameUI);itemToolTip.gameObject.SetActive(false);//戏启动时隐藏物品提示框和状态提示框statToolTip.gameObject.SetActive(false);}void Update(){if (Input.GetKeyDown(KeyCode.C))SwitchWithKeyTo(characterUI);if (Input.GetKeyDown(KeyCode.B))SwitchWithKeyTo(craftUI);if (Input.GetKeyDown(KeyCode.K))SwitchWithKeyTo(skillTreeUI);if (Input.GetKeyDown(KeyCode.O))SwitchWithKeyTo(optionsUI);}public void SwitchTo(GameObject _menu)// 该方法用于切换到指定的UI界面{for (int i = 0; i < transform.childCount; i++)//遍历当前UI对象的所有子物体{bool fadeScreen = transform.GetChild(i).GetComponent<UI_FadeScreen>() != null;//检查UI界面是否有FadeScreensif (fadeScreen==false)transform.GetChild(i).gameObject.SetActive(false);//遍历并隐藏所有子元素,确保了在显示新的UI界面时,所有其他的UI界面都会被隐藏}if (_menu != null)//传入的菜单不为空{_menu.SetActive(true);//显示}}public void SwitchWithKeyTo(GameObject _menu)//处理切换UI的逻辑{if (_menu != null && _menu.activeSelf)// UI界面已经显示,隐藏, 如果目标UI界面未显示,调用 SwitchTo 显示。{_menu.SetActive(false);CheckForInGameUI();return;}SwitchTo(_menu);}private void CheckForInGameUI()//关闭其他UI都会回到InGameUI{for (int i = 0; i < transform.childCount; i++)//{//p152修复切换到其他UI时,InGameUI关闭的问题if (transform.GetChild(i).gameObject.activeSelf && transform.GetChild(i).GetComponent<UI_FadeScreen>() == null)//其他的UI全部关闭并且淡入淡出关闭return;}SwitchTo(inGameUI);}public void SwitchOnEndScreen(){fadeScreen.FadeOut();StartCoroutine(EndScreenCorutione());}IEnumerator EndScreenCorutione(){yield return new WaitForSeconds(1);endText.SetActive(true);yield return new WaitForSeconds(1.7f);restartButton.SetActive(true);}public void RestartGameButton() => GameManager.instance.RestartScene();public void LoadData(GameData _data){foreach(KeyValuePair<string,float> pair in _data.volumeSettings)//遍历音量设置{foreach (UI_VolumeSlider item in volumeSettings){if (item.parametr == pair.Key)//如果音量设置的参数和保存的参数一致item.LoadSlider(pair.Value);}}}public void SaveData(ref GameData _data){_data.volumeSettings.Clear();//清空音量设置foreach (UI_VolumeSlider item in volumeSettings)//遍历音量设置{_data.volumeSettings.Add(item.parametr,item.slider.value);//保存音量设置}}
}

http://www.hrbkazy.com/news/9998.html

相关文章:

  • 网站改版分析百度seo外包
  • 静海做网站公司百度一下百度一下你就知道
  • 做电影网站要不要收费太原建站seo
  • 沈阳做网站有名公司有哪些技能培训学校
  • 建外贸网站推广全国最新的疫情数据
  • wordpress英文站源码武汉百度推广入口
  • 浙江省住房和城乡建设厅网站 文件网站设计培训
  • 做网站客户最关心哪些问题武汉百捷集团百度推广服务有限公司
  • 动态网站欣赏搜索广告是什么
  • 如何做二维码链接网站搜索引擎营销的手段包括
  • 南山企业网站建设女装关键词排名
  • 绵阳建网站哪家好西安网络优化哪家好
  • 怎么查询商标是否已被注册宁波seo网站
  • 连云港网站建设价格公司网站域名怎么注册
  • 口碑好的网站建设公司哪家好全网推广系统
  • 以色列网站后缀批量关键词调排名软件
  • 深圳中小企业网站制作网页制作作业100例
  • 东莞网页网站制作美国搜索引擎排名
  • 做网站的那些个人工作室公关团队
  • 网站推广的最终目的是什么推广软件赚钱的app
  • 渭南做网站哪家公司免费发布信息平台有哪些
  • 外贸中间体做哪个网站好烟台seo关键词排名
  • 给人做网站赚钱网站快速收录软件
  • 不同国家访问wordpress web 显示不用语言seo优化排名
  • 做网站税点百度指数排名
  • 郑州华恩科技做网站怎么样怎么做公司网站
  • 珠海政府网站建设公司宁波seo搜索优化费用
  • 网站服务公司官网seo深圳网络推广
  • 企业1级域名网站怎么做品牌广告
  • mac 做网站seo入门