diff --git a/ProjectNLD/Assets/Art/UI/Prefab/Story/UIStoryMain.prefab b/ProjectNLD/Assets/Art/UI/Prefab/Story/UIStoryMain.prefab index d6abcd04c6f..cc0fd33de43 100644 --- a/ProjectNLD/Assets/Art/UI/Prefab/Story/UIStoryMain.prefab +++ b/ProjectNLD/Assets/Art/UI/Prefab/Story/UIStoryMain.prefab @@ -931,6 +931,141 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1469755926660902031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2860731738009002383} + - component: {fileID: 6418384612788494581} + - component: {fileID: 2340647538464592145} + m_Layer: 5 + m_Name: TextName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2860731738009002383 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1469755926660902031} + 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: 2033753882560062487} + 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: -57, y: 88} + m_SizeDelta: {x: 450, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6418384612788494581 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1469755926660902031} + m_CullTransparentMesh: 1 +--- !u!114 &2340647538464592145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1469755926660902031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u7231\u83B2\u5A1C" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: d996718f19de68245bc356be2938e063, type: 2} + m_sharedMaterial: {fileID: -8559898196655864114, guid: d996718f19de68245bc356be2938e063, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 42 + m_fontSizeBase: 42 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &1475585034609502626 GameObject: m_ObjectHideFlags: 0 @@ -2581,6 +2716,83 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &3796025545843457487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2033753882560062487} + - component: {fileID: 5148629855088998007} + - component: {fileID: 5665633161972886088} + m_Layer: 5 + m_Name: Image_TalkBubble_Temp + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2033753882560062487 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3796025545843457487} + 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: 2860731738009002383} + - {fileID: 7331808329746763499} + m_Father: {fileID: 2302059427182932267} + 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} + m_SizeDelta: {x: 666, y: 325} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5148629855088998007 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3796025545843457487} + m_CullTransparentMesh: 1 +--- !u!114 &5665633161972886088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3796025545843457487} + 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: 21300000, guid: 83e86a9afecfed046996f38a807a8cd8, type: 3} + 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 &3991579420392655136 GameObject: m_ObjectHideFlags: 0 @@ -2996,6 +3208,141 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4520388352147286699 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7331808329746763499} + - component: {fileID: 7799218597793338592} + - component: {fileID: 303393358648275421} + m_Layer: 5 + m_Name: TextContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7331808329746763499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4520388352147286699} + 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: 2033753882560062487} + 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: -6, y: -37} + m_SizeDelta: {x: 550, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7799218597793338592 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4520388352147286699} + m_CullTransparentMesh: 1 +--- !u!114 &303393358648275421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4520388352147286699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u6D4B\u8BD5\u5B57\u4F53\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\uFF01\n\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u554A\u54C8\uFF01" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: d996718f19de68245bc356be2938e063, type: 2} + m_sharedMaterial: {fileID: -8559898196655864114, guid: d996718f19de68245bc356be2938e063, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &4987069716597858098 GameObject: m_ObjectHideFlags: 0 @@ -3193,6 +3540,8 @@ GameObject: - component: {fileID: 2206581868767613941} - component: {fileID: 4690445720608853069} - component: {fileID: 4867117239906988904} + - component: {fileID: 7695404118532210937} + - component: {fileID: 2990696402303823139} m_Layer: 5 m_Name: Image_TalkBubble m_TagString: Untagged @@ -3219,7 +3568,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 666, y: 325} + m_SizeDelta: {x: 666, y: 245} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4690445720608853069 CanvasRenderer: @@ -3250,7 +3599,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_Sprite: {fileID: 21300000, guid: 83e86a9afecfed046996f38a807a8cd8, type: 3} - m_Type: 0 + m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -3259,6 +3608,46 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7695404118532210937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5167920055620470441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 51 + m_Right: 0 + m_Top: 49 + m_Bottom: 50 + m_ChildAlignment: 0 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &2990696402303823139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5167920055620470441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &5458646378593024740 GameObject: m_ObjectHideFlags: 0 @@ -3291,9 +3680,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 2206581868767613941} 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: -57, y: 88} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 276, y: -74} m_SizeDelta: {x: 450, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1009785222583772209 @@ -5829,6 +6218,7 @@ GameObject: - component: {fileID: 456174540843484769} - component: {fileID: 3881795603619989684} - component: {fileID: 5711817054934293086} + - component: {fileID: 6568463466929262540} m_Layer: 5 m_Name: TextContent m_TagString: Untagged @@ -5850,11 +6240,11 @@ RectTransform: m_Children: [] m_Father: {fileID: 2206581868767613941} 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: -6, y: -37} - m_SizeDelta: {x: 550, y: 150} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 51, y: -126.995} + m_SizeDelta: {x: 550, y: 60.01} + m_Pivot: {x: 0, y: 1} --- !u!222 &3881795603619989684 CanvasRenderer: m_ObjectHideFlags: 0 @@ -5883,7 +6273,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "\u6D4B\u8BD5\u5B57\u4F53\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\uFF01\n\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u554A\u54C8\uFF01" + m_text: "\u6D4B\u8BD5\u5B57\u4F53\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\uFF01\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u54C8\u554A\u54C8\uFF01" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: d996718f19de68245bc356be2938e063, type: 2} m_sharedMaterial: {fileID: -8559898196655864114, guid: d996718f19de68245bc356be2938e063, @@ -5953,6 +6343,20 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &6568463466929262540 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8256823080965662807} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &8336706757057906441 GameObject: m_ObjectHideFlags: 0 @@ -6379,6 +6783,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2206581868767613941} + - {fileID: 2033753882560062487} - {fileID: 8159813512205391015} - {fileID: 6104782591014005104} - {fileID: 109264313758130537} diff --git a/ProjectNLD/Assets/Art/UI/Texture/UI_Pic_Plot/UI_TalkBubble.png.meta b/ProjectNLD/Assets/Art/UI/Texture/UI_Pic_Plot/UI_TalkBubble.png.meta index 439ef89a249..128c4dc54aa 100644 --- a/ProjectNLD/Assets/Art/UI/Texture/UI_Pic_Plot/UI_TalkBubble.png.meta +++ b/ProjectNLD/Assets/Art/UI/Texture/UI_Pic_Plot/UI_TalkBubble.png.meta @@ -49,7 +49,7 @@ TextureImporter: alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteBorder: {x: 0, y: 109, z: 0, w: 136} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 @@ -139,7 +139,7 @@ TextureImporter: physicsShape: [] bones: [] spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 + internalID: 1537655665 vertices: [] indices: edges: [] diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs index b9c16b53626..8b07348547d 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs @@ -569,7 +569,10 @@ public class TeamManager { if (LevelManager.Instance.CurrentLevel.IsInBattle()) { - return GameUnitMapper.Inst.GetUnitById(uid).gameunitType == EGameUnitType.Character; + if (IsInLevel(uid) || !m_allCharactersMap.ContainsKey(uid)) + { + return GameUnitMapper.Inst.GetUnitById(uid).gameunitType == EGameUnitType.Character; + } } return GetUnitType(uid) == SingleTeamCharacterInfo.CharacType.Hero; } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Story/UIStoryMainController.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Story/UIStoryMainController.cs index b0c206e90e8..38cd130009b 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Story/UIStoryMainController.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/Story/UIStoryMainController.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using Cysharp.Threading.Tasks; using Framework; using Gameplay.Story; using Gameplay.Story.Cmp.Data; @@ -9,12 +10,12 @@ using Gameplay.Story.Cmp.Timeline.UIModChangeAction; using PhxhSDK; using TMPro; using UnityEngine; -using UnityEngine.UI; -using UnityEngine.UIElements; using Utils; using Button = UnityEngine.UI.Button; using Image = UnityEngine.UI.Image; using ScrollView = AillieoUtils.ScrollView; +using DG.Tweening; +using UnityEngine.UI; public class UIStoryMainController : UIWindow { @@ -65,12 +66,13 @@ public class UIStoryMainController : UIWindow private Dictionary _bubblePool; //不用的对话框对象池 private Dictionary _dispBubblePool; //正在展示的对话框对象池 private List _cgPool; //CG图片池 + private Dictionary _playingDic; //播放状态 private bool _isAuto; private bool _isSkipping; private EDOpenChoiceData _openData; //打开对话选项传入Data private int _selectIdx; //剧情分支选择Index - private List _talkLogs; //剧情记录 + private List _talkLogs; //剧情记录 private Dictionary _curBlockTalkDic; //当前每个角色对话内容缓存 private string _curBlock2DTalk; //2D模式下对话缓存 private int _cur2DTalkPlayerId; //2D模式下说话人缓存 @@ -81,6 +83,10 @@ public class UIStoryMainController : UIWindow public string msg; } + private float _offsetX = -2.09f; + private float _offsetY = 5.17f; + private float _offsetZ = 0.83f; + // Use this for initialization public override void OnAwake() { @@ -100,6 +106,7 @@ public class UIStoryMainController : UIWindow _dispBubblePool = new Dictionary(); _bubblePool = new Dictionary(); _cgPool = new List(); + _playingDic = new Dictionary(); BindButtons(); StoryManager.instance.uiManager.LoadUIMainStory(this); @@ -123,6 +130,9 @@ public class UIStoryMainController : UIWindow var player = StoryManager.instance.playerManager.playerDict[playerId]; var go = player.rootObj; var playerPos = go.transform.position; + // playerPos.x += _offsetX; + // playerPos.y += _offsetY; + // playerPos.z += _offsetZ; var pos = UIUtils.WorldPos2ScreenPos(playerPos, CameraManager.Instance.MainCamera); pos = UIUtils.ScreenPos2WorldPos(pos, CameraManager.Instance.UICamera); @@ -180,6 +190,7 @@ public class UIStoryMainController : UIWindow { _talkLogs.Clear(); _curBlockTalkDic.Clear(); + _playingDic.Clear(); ReleaseBubbles(); ReleaseCgImg(); } @@ -386,18 +397,20 @@ public class UIStoryMainController : UIWindow return; } var player = GetPlayerById(talkData.playerId); - ShowPlayerTalk(talkData.playerId, player.playerName, talkData.talkMsg); DoEnableBubbleObj(talkData.playerId); + ShowPlayerTalk(talkData.playerId, player.playerName, talkData.talkMsg); _talkLogs.Add(new LogData(){name = player.playerName, msg = talkData.talkMsg}); } - private void ShowPlayerTalk(int playerId, string charName, string content) + private async void ShowPlayerTalk(int playerId, string charName, string content) { var go = GetBubbleObj(playerId); var txtName = CommonUtils.GetComponent(go, "TextName"); var txtContent = CommonUtils.GetComponent(go, "TextContent"); txtName.text = charName; txtContent.text = StringManager.GetStoryTalkText(content); + txtContent.ForceMeshUpdate(); + await DoTyperText(txtContent, 100); } //检测是否旁白 @@ -577,7 +590,45 @@ public class UIStoryMainController : UIWindow } return _curBlock2DTalk == content; } - + + private async UniTask DoTyperText(TMP_Text tmpText, int waitTime) + { + var textInfo = tmpText.textInfo; + for (int i = 0; i < textInfo.materialCount; ++i) + { + textInfo.meshInfo[i].Clear(); + } + tmpText.UpdateVertexData(TMP_VertexDataUpdateFlags.Vertices); + + for (int i = 0; i < textInfo.characterCount; ++i) + { + await UniTask.Delay(waitTime); + + TMP_CharacterInfo characterInfo = textInfo.characterInfo[i]; + + int materialIndex = characterInfo.materialReferenceIndex; + int verticeIndex = characterInfo.vertexIndex; + if (characterInfo.elementType == TMPro.TMP_TextElementType.Sprite) + { + verticeIndex = characterInfo.spriteIndex; + } + + if (characterInfo.isVisible) + { + textInfo.meshInfo[materialIndex].vertices[0 + verticeIndex] = characterInfo.vertex_BL.position; + textInfo.meshInfo[materialIndex].vertices[1 + verticeIndex] = characterInfo.vertex_TL.position; + textInfo.meshInfo[materialIndex].vertices[2 + verticeIndex] = characterInfo.vertex_TR.position; + textInfo.meshInfo[materialIndex].vertices[3 + verticeIndex] = characterInfo.vertex_BR.position; + tmpText.UpdateVertexData(TMPro.TMP_VertexDataUpdateFlags.Vertices); + } + } + } + + //打印单个字 + private void TypeChar(string c, float deltaTime) + { + + } /***********/ //剧情对话记录 @@ -635,11 +686,20 @@ public class UIStoryMainController : UIWindow //监听事件 private void OnBlockEnd() { - + foreach (var bubble in _dispBubblePool) + { + CompleteBubble(bubble.Key, bubble.Value); + } } private void OnBlockStart() { HideAllEnableBubble(); } + + void CompleteBubble(int playerId, GameObject go) + { + var txtContent = CommonUtils.GetComponent(go, "TextContent"); + txtContent.text = _curBlockTalkDic[playerId]; + } }