点击确定后才保存数据,否则不保存

本文介绍了一个Unity游戏中的单音调波形调节脚本,管理声音效果(如PitchEngine、PitchInductance和PitchClose),响应按钮点击事件以切换声音设置并保存用户选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UIFramework;
using System;
using UniRx;

public class MonophonicWaveRegulation : MonoBehaviour
{
[SerializeField]
private GameObject m_SoundWaveRegulation;
[SerializeField]
private Button Engine;
Vector3 vectorSoundWaveRegulation = new Vector3(-135f, 52f, 0f);
[SerializeField]
private Button Close;
Vector3 vectorClose = new Vector3(139f, 52f, 0f);
[SerializeField]
private Button Sure;
[SerializeField]
private Button MaskClose;
[SerializeField]
private Image Img_PitchOn;
Vector3 vectorPitchOnStart = new Vector3(-135f, 52f, 0f);

private PitchOn _currentlySelected = PitchOn.PitchEngine;

private PitchOn _savelySelected = PitchOn.PitchEngine;

private bool isClick = false;
enum PitchOn
{
    PitchEngine,
    PitchInductance,
    PitchClose
}

private static readonly string TAG = "SoundWaveRegulation";
private void Start()
{
    DataCenter.savesoundvalue.Subscribe(i =>
    {
        Log.I(TAG, "savesoundvalue value:" + i);
        if (i == 2)
        {
            Img_PitchOn.transform.localPosition = vectorSoundWaveRegulation;
        }
        else
        {
            Img_PitchOn.transform.localPosition = vectorClose;
        }
    }).AddTo(this);

    //Img_PitchOn.transform.localPosition = vectorPitchOnStart;
    Engine.onClick.AddListener(() =>
    {
        Log.I(TAG, "Engine Button Clicked!");
        isClick = true;
        _currentlySelected = PitchOn.PitchEngine;
        OnMonophonicWaveRegulation(_currentlySelected);
    });
    //点击关按钮  只是声浪的一种模式 不保存则数据无效  保存则静音
    Close.onClick.AddListener(() =>
    {
        Log.I(TAG, "Close Button Clicked!");
        _currentlySelected = PitchOn.PitchClose;
        OnMonophonicWaveRegulation(_currentlySelected);
    });
    //点击弹窗以外区域关闭当前弹窗 不保存数据
    MaskClose.onClick.AddListener(() =>
    {
        Log.I(TAG, "MaskClose Button Clicked!");
        m_SoundWaveRegulation.SetActive(false);
    });
    //点击确定按钮  并保存数据
    Sure.onClick.AddListener(() =>
    {
        _savelySelected = _currentlySelected;
        Log.I(TAG, "Sure Button Clicked!");
        Log.I(TAG, "_savelySelected:" + _savelySelected);
        switch (_currentlySelected)
        {
            case PitchOn.PitchEngine:
                SuperSportNative.SwitchSoundWave(2);
                break;
            case PitchOn.PitchClose:
                SuperSportNative.SwitchSoundWave(0);
                break;
            default:
                break;
        }
        m_SoundWaveRegulation.SetActive(false);
    });
}

private void OnEnable()
{
    OnMonophonicWaveRegulation(_savelySelected);
}

private void OnMonophonicWaveRegulation(PitchOn pitchOn)
{
    Log.I(TAG, "pitchOn:" + pitchOn);
    if (pitchOn == PitchOn.PitchEngine)
    {
        Img_PitchOn.transform.localPosition = vectorSoundWaveRegulation;
        //if (isClick == true)
        //{
        //    Log.I(TAG, "Play TOPSPEEDINDUCTANCE!");
        //    SoundManager.Instance.Play(new Sound
        //    {
        //        BeginTime = 0,
        //        ESound = ESound.TOPSPEEDINDUCTANCE
        //    });
        //}
        //else
        //{
        //    return;
        //}
    }
    if (pitchOn == PitchOn.PitchClose)
    {
        Img_PitchOn.transform.localPosition = vectorClose;
        //SuperSportNative.PlayVoice((int)ESound.TOPSPEEDINDUCTANCE, false);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值