zhaoyang 2 жил өмнө
parent
commit
29f64cefa4

+ 2 - 20
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -229,10 +229,7 @@ namespace GFGGame
             TryRemoveAnimationObj(parentObj, aniObjName);
             string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
             GameObject gameObject = AddSpriteObj(res, ext, spritObjName, parentObj, sortingOrder, needSetMask);
-            // if (itemCfg.subType == (int)ConstDressUpItemType.BEI_JING)
-            // {
-            //     gameObject.layer = LayerMask.NameToLayer("Bg"); ;
-            // }
+
             if (itemCfg.isAni > 0 && showAni)
             {
                 AddAnimationObj(res, aniObjName, parentObj, sortingOrder);
@@ -449,22 +446,7 @@ namespace GFGGame
 
         public static NTexture GetPrintscreenNTexture(Camera camera)
         {
-            // Rect rect = new Rect(0, 0, UnityEngine.Screen.width, UnityEngine.Screen.height);
-            // RenderTexture render = new RenderTexture((int)rect.width, (int)rect.height, -1);//创建一个RenderTexture对象 
-
-            // // camera.gameObject.SetActive(true);//启用截图相机
-            // camera.targetTexture = render;//设置截图相机的targetTexture为render
-            // camera.Render();//手动开启截图相机的渲染
-
-            // RenderTexture.active = render;//激活RenderTexture
-            // Texture2D tex = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.ARGB32, false);//新建一个Texture2D对象
-            // tex.ReadPixels(rect, 0, 0);//读取像素
-            // tex.Apply();//保存像素信息
-
-            // camera.targetTexture = null;//重置截图相机的targetTexture
-            // RenderTexture.active = null;//关闭RenderTexture的激活状态
-            // Object.Destroy(render);//删除RenderTexture对象
-            // camera.gameObject.SetActive(true);
+
             RenderTexture rt = new RenderTexture(UnityEngine.Screen.width, UnityEngine.Screen.height, 0);//渲染一张1920*1080的图
             camera.targetTexture = rt;//传到主摄像机上
             camera.Render();//渲染

+ 31 - 11
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 using System.Collections.Generic;
 using System;
 using ET;
+using System.Collections;
 
 namespace GFGGame
 {
@@ -109,7 +110,7 @@ namespace GFGGame
         protected override void AddEventListener()
         {
             base.AddEventListener();
-            EventAgent.AddEventListener(ConstMessage.CARD_CHOOSE, StartCalculateScore);
+            EventAgent.AddEventListener(ConstMessage.CARD_CHOOSE, OnClickBtnPhotograph);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort);
             EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdatePartsListSort);
             EventAgent.AddEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
@@ -207,7 +208,7 @@ namespace GFGGame
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
-            EventAgent.RemoveEventListener(ConstMessage.CARD_CHOOSE, StartCalculateScore);
+            EventAgent.RemoveEventListener(ConstMessage.CARD_CHOOSE, OnClickBtnPhotograph);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdatePartsListSort);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
@@ -412,9 +413,35 @@ namespace GFGGame
             }
             else
             {
-                StartCalculateScore();
+                OnClickBtnPhotograph();
             }
         }
+
+        private void OnClickBtnPhotograph()
+        {
+            Timers.inst.StartCoroutine(ScreenShotTex());
+        }
+        private IEnumerator ScreenShotTex()
+        {
+            ItemCfg bgItemCfg = ItemCfgArray.Instance.GetCfg(EquipDataCache.cacher.bgId);
+            string bgName = string.Format(DressUpUtil.FORMAT_SPRITE_NAME, bgItemCfg.subType, 1);
+            GameObject bg = _sceneObject.transform.Find(bgName).gameObject;
+            bg.SetActive(false);
+
+            GRoot.inst.visible = false;
+            yield return new WaitForEndOfFrame();
+
+            Rect rect = new Rect(0, 0, UnityEngine.Screen.width, UnityEngine.Screen.height);
+            Texture2D tex = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.ARGB32, false);//新建一个Texture2D对象
+            tex.ReadPixels(rect, 0, 0);//读取像素,屏幕左下角为0点
+            tex.Apply();//保存像素信息
+            
+            EquipDataCache.cacher.nTexture = new NTexture(tex);
+            GRoot.inst.visible = true;
+            bg.SetActive(true);
+
+            StartCalculateScore();
+        }
         private void StartCalculateScore()
         {
             //不可移动代码位置
@@ -427,13 +454,7 @@ namespace GFGGame
                 FieldFightDataManager.Instance.equipDatas = EquipDataCache.cacher.equipDatas;
             }
 
-            ItemCfg bgItemCfg = ItemCfgArray.Instance.GetCfg(EquipDataCache.cacher.bgId);
-            string bgName = string.Format(DressUpUtil.FORMAT_SPRITE_NAME, bgItemCfg.subType, 1);
-            GameObject bg = _sceneObject.transform.Find(bgName).gameObject;
-            bg.SetActive(false);
-            // Camera camera = _sceneObject.transform.Find("Camera").gameObject.GetComponent<Camera>();
-            EquipDataCache.cacher.nTexture = DressUpUtil.GetPrintscreenNTexture(Camera.main);
-            bg.SetActive(true);
+
             if (hasFightTarget)
             {
                 ViewManager.Show(ViewName.STORY_FIGHT_TARGET_VIEW);
@@ -445,7 +466,6 @@ namespace GFGGame
             this.Hide();
 
         }
-
         private void OnClickBtnRecommend()
         {
             if (this.currentListType == DressUpListType.List4)