This commit is contained in:
2026-05-22 15:43:00 +08:00
parent 6f17a740e8
commit de23d47e5f
14 changed files with 669 additions and 135 deletions

View File

@@ -138,7 +138,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 0.8666667, g: 0.8666667, b: 0.8666667, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
@@ -278,6 +278,7 @@ GameObject:
- component: {fileID: 8578167198299745568} - component: {fileID: 8578167198299745568}
- component: {fileID: 2283072067192825429} - component: {fileID: 2283072067192825429}
- component: {fileID: 4659864188715771282} - component: {fileID: 4659864188715771282}
- component: {fileID: 277167752480569161}
m_Layer: 5 m_Layer: 5
m_Name: head m_Name: head
m_TagString: Untagged m_TagString: Untagged
@@ -297,6 +298,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 3407595042178083197}
- {fileID: 6583098500091226361} - {fileID: 6583098500091226361}
m_Father: {fileID: 1172541586542504680} m_Father: {fileID: 1172541586542504680}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -326,7 +328,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0.5773585, g: 0.5773585, b: 0.5773585, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
@@ -343,6 +345,19 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &277167752480569161
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3724836391679180802}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &3927104685246304731 --- !u!1 &3927104685246304731
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -466,6 +481,81 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &5470336073135556210
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3407595042178083197}
- component: {fileID: 7264438505639149867}
- component: {fileID: 8310058327908990675}
m_Layer: 5
m_Name: image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3407595042178083197
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5470336073135556210}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8578167198299745568}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 65, y: -65.00011}
m_SizeDelta: {x: 130, y: 130}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7264438505639149867
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5470336073135556210}
m_CullTransparentMesh: 1
--- !u!114 &8310058327908990675
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5470336073135556210}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7099492436785578618 --- !u!1 &7099492436785578618
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -628,7 +718,7 @@ MonoBehaviour:
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 36 m_FontSize: 36
m_FontStyle: 0 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 3 m_MinSize: 3
m_MaxSize: 45 m_MaxSize: 45

View File

@@ -195,7 +195,7 @@ MonoBehaviour:
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 36 m_FontSize: 36
m_FontStyle: 0 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 3 m_MinSize: 3
m_MaxSize: 45 m_MaxSize: 45
@@ -484,6 +484,7 @@ GameObject:
- component: {fileID: 6933376636627834795} - component: {fileID: 6933376636627834795}
- component: {fileID: 2318122004626110612} - component: {fileID: 2318122004626110612}
- component: {fileID: 4986016918028941434} - component: {fileID: 4986016918028941434}
- component: {fileID: 3301474747404677760}
m_Layer: 5 m_Layer: 5
m_Name: head m_Name: head
m_TagString: Untagged m_TagString: Untagged
@@ -503,6 +504,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 3221156056981819706}
- {fileID: 1230631994026680119} - {fileID: 1230631994026680119}
m_Father: {fileID: 5953434083280990437} m_Father: {fileID: 5953434083280990437}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -532,7 +534,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0.5773585, g: 0.5773585, b: 0.5773585, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1 m_Maskable: 1
@@ -549,6 +551,94 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &3301474747404677760
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5435135501107123937}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &8016321972244379628
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3221156056981819706}
- component: {fileID: 2035679788063579144}
- component: {fileID: 7042379679226754061}
m_Layer: 5
m_Name: image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3221156056981819706
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8016321972244379628}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6933376636627834795}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0.000022888184}
m_SizeDelta: {x: 130, y: 130}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2035679788063579144
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8016321972244379628}
m_CullTransparentMesh: 1
--- !u!114 &7042379679226754061
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8016321972244379628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8604181713600991902 --- !u!1 &8604181713600991902
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -395,6 +395,7 @@ GameObject:
- component: {fileID: 8887327062285558201} - component: {fileID: 8887327062285558201}
- component: {fileID: 2902496937966524777} - component: {fileID: 2902496937966524777}
- component: {fileID: 1097787652342676154} - component: {fileID: 1097787652342676154}
- component: {fileID: 7362776862836057872}
m_Layer: 5 m_Layer: 5
m_Name: headBackground m_Name: headBackground
m_TagString: Untagged m_TagString: Untagged
@@ -414,6 +415,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 3884994733145510378}
- {fileID: 3769175303865599201} - {fileID: 3769175303865599201}
m_Father: {fileID: 4417104378771520476} m_Father: {fileID: 4417104378771520476}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -460,6 +462,19 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &7362776862836057872
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4649353543116731419}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &6014281566611695282 --- !u!1 &6014281566611695282
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -771,6 +786,81 @@ MonoBehaviour:
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: "\u6B63\u5728" m_Text: "\u6B63\u5728"
--- !u!1 &7754788364216921781
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3884994733145510378}
- component: {fileID: 5778376785378425191}
- component: {fileID: 5864991672616927389}
m_Layer: 5
m_Name: image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3884994733145510378
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7754788364216921781}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8887327062285558201}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -0.00003671646}
m_SizeDelta: {x: 130, y: 130}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5778376785378425191
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7754788364216921781}
m_CullTransparentMesh: 1
--- !u!114 &5864991672616927389
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7754788364216921781}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8664299722846729420 --- !u!1 &8664299722846729420
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -1712,7 +1712,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: "\u4F1A\u8BAE\u4E8E 09:08 \u5F00\u59CB\uFF0C14\u4EBA\u5DF2\u52A0\u5165" m_Text: "\u4F1A\u8BAE\u4E8E \u5F00\u59CB\uFF0C \u4EBA\u5DF2\u52A0\u5165"
--- !u!1 &1942370428845520531 --- !u!1 &1942370428845520531
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1724,6 +1724,7 @@ GameObject:
- component: {fileID: 5200304737765287828} - component: {fileID: 5200304737765287828}
- component: {fileID: 8498328807166048965} - component: {fileID: 8498328807166048965}
- component: {fileID: 3904533209184045650} - component: {fileID: 3904533209184045650}
- component: {fileID: 8340203656453690646}
m_Layer: 5 m_Layer: 5
m_Name: head m_Name: head
m_TagString: Untagged m_TagString: Untagged
@@ -1743,6 +1744,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 439837482911909548}
- {fileID: 1471787531825626419} - {fileID: 1471787531825626419}
m_Father: {fileID: 9211908567625755296} m_Father: {fileID: 9211908567625755296}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1789,6 +1791,19 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &8340203656453690646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1942370428845520531}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &2033266804305289895 --- !u!1 &2033266804305289895
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2340,6 +2355,81 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &2190698165949032489
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 439837482911909548}
- component: {fileID: 1653147463548515980}
- component: {fileID: 3171414751946894179}
m_Layer: 5
m_Name: image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &439837482911909548
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2190698165949032489}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5200304737765287828}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -0.000020981}
m_SizeDelta: {x: 170, y: 170}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1653147463548515980
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2190698165949032489}
m_CullTransparentMesh: 1
--- !u!114 &3171414751946894179
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2190698165949032489}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2264130342146108730 --- !u!1 &2264130342146108730
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -6526,7 +6616,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 87.433685, y: 0.0000076293945} m_AnchoredPosition: {x: 78, y: 0.0000076293945}
m_SizeDelta: {x: -555.8952, y: -0.0001} m_SizeDelta: {x: -555.8952, y: -0.0001}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &804287725439565290 --- !u!222 &804287725439565290

View File

@@ -1,5 +1,81 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &1363534644554911328
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2873205547843920620}
- component: {fileID: 9117621723668470873}
- component: {fileID: 6469455435133922022}
m_Layer: 5
m_Name: image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2873205547843920620
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1363534644554911328}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 970763796266574932}
m_Father: {fileID: 2380993827864452011}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -0.00003671646}
m_SizeDelta: {x: 130, y: 130}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9117621723668470873
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1363534644554911328}
m_CullTransparentMesh: 1
--- !u!114 &6469455435133922022
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1363534644554911328}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2114860397395648764 --- !u!1 &2114860397395648764
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -86,6 +162,7 @@ GameObject:
- component: {fileID: 2380993827864452011} - component: {fileID: 2380993827864452011}
- component: {fileID: 4885975967744018774} - component: {fileID: 4885975967744018774}
- component: {fileID: 318755610375601900} - component: {fileID: 318755610375601900}
- component: {fileID: 1975527617288424891}
m_Layer: 5 m_Layer: 5
m_Name: headBackground m_Name: headBackground
m_TagString: Untagged m_TagString: Untagged
@@ -105,6 +182,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 2873205547843920620}
- {fileID: 1847259804296247815} - {fileID: 1847259804296247815}
m_Father: {fileID: 3264101774741044826} m_Father: {fileID: 3264101774741044826}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -151,6 +229,98 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!114 &1975527617288424891
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3274830489741899075}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &3580707571374386923
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 970763796266574932}
- component: {fileID: 4439049319323582392}
- component: {fileID: 8164995925695286065}
m_Layer: 5
m_Name: Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &970763796266574932
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3580707571374386923}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2873205547843920620}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4439049319323582392
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3580707571374386923}
m_CullTransparentMesh: 1
--- !u!114 &8164995925695286065
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3580707571374386923}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 48
m_FontStyle: 1
m_BestFit: 0
m_MinSize: 4
m_MaxSize: 48
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!1 &3597889413607002182 --- !u!1 &3597889413607002182
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -65,7 +65,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_Sprite: {fileID: 21300000, guid: d9625485d797b394986a962fa70dc17b, type: 3} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1

View File

@@ -5712,22 +5712,12 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 765493694211344253, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 979448543686126123, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 979448543686126123, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_Name propertyPath: m_Name
value: MainPanel value: MainPanel
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1201540108501141588, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 979448543686126123, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1875627317724447898, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_IsActive propertyPath: m_IsActive
value: 1 value: 1
@@ -5762,21 +5752,6 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2977466294533182884, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_Color.b
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2977466294533182884, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_Color.g
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2977466294533182884, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_Color.r
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3608820285885576044, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 3608820285885576044, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_Pivot.x propertyPath: m_Pivot.x
@@ -5877,11 +5852,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4432216805467735932, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4595042593999019917, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 4595042593999019917, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_AnchorMax.y propertyPath: m_AnchorMax.y
@@ -5912,16 +5882,6 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4671956458777926765, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5122494875432740167, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6289408088348100223, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 6289408088348100223, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_AnchorMax.y propertyPath: m_AnchorMax.y
@@ -5952,26 +5912,6 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 7147764517796332529, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7147764517796332529, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7147764517796332529, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7147764517796332529, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7853531429736316437, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 7853531429736316437, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_AnchorMax.y propertyPath: m_AnchorMax.y
@@ -6002,24 +5942,9 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8772036016955710174, guid: 11ac2a591441d5940b0b146f6dd3025e, - target: {fileID: 8514402739299761482, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3} type: 3}
propertyPath: m_AnchorMax.y propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8772036016955710174, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8772036016955710174, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8772036016955710174, guid: 11ac2a591441d5940b0b146f6dd3025e,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []

View File

@@ -11,8 +11,8 @@ namespace Script
{ {
public class ContactEntryController : MonoBehaviour, IController public class ContactEntryController : MonoBehaviour, IController
{ {
private Transform _background; private Image _background;
private Transform _backgroundName; private Text _backgroundName;
private GameObject _confirmBtnTime; private GameObject _confirmBtnTime;
private Text _confirmBtnTimeText; private Text _confirmBtnTimeText;
private Button _confirmButton; private Button _confirmButton;
@@ -37,36 +37,24 @@ namespace Script
{ {
_usersItem = item; _usersItem = item;
_meetingContacts = meetingContactsController; _meetingContacts = meetingContactsController;
_background = transform.Find("headBackground/image").GetComponent<Image>();
_backgroundName = transform.Find("headBackground/Name").GetComponent<Text>();
///头像赋值 ///头像赋值
if (string.IsNullOrEmpty(item.avatar)) if (string.IsNullOrEmpty(item.avatar))
{ {
var randomColor = WebRTCUtil.GetRandomColor(); var randomColor = WebRTCUtil.GetRandomColor();
_background = transform.Find("headBackground"); if (_background != null) _background.color = randomColor;
if (_background != null)
{
var image = _background.GetComponent<Image>();
if (image != null) image.color = randomColor;
}
_backgroundName = _background.transform.Find("Name");
if (_backgroundName != null) if (_backgroundName != null)
{ if (!string.IsNullOrEmpty(item.name))
var textComponent = _backgroundName.GetComponent<Text>(); _backgroundName.text = item.name.Substring(0, 1);
if (textComponent != null && !string.IsNullOrEmpty(item.name))
textComponent.text = item.name.Substring(0, 1);
}
} }
else else
{ {
_background = transform.Find("headBackground");
if (_background != null) if (_background != null)
{ if (_background != null)
var imageComponent = _background.GetComponent<Image>(); WebRTCUtil.DownloadAndSetAvatar(item.avatar, _background);
if (imageComponent != null) WebRTCUtil.DownloadAndSetAvatar(item.avatar, imageComponent); if (_backgroundName != null) _backgroundName.text = "";
}
_backgroundName = _background.transform.Find("Name");
if (_backgroundName != null) _backgroundName.GetComponent<Text>().text = "";
} }
if (!string.IsNullOrEmpty(item.name)) if (!string.IsNullOrEmpty(item.name))

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using Script.Util; using Script.Util;
using Stary.Evo; using Stary.Evo;
using Stary.Evo.UIFarme; using Stary.Evo.UIFarme;
using Unity.RenderStreaming;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@@ -61,6 +62,7 @@ namespace Script
public override string UIPath => "Canvas"; public override string UIPath => "Canvas";
public Action<List<UsersItem>> OnUsersChangedEvnent; public Action<List<UsersItem>> OnUsersChangedEvnent;
private Dictionary<UsersItem, GameObject> _userMap = new();
private GameObjectPool _objectPool; private GameObjectPool _objectPool;
@@ -90,8 +92,6 @@ namespace Script
{ {
base.OnEnter(complete); base.OnEnter(complete);
_meetingInfoList.OnEnter(); _meetingInfoList.OnEnter();
;
_titleText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionName(); _titleText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionName();
this.GetSystem<IGlobalConfigSystem>().StartConnectionTime(_timeText); this.GetSystem<IGlobalConfigSystem>().StartConnectionTime(_timeText);
_idText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionId(); _idText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionId();
@@ -100,15 +100,14 @@ namespace Script
_contactsTog.onValueChanged.AddListener(OnContactsTog); _contactsTog.onValueChanged.AddListener(OnContactsTog);
_meetingOrganizersTog.onValueChanged.AddListener(OnMeetingOrganizersTog); _meetingOrganizersTog.onValueChanged.AddListener(OnMeetingOrganizersTog);
OnUsersChangedEvnent += OnUsersChanged; OnUsersChangedEvnent += OnUsersChanged;
GameObject.FindObjectOfType<HostConnection>().OnParticipantDisconnected += OnUsersChangedDisconnected;
} }
public override void OnExit(float delay = 0) public override void OnExit(float delay = 0)
{ {
base.OnExit(delay); base.OnExit(delay);
_meetingContacts.OnExit();
_meetingInfoList.OnExit(); _meetingInfoList.OnExit();
_meetingChat.OnExit();
_arrowLeft.onClick.RemoveListener(OnArrowLeftClick); _arrowLeft.onClick.RemoveListener(OnArrowLeftClick);
_chatTog.onValueChanged.RemoveListener(OnChatTog); _chatTog.onValueChanged.RemoveListener(OnChatTog);
_contactsTog.onValueChanged.RemoveListener(OnContactsTog); _contactsTog.onValueChanged.RemoveListener(OnContactsTog);
@@ -118,20 +117,44 @@ namespace Script
private async void OnUsersChanged(List<UsersItem> obj) private async void OnUsersChanged(List<UsersItem> obj)
{ {
for (var i = 0; i < _objectPool.transform.childCount; i++) foreach (var user in _userMap) _objectPool.Release(user.Value.gameObject);
_objectPool.Release(_objectPool.transform.GetChild(i).gameObject);
_userMap.Clear();
_roomPeopleNumText.text = obj.Count.ToString(); _roomPeopleNumText.text = obj.Count.ToString();
for (var i = 0; i < obj.Count; i++) for (var i = 0; i < obj.Count; i++)
{ {
if (i > 4) break;
var entry = _objectPool.Get(); var entry = _objectPool.Get();
await WebRTCUtil.DownloadAndSetAvatar(obj[i].avatar, await WebRTCUtil.DownloadAndSetAvatar(obj[i].avatar,
entry.transform.Find("image").GetComponent<Image>()); entry.transform.Find("image").GetComponent<Image>());
_userMap.TryAdd(obj[i], entry);
} }
// 更新会议聊天面板人数 // 更新会议聊天面板人数
_meetingChat.OnUserCountChangedEvent?.Invoke(obj.Count); _meetingChat.OnUserCountChangedEvent?.Invoke(obj.Count);
} }
private void OnUsersChangedDisconnected(string obj)
{
UsersItem usersItem = null;
foreach (var item in _userMap.Keys)
if (item.participantId == obj)
{
usersItem = item;
break;
}
if (usersItem != null)
if (_userMap.TryGetValue(usersItem, out var entry))
{
_objectPool.Release(entry);
_userMap.Remove(usersItem);
}
_roomPeopleNumText.text = _userMap.Count.ToString();
_meetingChat.OnUserCountChangedEvent?.Invoke(_userMap.Count);
}
private void OnMeetingOrganizersTog(bool value) private void OnMeetingOrganizersTog(bool value)
{ {
_meetingInfoList.PanelGo.SetActive(value); _meetingInfoList.PanelGo.SetActive(value);
@@ -140,13 +163,15 @@ namespace Script
private void OnContactsTog(bool value) private void OnContactsTog(bool value)
{ {
_meetingContacts.PanelGo.SetActive(value); _meetingContacts.PanelGo.SetActive(value);
if (value) _meetingContacts.OnEnter(); if (value)
_meetingContacts.OnEnter();
} }
private void OnChatTog(bool value) private void OnChatTog(bool value)
{ {
_meetingChat.PanelGo.SetActive(value); _meetingChat.PanelGo.SetActive(value);
if (value) _meetingChat.OnEnter(); if (value)
_meetingChat.OnEnter();
} }
private void OnArrowLeftClick() private void OnArrowLeftClick()
@@ -156,6 +181,8 @@ namespace Script
public override void OnDestroy() public override void OnDestroy()
{ {
base.OnDestroy(); base.OnDestroy();
_meetingChat.OnDestroy();
_meetingContacts.OnDestroy();
} }
[Serializable] [Serializable]

View File

@@ -26,31 +26,58 @@ namespace Script
private List<ChatData> _chatDatas = new(); private List<ChatData> _chatDatas = new();
private InputField _messageInput;
private Button _sendButton;
public void Initialize(GameObject panelGo, MainPanel mainPanel) public void Initialize(GameObject panelGo, MainPanel mainPanel)
{ {
PanelGo = panelGo; PanelGo = panelGo;
_mainPanel = mainPanel; _mainPanel = mainPanel;
_content = panelGo.transform.Find("MeetingGrid/Viewport/Content"); _content = panelGo.transform.Find("MeetingGrid/Viewport/Content");
_objectRightPool = panelGo.transform.Find("MeetingGrid/LeftPool").GetComponent<GameObjectPool>(); _objectLeftPool = panelGo.transform.Find("MeetingGrid/LeftPool").GetComponent<GameObjectPool>();
_objectLeftPool = panelGo.transform.Find("MeetingGrid/RightPool").GetComponent<GameObjectPool>(); _objectRightPool = panelGo.transform.Find("MeetingGrid/RightPool").GetComponent<GameObjectPool>();
_connectionTimeText = panelGo.transform.Find("MeetingNum/Time").GetComponent<Text>(); _connectionTimeText = panelGo.transform.Find("MeetingNum/Time").GetComponent<Text>();
_connectionTimeText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionStartTime();
_userCountText = panelGo.transform.Find("MeetingNum/Num").GetComponent<Text>(); _userCountText = panelGo.transform.Find("MeetingNum/Num").GetComponent<Text>();
_userCountText.text = this.GetSystem<IGlobalConfigSystem>().GetUserCount().ToString();
}
public async void OnEnter() _messageInput = panelGo.transform.Find("MettingSend/InputField").GetComponent<InputField>();
{ _sendButton = panelGo.transform.Find("MettingSend/SendBtn").GetComponent<Button>();
_sendButton.onClick.AddListener(OnSendButtonClick);
OnUserCountChangedEvent += OnUserCountChanged; OnUserCountChangedEvent += OnUserCountChanged;
GameObject.FindObjectOfType<MessageChannel>().OnChatMessageReceived += OnChatMessageReceivedEvent; GameObject.FindObjectOfType<MessageChannel>().OnChatMessageReceived += OnChatMessageReceivedEvent;
} }
public async void OnExit()
public async void OnEnter()
{
_connectionTimeText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionStartTime();
_userCountText.text = this.GetSystem<IGlobalConfigSystem>().GetUserCount().ToString();
}
public async void OnDestroy()
{ {
OnUserCountChangedEvent -= OnUserCountChanged; OnUserCountChangedEvent -= OnUserCountChanged;
GameObject.FindObjectOfType<MessageChannel>().OnChatMessageReceived -= OnChatMessageReceivedEvent; GameObject.FindObjectOfType<MessageChannel>().OnChatMessageReceived -= OnChatMessageReceivedEvent;
_objectRightPool.AllRelease();
_objectLeftPool.AllRelease();
}
private void OnSendButtonClick()
{
if (string.IsNullOrEmpty(_messageInput.text)) return;
var chatData = new ChatData
{
id = "msg_" + Guid.NewGuid().ToString(),
senderId = this.GetSystem<IGlobalConfigSystem>().GetUserId(),
senderName = this.GetSystem<IGlobalConfigSystem>().GetConnectionName(),
senderAvatar = $"{this.GetSystem<IGlobalConfigSystem>().IP}/images/head/" +
$"{this.GetSystem<IGlobalConfigSystem>().GetConnectionTexture()}.png",
type = "text",
content = _messageInput.text,
isSelf = "true",
timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
};
GameObject.FindObjectOfType<MessageChannel>().SendMessage<ChatData>(_messageInput.text, chatData);
_messageInput.text = "";
} }
private void OnChatMessageReceivedEvent(string connectionId, ChatData data) private void OnChatMessageReceivedEvent(string connectionId, ChatData data)
@@ -66,7 +93,7 @@ namespace Script
private void SetMessageEntry(ChatData data, GameObject entry) private void SetMessageEntry(ChatData data, GameObject entry)
{ {
var head = entry.transform.Find("head"); var head = entry.transform.Find("head/image");
var name = entry.transform.Find("name"); var name = entry.transform.Find("name");
var message = entry.transform.Find("message"); var message = entry.transform.Find("message");
var sprite = entry.transform.Find("sprite"); var sprite = entry.transform.Find("sprite");
@@ -89,11 +116,15 @@ namespace Script
message.GetComponent<Text>().text = data.content; message.GetComponent<Text>().text = data.content;
sprite.gameObject.SetActive(false); sprite.gameObject.SetActive(false);
} }
else if (data.type == "image") else if (data.type == "file")
{ {
message.gameObject.SetActive(false); message.gameObject.SetActive(false);
sprite.gameObject.SetActive(true); sprite.gameObject.SetActive(true);
//TODO 图片传输功能 //TODO 图片传输功能
if (WebRTCUtil.TryDecodeDataUrlToTexture(data.content, out var texture))
sprite.GetComponent<Image>().sprite = Sprite.Create(texture,
new Rect(0, 0, texture.width, texture.height),
Vector2.one);
} }
} }

View File

@@ -65,7 +65,7 @@ namespace Script
_confirmButton = _confirmingPop.transform.Find("bg/invite").GetComponent<Button>(); _confirmButton = _confirmingPop.transform.Find("bg/invite").GetComponent<Button>();
_cancelButton = _confirmingPop.transform.Find("bg/cancel").GetComponent<Button>(); _cancelButton = _confirmingPop.transform.Find("bg/cancel").GetComponent<Button>();
_avatarImage = _confirmingPop.transform.Find("ParticipantEntry/head").GetComponent<Image>(); _avatarImage = _confirmingPop.transform.Find("ParticipantEntry/head/image").GetComponent<Image>();
_nameText = _confirmingPop.transform.Find("ParticipantEntry/Name").GetComponent<Text>(); _nameText = _confirmingPop.transform.Find("ParticipantEntry/Name").GetComponent<Text>();
_messageText = _confirmingPop.transform.Find("ParticipantEntry/Message").GetComponent<Text>(); _messageText = _confirmingPop.transform.Find("ParticipantEntry/Message").GetComponent<Text>();
@@ -94,8 +94,9 @@ namespace Script
} }
public void OnExit() public void OnDestroy()
{ {
_objectPool.AllRelease();
} }
public void ClickContactEntry(Sprite avatarImage, string name, MainPanel.UsersItem item) public void ClickContactEntry(Sprite avatarImage, string name, MainPanel.UsersItem item)
@@ -106,7 +107,7 @@ namespace Script
_idText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionId(); _idText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionId();
_avatarImage.sprite = avatarImage; _avatarImage.sprite = avatarImage;
var avatarName = _avatarImage.transform.Find("Name").GetComponent<Text>(); var avatarName = _confirmingPop.transform.Find("ParticipantEntry/head/Name").GetComponent<Text>();
avatarName.text = name; avatarName.text = name;
_nameText.text = item.name; _nameText.text = item.name;
_messageText.text = item.userId; _messageText.text = item.userId;

View File

@@ -123,8 +123,8 @@ namespace Script
{ {
var transform = entry.transform; var transform = entry.transform;
///头像赋值 ///头像赋值
var background = transform.Find("headBackground"); var background = transform.Find("headBackground/image");
var backgroundName = background.transform.Find("Name"); var backgroundName = transform.Find("headBackground/Name");
if (string.IsNullOrEmpty(item.avatar)) if (string.IsNullOrEmpty(item.avatar))
{ {
var randomColor = WebRTCUtil.GetRandomColor(); var randomColor = WebRTCUtil.GetRandomColor();
@@ -145,7 +145,6 @@ namespace Script
} }
else else
{ {
background = transform.Find("headBackground");
if (background != null) if (background != null)
{ {
var imageComponent = background.GetComponent<Image>(); var imageComponent = background.GetComponent<Image>();
@@ -228,6 +227,11 @@ namespace Script
GameObject.FindObjectOfType<HostConnection>().OnParticipantDisconnected -= OnParticipantDisconnected; GameObject.FindObjectOfType<HostConnection>().OnParticipantDisconnected -= OnParticipantDisconnected;
} }
public void Destroy()
{
_objectPool.AllRelease();
}
public class MessageRecordInfo public class MessageRecordInfo
{ {
public MainPanel.UsersItem item; public MainPanel.UsersItem item;

View File

@@ -34,4 +34,10 @@ public class GameObjectPool : MonoBehaviour
go.transform.SetParent(transform, false); go.transform.SetParent(transform, false);
_pool.Push(go); _pool.Push(go);
} }
public void AllRelease()
{
foreach (var go in _pool) Destroy(go);
_pool.Clear();
}
} }

View File

@@ -55,5 +55,27 @@ namespace Script.Util
Debug.LogError($"下载头像失败: {e.Message}"); Debug.LogError($"下载头像失败: {e.Message}");
} }
} }
/// <summary>
/// 尝试将dataUrl解码为Texture2D
/// </summary>
/// <param name="dataUrl"></param>
/// <param name="tex"></param>
/// <returns></returns>
public static bool TryDecodeDataUrlToTexture(string dataUrl, out Texture2D tex)
{
tex = null;
if (string.IsNullOrEmpty(dataUrl)) return false;
if (!dataUrl.StartsWith("data:image/")) return false;
var comma = dataUrl.IndexOf(',');
if (comma < 0) return false;
var b64 = dataUrl.Substring(comma + 1);
var bytes = Convert.FromBase64String(b64);
tex = new Texture2D(2, 2, TextureFormat.RGBA32, false);
return tex.LoadImage(bytes);
}
} }
} }