change prefab chatsystem and update logic button channel

This commit is contained in:
CuongNV
2026-03-19 16:52:49 +07:00
parent 8b8653c1fa
commit 221c6ad364
9 changed files with 1646 additions and 1451 deletions
+225
View File
@@ -4758,6 +4758,7 @@ RectTransform:
m_Children:
- {fileID: 8741686998992894603}
- {fileID: 3488899534283412697}
- {fileID: 1617059115409888389}
- {fileID: 9056141770234008732}
- {fileID: 6541409353547558602}
- {fileID: 2907261990866691440}
@@ -6164,6 +6165,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
inputField: {fileID: 9217902013627304316}
chatSystem: {fileID: 0}
channelButtons: []
--- !u!1 &3409671269413610538
GameObject:
m_ObjectHideFlags: 0
@@ -19666,6 +19669,228 @@ MonoBehaviour:
dungbua_btn: {fileID: 2908186165537117892}
tiepnhan_btn: {fileID: 301943439835316595}
kimthannietban_btn: {fileID: 2220236421091412931}
--- !u!1001 &2107942692245909208
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 3233441867675090637}
m_Modifications:
- target: {fileID: 541196262870756845, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_Name
value: prefab_ChatSystemUI
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2445625116770621752, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2445625116770621752, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2445625116770621752, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2445625116770621752, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2445625116770621752, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2445625116770621752, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2818704151482351807, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2818704151482351807, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2818704151482351807, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2818704151482351807, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2818704151482351807, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2818704151482351807, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7236737660974407753, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7236737660974407753, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7236737660974407753, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7236737660974407753, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7236737660974407753, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7236737660974407753, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7768785220414438176, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7768785220414438176, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7768785220414438176, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7768785220414438176, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7768785220414438176, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7768785220414438176, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9191482712609232228, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9191482712609232228, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9191482712609232228, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9191482712609232228, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9191482712609232228, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9191482712609232228, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
--- !u!224 &1617059115409888389 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 806170753671297629, guid: a531b4b63ab8355419f297fe10d32abe, type: 3}
m_PrefabInstance: {fileID: 2107942692245909208}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2710376365430830417
PrefabInstance:
m_ObjectHideFlags: 0
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ebf0f534d5dd4216e684348677df8c7195b2a5ef28c62f43038ce1dc5a24990e
size 319833
oid sha256:58ea56ea9bd1248baed7bc2d59e55ad2d45640e3d603d47b640846610df16ae9
size 319524
@@ -12,6 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b526dcb3716f21e4e815d1c561a7b86b, type: 3}
m_Name: ChatSystemSO
m_EditorClassIdentifier:
selectedSprite: {fileID: 21300000, guid: 18b5af3cc75b7854ab96283de60f301a, type: 3}
unselectedSprite: {fileID: 21300000, guid: 3b5dda180f088234f97e05dd0bf05463, type: 3}
channelIcons:
- channel: 0
iconName:
@@ -33,3 +35,15 @@ MonoBehaviour:
iconName:
icon: {fileID: 21300000, guid: dd1b391834096ea45903ba0bb867cfd8, type: 3}
prefix:
- channel: 1
iconName:
icon: {fileID: 0}
prefix: '!@'
- channel: 7
iconName:
icon: {fileID: 0}
prefix: $
- channel: 12
iconName:
icon: {fileID: 0}
prefix: '!#'
@@ -17,6 +17,10 @@ namespace BrewMonster.Scripts.ChatUI
[CreateAssetMenu(fileName = "ChatSystemSO", menuName = "Scriptable Objects/ChatSystemSO")]
public class ChatSystemSO : ScriptableObject
{
[Header("Button States")]
public Sprite selectedSprite;
public Sprite unselectedSprite;
[Header("Channel Icons")]
public List<ChannelIconMapping> channelIcons = new List<ChannelIconMapping>();
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9dee979d4a90a8640b3dd731816b2656
guid: a531b4b63ab8355419f297fe10d32abe
PrefabImporter:
externalObjects: {}
userData:
@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 1508221814777778566}
- component: {fileID: 5062616109990871891}
m_Layer: 0
m_Name: preFfab_ChatThreadDispatcher
m_Name: prefab_ChatThreadDispatcher
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
+19 -1
View File
@@ -51,6 +51,12 @@ namespace BrewMonster.Scripts.ChatUI
mapping.button.onClick.AddListener(() => OnCommand_speakmode(ch));
}
}
// Select the first button as default if available
if (channelButtons.Count > 0 && channelButtons[0].button != null)
{
OnCommand_speakmode(channelButtons[0].channel);
}
}
// =====================================================
@@ -60,7 +66,19 @@ namespace BrewMonster.Scripts.ChatUI
private void OnCommand_speakmode(ChatChannel channel)
{
if (chatSystem == null) return;
Debug.Log("[CUong] OnCommand_speakmode");
// Update button visual states using sprites from ChatSystemSO
foreach (var mapping in channelButtons)
{
if (mapping.button != null && mapping.button.image != null)
{
if (mapping.channel == channel)
mapping.button.image.sprite = chatSystem.selectedSprite;
else
mapping.button.image.sprite = chatSystem.unselectedSprite;
}
}
var config = chatSystem.channelIcons.Find(c => c.channel == channel);
if (config.prefix != null)
{