Unity 设置菜单

using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 设置菜单
/// </summary>
public class SetUp : MonoBehaviour
{
    public static SetUp Instance;
    //选择滑动条或输入框
    private bool bl_SliInp;
    private Button Btn_Confirm;//确认键
    private Button Btn_Reset;//重置键
    //参数数值
    public float AppearTime;//出现时间
    private float MoveSpeed;//移动时间
    //参数组件 
    private GameObject game_MoveSpeed;//父组件
    private Slider Sli_MoveSpeed;//滑动条
    private InputField Inp_MoveSpeed;//输入框

    void Start()
    {
        Instance = this;
        InitGetComponent();
    }
    /// <summary>
    /// 声明组件
    /// </summary>
    private void InitGetComponent()
    {
        //声明组件
        game_MoveSpeed = GameObject.Find("MoveSpeed");
        Sli_MoveSpeed = game_MoveSpeed.transform.GetChild(0).GetComponent<Slider>();
        Inp_MoveSpeed = game_MoveSpeed.transform.GetChild(1).GetComponent<InputField>();

        Btn_Confirm = GameObject.Find("Confirm").GetComponent<Button>();
        Btn_Reset = GameObject.Find("Reset").GetComponent<Button>();
        //初始化数值
        AppearTime = 10;
        MoveSpeed = 1;
        //给按钮添加点击监听
        Btn_Confirm.onClick.AddListener(OnClickConfirm);
        Btn_Reset.onClick.AddListener(OnClickReset);
    }


    /// <summary>
    /// 点击确定键执行
    /// </summary>
    private void OnClickConfirm()
    {
        //在其他代码使用单例赋值参数,或其他方法
        //如:this.MoveSpeed = SetUp.Instance.MoveSpeed;
        //可以将参数进行存储,如二进制,JSON,XML
        Debug.Log("修改/保存成功");
    }
    /// <summary>
    /// 点击重置键执行
    /// </summary>
    private void OnClickReset()
    {
        //重置数值
        MoveSpeed = 1;
        //同步滑动条数值
        Sli_MoveSpeed.value = MoveSpeed;
    }
    void Update()
    {
        if (bl_SliInp)
        {
            //选择滑动条,输入框的值取到滑动条值的后一位
            Inp_MoveSpeed.text = Sli_MoveSpeed.value.ToString("F1");
        }
        else
        {
            //选择输入框,滑动条的值等于输入框的值
            Sli_MoveSpeed.value = float.Parse(Inp_MoveSpeed.text);
        }
    }
    //为滑动条或输入框手动添加点击
    public void Box_Slider()
    {
        bl_SliInp = true;
    }
    public void Box_InputField()
    {
        bl_SliInp = false;
    }
}

 ///另一个代码里调用

 private void Update()
 {     
  if (Input.GetKeyDown(KeyCode.Tab))
  {
     //按Tab键可以隐藏或显示设置菜单
     SetUp.SetActive(!SetUp.activeSelf);
     //鼠标的隐藏与显示
     switch (Cursor.lockState)
     {
         case CursorLockMode.None://如果显示状态
             Cursor.lockState = CursorLockMode.Locked;//鼠标隐藏并锁定
             break;
         case CursorLockMode.Locked://如果隐藏状态
             Cursor.lockState = CursorLockMode.None;//鼠标显示并解锁
             break;
         default:
             break;
     }
   }
 }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值