关于游戏中参数导出调整的实现_PlayerPrefs方式实现
2017-11-21 20:22
295 查看
关于游戏中参数导出调整的实现_PlayerPrefs方式实现<21/11/2017>(注意:InputField有坑!PlayerPrefs有默认读取!)
为了方便测试和策划调整手感,往往我们需要导出我们的参数,让他们进行调整可以节省我们一大部分开发的时间
(数据会保存在电脑或手机端本地),参数导出如下图:
一下代码,核心已经注释:<注意!>
UI面板界面编排如此
为了方便测试和策划调整手感,往往我们需要导出我们的参数,让他们进行调整可以节省我们一大部分开发的时间
(数据会保存在电脑或手机端本地),参数导出如下图:
一下代码,核心已经注释:<注意!>
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class SettingManager : MonoBehaviour { public GameObject ball; private Rigidbody2D rg; public InputField[] inputFields; public GameObject settingPanel; void Start() { rg = ball.GetComponent<Rigidbody2D>(); rg.mass = PlayerPrefs.GetFloat("Mass", 1f);//GetFloat("Mass",1f)如果读取不到"Mass"值,会默认读取1f数值 inputFields[0].text = rg.mass.ToString();//InputFields.text才是UGUI输入框的入口,此处每次更改后,输入框显示也得随PlayerPrefs数值进行更新 rg.drag = PlayerPrefs.GetFloat("Linear Drag", 0f); inputFields[1].text = rg.drag.ToString(); rg.angularDrag = PlayerPrefs.GetFloat("Angular Drag", 0.05f); inputFields[2].text = rg.angularDrag.ToString(); rg.gravityScale = PlayerPrefs.GetFloat("Gravity Scale", 1f); inputFields[3].text = rg.gravityScale.ToString(); BasketControl.rotateSpeed = PlayerPrefs.GetFloat("Rotate Angular Speed", 1000f); inputFields[4].text = BasketControl.rotateSpeed.ToString(); BasketControl.ForcePowerRate = PlayerPrefs.GetFloat("Force Power Rate", 55f); inputFields[5].text = BasketControl.ForcePowerRate.ToString(); DrawLine.parabola = PlayerPrefs.GetFloat("Parabola", 0.026f); inputFields[6].text = DrawLine.parabola.ToString(); } public void ActiveSettingPanel() { settingPanel.SetActive(true); BasketControl.FixedAll = false; } public void FalseSettingPanel() { settingPanel.SetActive(false); BasketControl.FixedAll = true; } public void SettingDate() { PlayerPrefs.SetFloat("Mass", float.Parse(inputFields[0].text)); PlayerPrefs.SetFloat("Linear Drag", float.Parse(inputFields[1].text)); PlayerPrefs.SetFloat("Angular Drag", float.Parse(inputFields[2].text)); PlayerPrefs.SetFloat("Gravity Scale", float.Parse(inputFields[3].text)); PlayerPrefs.SetFloat("Rotate Angular Speed", float.Parse(inputFields[4].text)); PlayerPrefs.SetFloat("Force Power Rate", float.Parse(inputFields[5].text)); PlayerPrefs.SetFloat("Parabola", float.Parse(inputFields[6].text)); rg.mass = PlayerPrefs.GetFloat("Mass", float.Parse(inputFields[0].text)); rg.drag = PlayerPrefs.GetFloat("Linear Drag", float.Parse(inputFields[1].text)); rg.angularDrag = PlayerPrefs.GetFloat("Angular Drag", float.Parse(inputFields[2].text)); rg.gravityScale = PlayerPrefs.GetFloat("Gravity Scale", float.Parse(inputFields[3].text)); BasketControl.rotateSpeed = PlayerPrefs.GetFloat("Rotate Angular Speed", float.Parse(inputFields[4].text)); BasketControl.ForcePowerRate = PlayerPrefs.GetFloat("Force Power Rate", float.Parse(inputFields[5].text)); DrawLine.parabola = PlayerPrefs.GetFloat("Parabola", float.Parse(inputFields[6].text)); } }
UI面板界面编排如此
相关文章推荐
- 关于android实现拖动旋转角度,调整布局参数的思路
- 关于不同页面之间实现参数传递的几种方式讨论
- 关于android实现拖动旋转角度,调整布局参数的思路
- 关于实现带参数的视图
- 关于delphi 的函数调用和参数传递方式深入研究之疑惑
- 关于缩略图的实现方式
- 观点:关于游戏系统的规划、设计与实现。
- 关于处理GET方式提交的含有特殊字符的参数
- 关于"Java中方法参数的传递方式"的探讨
- 将Table数据导出至Excel文件(中国移动实现的方式)
- 关于处理GET方式提交的含有特殊字符的参数jsp
- xml应用(2): 通过向xsl传递参数+数据岛方式,实现在客户端单个xml的分框架显示
- [导入]xml应用(2): 通过向xsl传递参数+数据岛方式,实现在客户端单个xml的分框架显示
- 关于简单格式大容量数据导出的web实现
- 关于读写配置文件MBean实现结构的调整
- 关于Tab选项卡的实现方式的探讨
- 关于处理GET方式提交的含有特殊字符的参数
- 工作流项目中关于imp/exp导入导出命令工具的部分应用方式!
- 关于单例(Singleton)模式实现方式的反思
- 用DTS方式实现数据导入导出操作