关于游戏中参数导出调整的实现_PlayerPrefs方式实现

来源:互联网 发布:淘宝店铺标志尺寸 编辑:程序博客网 时间:2024/05/22 20:49

关于游戏中参数导出调整的实现_PlayerPrefs方式实现<21/11/2017>(注意:InputField有坑!PlayerPrefs有默认读取!)

为了方便测试和策划调整手感,往往我们需要导出我们的参数,让他们进行调整可以节省我们一大部分开发的时间

(数据会保存在电脑或手机端本地),参数导出如下图:


一下代码,核心已经注释:<注意!>

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面板界面编排如此

阅读全文
0 0
原创粉丝点击