Эх сурвалжийг харах

添加剧情对话立绘表情切换

leiyasi 1 жил өмнө
parent
commit
de9f58b641

+ 26 - 0
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -82,11 +82,34 @@ namespace GFGGame
             }
         }
 
+        public static void InitPicFace(string faceValue, GameObject sceneObj)
+        {
+
+            Transform face = sceneObj.transform.Find("Pic/Face");
+            SpriteRenderer sprFace = face.GetComponent<SpriteRenderer>();
+
+            if (faceValue == "0")
+            {
+                SpriteHelper.RemoveSpriteFrom(sprFace);
+            }
+            else
+            {
+                var resPath = ResPathUtil.GetNpcPicFacePath(faceValue);
+                float tx, ty;
+                DressUpUtil.LoadSpritePos(resPath, out tx, out ty);
+                face.localPosition = new Vector3(tx, ty, face.localPosition.z);
+                SpriteHelper.AddSpriteTo(sprFace, resPath);
+            }
+        }
+
         public static async void UpdateDialogPic(string value, GameObject sceneObj)
         {
             StoryDialogDataManager.Instance.waitPicFade = false;
             Transform tf = sceneObj.transform.Find("Pic");
+            Transform face = sceneObj.transform.Find("Pic/Face");
+
             SpriteRenderer spr = tf.GetComponent<SpriteRenderer>();
+            SpriteRenderer sprFace = face.GetComponent<SpriteRenderer>();
             if (value == "0")
             {
                 SpriteHelper.RemoveSpriteFrom(spr);
@@ -98,6 +121,8 @@ namespace GFGGame
                 var resPath = ResPathUtil.GetNpcPicSPath(value);
                 SpriteHelper.AddSpriteTo(spr, resPath);
                 SetSpriteRendererAlpha(spr, 0f);
+                SetSpriteRendererAlpha(sprFace, 0f);
+
                 FairyGUI.Timers.inst.StartCoroutine(UpdateDialogPicAlpha());
 
                 IEnumerator UpdateDialogPicAlpha()
@@ -109,6 +134,7 @@ namespace GFGGame
                             if (spr.enabled && spr.color.a < 1f)
                             {
                                 SetSpriteRendererAlpha(spr, spr.color.a + 0.055f);
+                                SetSpriteRendererAlpha(sprFace, spr.color.a);
                             }
                             else
                             {

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Utils/ResPathUtil.cs

@@ -99,6 +99,10 @@ namespace GFGGame
         {
             return $"{TEXTURE_DIR_PATH}/Npc/PicF/{res}.{extName}";
         }
+        public static string GetNpcPicFacePath(string res, string extName = "png")
+        {
+            return $"{TEXTURE_DIR_PATH}/Npc/Face/{res}.{extName}";
+        }
         public static string GetPhotographBorderPath(string res, string extName = "png")
         {
             return $"{TEXTURE_DIR_PATH}/Photograph/border/{res}.{extName}";

+ 14 - 3
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs

@@ -412,7 +412,8 @@ namespace GFGGame
             _currentStepCfg = storyDialogCfg;
             UpdateMusic(storyDialogCfg.musicRes);
             UpdateBg(storyDialogCfg.bgRes);
-            UpdatePic(storyDialogCfg.picRes);
+            UpdatePic(storyDialogCfg.picRes, storyDialogCfg.faceRes);
+
             UpdateAnim(storyDialogCfg.aniRes);
             UpdateRoleObj(storyDialogCfg.name);
             PlayEffect(storyDialogCfg.effectInfoArr);
@@ -789,9 +790,19 @@ namespace GFGGame
             }
         }
 
-        private void UpdatePic(string value)
+        private void UpdatePic(string value, string faceValue = "")
         {
-            if(value.Length > 0 && !IsTeaParty)
+            if (IsTeaParty)
+            {
+                return;
+            }
+
+            if(faceValue.Length > 0)
+            {
+                SceneController.InitPicFace(faceValue, _sceneObject);
+
+            }
+            if (value.Length > 0)
             {
                 SceneController.UpdateDialogPic(value, _sceneObject);
             }

+ 84 - 1
GameClient/Assets/ResIn/Prefab/SceneStoryDialog.prefab

@@ -1,5 +1,87 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &109721750812359963
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1748059731037593819}
+  - component: {fileID: 9077518316077993297}
+  m_Layer: 0
+  m_Name: Face
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1748059731037593819
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 109721750812359963}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -1}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 838069369391452446}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &9077518316077993297
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 109721750812359963}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: -1
+  m_Sprite: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 7.0429688, y: 24}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 0
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
 --- !u!1 &528899195113673956
 GameObject:
   m_ObjectHideFlags: 0
@@ -27,7 +109,8 @@ Transform:
   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_Children: []
+  m_Children:
+  - {fileID: 1748059731037593819}
   m_Father: {fileID: 8934048990737965464}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}