2026-03-20 스왑버튼 구현, 서버변경
This commit is contained in:
@@ -32,8 +32,8 @@ private void Awake()
|
|||||||
private async Awaitable Start()
|
private async Awaitable Start()
|
||||||
{
|
{
|
||||||
|
|
||||||
//await LoadUserCharacters(1);
|
await LoadUserCharacters(1);
|
||||||
//await LoadPlayableCharacters();
|
await LoadPlayableCharacters();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Awaitable LoadUserCharacters(int userNo)
|
public async Awaitable LoadUserCharacters(int userNo)
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ public class NetworkManager : MonoBehaviour
|
|||||||
{
|
{
|
||||||
public static NetworkManager Instance;
|
public static NetworkManager Instance;
|
||||||
|
|
||||||
private string _baseGameDBUrl = "https://localhost:7134/myGame";
|
//private string _baseGameDBUrl = "https://localhost:7134/myGame";
|
||||||
//private string _baseGameDBUrlHttp = "http://localhost:5281/myGame";
|
private string _baseGameDBUrlHttp = "http://152.69.235.249:5000/myGame";
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
@@ -26,7 +26,7 @@ private void Awake()
|
|||||||
|
|
||||||
public async Awaitable<T> GetDatabaseData<T>(string endPoint)
|
public async Awaitable<T> GetDatabaseData<T>(string endPoint)
|
||||||
{
|
{
|
||||||
string url = $"{_baseGameDBUrl}/{endPoint}";
|
string url = $"{_baseGameDBUrlHttp}/{endPoint}";
|
||||||
using UnityWebRequest request = UnityWebRequest.Get(url); //앞의 using은 사용이 끝난(메서드 종료) 외부 리소스 객체들을 알아서 지워주도록 설정하는 예약어이다
|
using UnityWebRequest request = UnityWebRequest.Get(url); //앞의 using은 사용이 끝난(메서드 종료) 외부 리소스 객체들을 알아서 지워주도록 설정하는 예약어이다
|
||||||
request.certificateHandler = new BypassCertificate();
|
request.certificateHandler = new BypassCertificate();
|
||||||
|
|
||||||
|
|||||||
53
Assets/02_Scripts/UI/Menu/SwapButton.cs
Normal file
53
Assets/02_Scripts/UI/Menu/SwapButton.cs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Events;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
[RequireComponent(typeof(Image))]
|
||||||
|
public class SwapButton : MonoBehaviour, IPointerClickHandler
|
||||||
|
{
|
||||||
|
public Image TargetImage;
|
||||||
|
|
||||||
|
public Sprite ASprite;
|
||||||
|
public UnityEvent ClickEventA = new UnityEvent();
|
||||||
|
|
||||||
|
public Sprite BSprite;
|
||||||
|
public UnityEvent ClickEventB = new UnityEvent();
|
||||||
|
|
||||||
|
[SerializeField] private bool _trueA_FalseB = true;
|
||||||
|
|
||||||
|
public bool TrueA_FalseB
|
||||||
|
{
|
||||||
|
get => _trueA_FalseB;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_trueA_FalseB = value;
|
||||||
|
UpdateVisual(); // 값이 바뀔 때마다 자동으로 실행!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
TargetImage = GetComponent<Image>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnPointerClick(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
TrueA_FalseB = !TrueA_FalseB;
|
||||||
|
|
||||||
|
if (TrueA_FalseB)
|
||||||
|
ClickEventA?.Invoke();
|
||||||
|
else
|
||||||
|
ClickEventB?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnValidate()
|
||||||
|
{
|
||||||
|
UpdateVisual();
|
||||||
|
}
|
||||||
|
public void UpdateVisual()
|
||||||
|
{
|
||||||
|
if (TargetImage == null) return;
|
||||||
|
TargetImage.sprite = _trueA_FalseB ? ASprite : BSprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/02_Scripts/UI/Menu/SwapButton.cs.meta
Normal file
2
Assets/02_Scripts/UI/Menu/SwapButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7742f072d8001394ca9c68f41507c667
|
||||||
8
Assets/02_Scripts/UI/Setting.meta
Normal file
8
Assets/02_Scripts/UI/Setting.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cef5f8318ff01d04d98d7f10b0d9ec62
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
138
Assets/02_Scripts/UI/Setting/SettingUIPopup.cs
Normal file
138
Assets/02_Scripts/UI/Setting/SettingUIPopup.cs
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Audio;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class SettingUIPopup : MonoBehaviour
|
||||||
|
{
|
||||||
|
//오디오 설정
|
||||||
|
[Header("Audio Settings")]
|
||||||
|
public AudioMixer mixer; // 믹서는 한개만 쓴다
|
||||||
|
public Slider masterSlider, bgmSlider, sfxSlider;
|
||||||
|
public SwapButton masterMute, bgmMute, sfxMute;
|
||||||
|
private float _defaultVolumeSlider = 0.2f;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
//오디오
|
||||||
|
ResetMasterVolume();
|
||||||
|
ResetBGMVolume();
|
||||||
|
ResetSFXVolume();
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 오디오
|
||||||
|
private void ResetMasterVolume()
|
||||||
|
{
|
||||||
|
float masterSliderValue = _defaultVolumeSlider;
|
||||||
|
if (PlayerPrefs.HasKey("volumeMaster"))
|
||||||
|
{
|
||||||
|
masterSliderValue = PlayerPrefs.GetFloat("volumeMaster");
|
||||||
|
}
|
||||||
|
masterSlider.value = masterSliderValue;
|
||||||
|
mixer.SetFloat("volumeMaster", CalculateVolume(masterSliderValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetBGMVolume()
|
||||||
|
{
|
||||||
|
float bgmSliderValue = _defaultVolumeSlider;
|
||||||
|
if (PlayerPrefs.HasKey("volumeBGM"))
|
||||||
|
{
|
||||||
|
bgmSliderValue = PlayerPrefs.GetFloat("volumeBGM");
|
||||||
|
}
|
||||||
|
bgmSlider.value = bgmSliderValue;
|
||||||
|
mixer.SetFloat("volumeBGM", CalculateVolume(bgmSliderValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetSFXVolume()
|
||||||
|
{
|
||||||
|
float sfxSliderValue = _defaultVolumeSlider;
|
||||||
|
if (PlayerPrefs.HasKey("volumeSFX"))
|
||||||
|
{
|
||||||
|
sfxSliderValue = PlayerPrefs.GetFloat("volumeSFX");
|
||||||
|
}
|
||||||
|
sfxSlider.value = sfxSliderValue;
|
||||||
|
mixer.SetFloat("volumeSFX", CalculateVolume(sfxSliderValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
float CalculateVolume(float _sliderValue)
|
||||||
|
{
|
||||||
|
var slider = Mathf.Clamp(_sliderValue, 0.0001f, 1f); // 아래에서 로그변환할때 0이 들어가면 안됨
|
||||||
|
float dB = Mathf.Log10(slider) * 20f; //데시벨 변환식
|
||||||
|
return Mathf.Clamp(dB, -80f, 0f); //-80dB에서 0dB까지 조절할수있게 _sliderValue 최대값이 1이므로 dB는 계산상 0보다 크게 나올수 없음 (0db이 기준)
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SliderVolumeMaster(float value) // 마스터 볼륨 슬라이더에 연결할 메서드
|
||||||
|
{
|
||||||
|
if (value > 0)
|
||||||
|
masterMute.TrueA_FalseB = true; //슬라이더를 움직였으니 뮤트가 풀리도록
|
||||||
|
else if (value <= 0)
|
||||||
|
masterMute.TrueA_FalseB = false; //0이면 음소거
|
||||||
|
|
||||||
|
var volume = CalculateVolume(value); //볼륨 계산
|
||||||
|
mixer.SetFloat("volumeMaster", volume); //볼륨 적용
|
||||||
|
|
||||||
|
PlayerPrefs.SetFloat("volumeMaster", value);//슬라이더 값 저장
|
||||||
|
}
|
||||||
|
public void SliderVolumeBGM(float value) // BGM 볼륨 슬라이더에 연결할 메서드
|
||||||
|
{
|
||||||
|
if (value > 0)
|
||||||
|
bgmMute.TrueA_FalseB = true; //슬라이더를 움직였으니 뮤트가 풀리도록
|
||||||
|
else if (value <= 0)
|
||||||
|
bgmMute.TrueA_FalseB = false; //0이면 음소거
|
||||||
|
|
||||||
|
var volume = CalculateVolume(value); //볼륨 계산
|
||||||
|
mixer.SetFloat("volumeBGM", volume);
|
||||||
|
PlayerPrefs.SetFloat("volumeBGM", value);//슬라이더 값 저장
|
||||||
|
}
|
||||||
|
public void SliderVolumeSFX(float value) // SFX 볼륨 슬라이더에 연결할 메서드
|
||||||
|
{
|
||||||
|
if (value > 0)
|
||||||
|
sfxMute.TrueA_FalseB = true; //슬라이더를 움직였으니 뮤트가 풀리도록
|
||||||
|
else if (value <= 0)
|
||||||
|
sfxMute.TrueA_FalseB = false; //0이면 음소거
|
||||||
|
|
||||||
|
var volume = CalculateVolume(value); //볼륨 계산
|
||||||
|
mixer.SetFloat("volumeSFX", volume);
|
||||||
|
PlayerPrefs.SetFloat("volumeSFX", value);//슬라이더 값 저장
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MuteMaster(bool isMute)
|
||||||
|
{
|
||||||
|
if (isMute)
|
||||||
|
{
|
||||||
|
mixer.SetFloat("volumeMaster", CalculateVolume(0));
|
||||||
|
//masterSlider.value = 0;
|
||||||
|
masterSlider.SetValueWithoutNotify(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResetMasterVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void MuteBGM(bool isMute)
|
||||||
|
{
|
||||||
|
if (isMute)
|
||||||
|
{
|
||||||
|
mixer.SetFloat("volumeBGM", CalculateVolume(0));
|
||||||
|
//bgmSlider.value = 0;
|
||||||
|
bgmSlider.SetValueWithoutNotify(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResetBGMVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void MuteSFX(bool isMute)
|
||||||
|
{
|
||||||
|
if (isMute)
|
||||||
|
{
|
||||||
|
mixer.SetFloat("volumeSFX", CalculateVolume(0));
|
||||||
|
//sfxSlider.value = 0;
|
||||||
|
sfxSlider.SetValueWithoutNotify(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResetSFXVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
2
Assets/02_Scripts/UI/Setting/SettingUIPopup.cs.meta
Normal file
2
Assets/02_Scripts/UI/Setting/SettingUIPopup.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b03bd5482dd96ac448d1265a3214aa48
|
||||||
Binary file not shown.
Reference in New Issue
Block a user