Merge remote-tracking branch 'origin/develop' into feature/dlg_setting

This commit is contained in:
Tungdv
2026-05-15 17:02:19 +07:00
5 changed files with 216 additions and 156 deletions
+118 -34
View File
@@ -1417,6 +1417,7 @@ GameObject:
- component: {fileID: 6885554817198692527}
- component: {fileID: 863510365847435631}
- component: {fileID: 7254143063875475060}
- component: {fileID: 8468446591860041645}
m_Layer: 0
m_Name: unit_2
m_TagString: Untagged
@@ -1486,6 +1487,20 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8468446591860041645
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1207920292179733216}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfc4382a69b985742888061ae412685f, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 8990697129083995015}
sliderValueText: {fileID: 284675133552538515}
--- !u!1 &1225941300944712843
GameObject:
m_ObjectHideFlags: 0
@@ -1690,8 +1705,8 @@ RectTransform:
m_Children: []
m_Father: {fileID: 4518290151127928201}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.173, y: 0}
m_AnchorMax: {x: 0.173, y: 1}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 17.5, y: 0.54999924}
m_SizeDelta: {x: 35, y: -1.0999997}
m_Pivot: {x: 0.5, y: 0.5}
@@ -2233,9 +2248,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6683dd582fa268c45af1ece39633a804, type: 3}
m_Name:
m_EditorClassIdentifier:
slider_foresight: {fileID: 3042341277921018395}
slider_distance_npc_and_mst: {fileID: 8213436967850142730}
slider_distance_player_other: {fileID: 4632767818006488389}
txt_level_of_foresight: {fileID: 6815914334339467742}
txt_level_of_distance_npc_and_mst: {fileID: 6757030218926432192}
txt_level_of_distance_player_other: {fileID: 7832569378395798648}
@@ -3306,6 +3318,7 @@ GameObject:
- component: {fileID: 2205104915353036503}
- component: {fileID: 7377397793541853966}
- component: {fileID: 891065746960273297}
- component: {fileID: 8903301988286719733}
m_Layer: 0
m_Name: unit_3
m_TagString: Untagged
@@ -3375,6 +3388,20 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8903301988286719733
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3860403473623573044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfc4382a69b985742888061ae412685f, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 9060975845259588531}
sliderValueText: {fileID: 7313494243364841233}
--- !u!1 &3877615139436312067
GameObject:
m_ObjectHideFlags: 0
@@ -3664,10 +3691,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 8994509419830078722}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0.173
m_MinValue: 1
m_MaxValue: 6
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -3786,6 +3813,7 @@ GameObject:
- component: {fileID: 8629057451694483415}
- component: {fileID: 23856606709302476}
- component: {fileID: 7734867594286663418}
- component: {fileID: 7374187120158384910}
m_Layer: 0
m_Name: unit_2
m_TagString: Untagged
@@ -3854,6 +3882,20 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7374187120158384910
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4036435431650282766}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfc4382a69b985742888061ae412685f, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 8213436967850142730}
sliderValueText: {fileID: 6757030218926432192}
--- !u!1 &4209654354352781977
GameObject:
m_ObjectHideFlags: 0
@@ -3936,10 +3978,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 1689102852614951878}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0
m_MinValue: 1
m_MaxValue: 6
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -4484,10 +4526,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 2275052390284391803}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0
m_MinValue: 1
m_MaxValue: 6
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -5417,9 +5459,6 @@ MonoBehaviour:
txt_master: {fileID: 5687742036058045723}
switch_off: {fileID: 21300000, guid: 9d4b52827a31d42438c5b84e7f9729a0, type: 3}
switch_on: {fileID: 21300000, guid: c3391972be9854a8fa42de37bb973f08, type: 3}
slider_bgm: {fileID: 5993892601071822366}
slider_sfx: {fileID: 8990697129083995015}
slider_master: {fileID: 9060975845259588531}
txt_level_of_bgm: {fileID: 3978261999845214409}
txt_level_of_sfx: {fileID: 284675133552538515}
txt_level_of_master: {fileID: 7313494243364841233}
@@ -5455,8 +5494,8 @@ RectTransform:
m_Children: []
m_Father: {fileID: 8525635121118996326}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.173, y: 0}
m_AnchorMax: {x: 0.173, y: 1}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 17.5, y: 0.54999924}
m_SizeDelta: {x: 35, y: -1.0999997}
m_Pivot: {x: 0.5, y: 0.5}
@@ -5580,10 +5619,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 8996205850684322200}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0
m_MinValue: 1
m_MaxValue: 6
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -6119,10 +6158,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 2726854725950508910}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0.793
m_MinValue: 1
m_MaxValue: 6
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -6434,6 +6473,7 @@ GameObject:
- component: {fileID: 2852540487711165936}
- component: {fileID: 1803232036181999617}
- component: {fileID: 3543201618536492737}
- component: {fileID: 8696581003082592840}
m_Layer: 0
m_Name: unit_1
m_TagString: Untagged
@@ -6502,6 +6542,20 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8696581003082592840
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6391050217410555412}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfc4382a69b985742888061ae412685f, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 3042341277921018395}
sliderValueText: {fileID: 6815914334339467742}
--- !u!1 &6572595400773280862
GameObject:
m_ObjectHideFlags: 0
@@ -6659,10 +6713,10 @@ MonoBehaviour:
m_FillRect: {fileID: 0}
m_HandleRect: {fileID: 5352689022212559499}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0.173
m_MinValue: 1
m_MaxValue: 6
m_WholeNumbers: 1
m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -6677,6 +6731,7 @@ GameObject:
- component: {fileID: 7519066988993270530}
- component: {fileID: 7164248645335517220}
- component: {fileID: 4866498302031284828}
- component: {fileID: 6513137742691945821}
m_Layer: 0
m_Name: unit_1
m_TagString: Untagged
@@ -6746,6 +6801,20 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6513137742691945821
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6692563724050498116}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfc4382a69b985742888061ae412685f, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 5993892601071822366}
sliderValueText: {fileID: 3978261999845214409}
--- !u!1 &6776695208665921981
GameObject:
m_ObjectHideFlags: 0
@@ -6757,6 +6826,7 @@ GameObject:
- component: {fileID: 3814723510223591699}
- component: {fileID: 4395132968601301589}
- component: {fileID: 3900322111327600733}
- component: {fileID: 7472743271469780325}
m_Layer: 0
m_Name: unit_3
m_TagString: Untagged
@@ -6825,6 +6895,20 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7472743271469780325
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6776695208665921981}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfc4382a69b985742888061ae412685f, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 4632767818006488389}
sliderValueText: {fileID: 7832569378395798648}
--- !u!1 &6866865186141604476
GameObject:
m_ObjectHideFlags: 0
@@ -19,11 +19,6 @@ namespace BrewMonster
{
public class SettingInterface : MonoBehaviour
{
[Header("Slider")]
[SerializeField] private Slider slider_foresight;
[SerializeField] private Slider slider_distance_npc_and_mst;
[SerializeField] private Slider slider_distance_player_other;
[Header("Slider Value Level")]
private float valueLevel1 = 0;
private float valueLevel2 = 0.194f;
@@ -44,62 +39,7 @@ namespace BrewMonster
private void OnDisable()
{
slider_foresight.onValueChanged.RemoveListener(OnForessightSliderChange);
slider_distance_npc_and_mst.onValueChanged.RemoveListener(OnDisNPCandMstSliderChange);
slider_distance_player_other.onValueChanged.RemoveListener(OnDisPlayerOtherSliderChange);
}
private void Update()
{
UpdateSliderText(slider_foresight, txt_level_of_foresight);
UpdateSliderText(slider_distance_npc_and_mst, txt_level_of_distance_npc_and_mst);
UpdateSliderText(slider_distance_player_other, txt_level_of_distance_player_other);
}
private void OnForessightSliderChange(float value)
{
UpdateSliderText(slider_foresight, txt_level_of_foresight);
}
private void OnDisNPCandMstSliderChange(float value)
{
UpdateSliderText(slider_distance_npc_and_mst, txt_level_of_distance_npc_and_mst);
}
private void OnDisPlayerOtherSliderChange(float value)
{
UpdateSliderText(slider_distance_player_other, txt_level_of_distance_player_other);
}
private void UpdateSliderText(Slider slider, TextMeshProUGUI text)
{
if (slider == null || text == null)
return;
int level = GetLevelFromValue(slider.value);
text.text = $"Mức {level}";
}
private int GetLevelFromValue(float value)
{
float t12 = (valueLevel1 + valueLevel2) * 0.5f;
float t23 = (valueLevel2 + valueLevel3) * 0.5f;
float t34 = (valueLevel3 + valueLevel4) * 0.5f;
float t45 = (valueLevel4 + valueLevel5) * 0.5f;
float t56 = (valueLevel5 + valueLevel6) * 0.5f;
if (value < t12)
return 1;
else if (value < t23)
return 2;
else if (value < t34)
return 3;
else if (value < t45)
return 4;
else if (value < t56)
return 5;
else
return 6;
}
}
}
@@ -43,11 +43,6 @@ namespace BrewMonster
private Color textOnColor = new Color(0.96f, 0.84f, 0.61f);
private Color textOffColor = new Color(0.6f, 0.6f, 0.6f);
[Header("Slider")]
[SerializeField] private Slider slider_bgm;
[SerializeField] private Slider slider_sfx;
[SerializeField] private Slider slider_master;
[Header("Slider Value Level")]
private float valueLevel1 = 0;
private float valueLevel2 = 0.173f;
@@ -66,13 +61,6 @@ namespace BrewMonster
private Coroutine masterCoroutine;
private void Update()
{
UpdateSliderText(slider_bgm, txt_level_of_bgm);
UpdateSliderText(slider_sfx, txt_level_of_sfx);
UpdateSliderText(slider_master, txt_level_of_master);
}
private void OnEnable()
{
UpdateSwitchInstant(tog_bgm, handle_bmg, txt_bgm);
@@ -89,10 +77,6 @@ namespace BrewMonster
tog_bgm.onValueChanged.RemoveListener(OnBgmChanged);
tog_sfx.onValueChanged.RemoveListener(OnSfxChanged);
tog_master.onValueChanged.RemoveListener(OnMasterChanged);
slider_bgm.onValueChanged.RemoveListener(OnBgmSliderChanged);
slider_sfx.onValueChanged.RemoveListener(OnSfxSliderChanged);
slider_master.onValueChanged.RemoveListener(OnMasterSliderChanged);
}
private void OnBgmChanged(bool isOn)
@@ -125,21 +109,6 @@ namespace BrewMonster
// TODO: Add logic to change Master volume or mute state
}
private void OnBgmSliderChanged(float value)
{
UpdateSliderText(slider_bgm, txt_level_of_bgm);
}
private void OnSfxSliderChanged(float value)
{
UpdateSliderText(slider_sfx, txt_level_of_sfx);
}
private void OnMasterSliderChanged(float value)
{
UpdateSliderText(slider_master, txt_level_of_master);
}
private void UpdateSwitchInstant(Toggle toggle, RectTransform handle, TextMeshProUGUI statusText)
{
bool isOn = toggle.isOn;
@@ -214,36 +183,5 @@ namespace BrewMonster
statusText.rectTransform.anchoredPosition = new Vector2(textTargetX, statusText.rectTransform.anchoredPosition.y);
}
}
private void UpdateSliderText(Slider slider, TextMeshProUGUI text)
{
if(slider == null || text == null)
return;
int level = GetLevelFromValue(slider.value);
text.text = $"Mức {level}";
}
private int GetLevelFromValue(float value)
{
float t12 = (valueLevel1 + valueLevel2) * 0.5f;
float t23 = (valueLevel2 + valueLevel3) * 0.5f;
float t34 = (valueLevel3 + valueLevel4) * 0.5f;
float t45 = (valueLevel4 + valueLevel5) * 0.5f;
float t56 = (valueLevel5 + valueLevel6) * 0.5f;
if(value < t12)
return 1;
else if(value < t23)
return 2;
else if(value < t34)
return 3;
else if(value < t45)
return 4;
else if(value < t56)
return 5;
else
return 6;
}
}
}
@@ -0,0 +1,96 @@
using BrewMonster.Assets.PerfectWorld.Scripts.UI;
using BrewMonster.Common;
using BrewMonster.Managers;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using BrewMonster.UI;
using CSNetwork.GPDataType;
using Cysharp.Threading.Tasks.Triggers;
using PerfectWorld.Scripts.Managers;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace BrewMonster
{
public class SliderController : MonoBehaviour
{
[Header("Slider")]
public Slider slider;
public TextMeshProUGUI sliderValueText;
[Header("Action Event")]
private UnityEvent[] levelEvents = new UnityEvent[6];
private int currentLevel = -1;
private void OnEnable()
{
if(slider != null)
{
slider.onValueChanged.AddListener(OnSliderValueChange);
UpdateLevelFromSlider();
}
}
private void OnDisable()
{
if (slider != null)
{
slider.onValueChanged.RemoveListener(OnSliderValueChange);
}
}
private void OnSliderValueChange(float value)
{
UpdateLevelFromSlider();
}
private void UpdateLevelFromSlider()
{
if (slider == null)
return;
int level = GetLevelFromValue(slider.value);
if(level != currentLevel)
{
currentLevel = level;
Invoke(level);
}
UpdateSliderText(level);
}
private int GetLevelFromValue(float value)
{
int level = Mathf.RoundToInt(value);
return Mathf.Clamp(level, 1, 6);
}
private void UpdateSliderText(int level)
{
if (sliderValueText == null)
{
return;
}
sliderValueText.text = $"Mức {level}";
}
public void Invoke(int level)
{
int index = level - 1;
if(index < 0 || index >= levelEvents.Length)
{
return;
}
levelEvents[index]?.Invoke();
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bfc4382a69b985742888061ae412685f