From f79f61b93d8061d89dde18063526e417ffc409d2 Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Tue, 27 Oct 2020 13:54:15 +0800
Subject: [PATCH] 简单修改新手引导

---
 Assets/Scripts/Guide/ImageFire1.cs                   |    1 
 Assets/Scenes/TestGuide.unity                        |    8 +-
 Assets/Scripts/Guide/ImageFire2.cs                   |    1 
 Assets/Materials/Guide/RectGuidance.mat              |    8 +-
 Assets/Scripts/Guide/ImageSkill.cs                   |    1 
 Assets/Resources/UI/Guide/GuidePanel.prefab          |    6 +-
 Assets/Scripts/Guide/GuidePanel.cs                   |   53 +++++++++++------
 Assets/Scripts/Guide/Mask/RectGuidance.cs            |   35 ++++++++++-
 Assets/Resources/GuideFile/RectGuidance_Panel.prefab |    8 +-
 9 files changed, 86 insertions(+), 35 deletions(-)

diff --git a/Assets/Materials/Guide/RectGuidance.mat b/Assets/Materials/Guide/RectGuidance.mat
index dfc68a1..c945fc2 100644
--- a/Assets/Materials/Guide/RectGuidance.mat
+++ b/Assets/Materials/Guide/RectGuidance.mat
@@ -69,8 +69,8 @@
     - _OcclusionStrength: 1
     - _Parallax: 0.02
     - _Slider: 81.39478
-    - _SliderX: 75.22463
-    - _SliderY: 80.22465
+    - _SliderX: 189
+    - _SliderY: 73.5
     - _SmoothnessTextureChannel: 0
     - _SpecularHighlights: 1
     - _SrcBlend: 1
@@ -83,7 +83,7 @@
     - _UseUIAlphaClip: 0
     - _ZWrite: 1
     m_Colors:
-    - _Center: {r: 6, g: -198, b: 0, a: 0}
+    - _Center: {r: -3, g: -862, b: 0, a: 0}
     - _Color: {r: 1, g: 1, b: 1, a: 1}
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
-  m_BuildTextureStacks: []
\ No newline at end of file
+  m_BuildTextureStacks: []
diff --git a/Assets/Resources/GuideFile/RectGuidance_Panel.prefab b/Assets/Resources/GuideFile/RectGuidance_Panel.prefab
index 0809b70..d713131 100644
--- a/Assets/Resources/GuideFile/RectGuidance_Panel.prefab
+++ b/Assets/Resources/GuideFile/RectGuidance_Panel.prefab
@@ -60,13 +60,15 @@
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 2100000, guid: e5315acd3858d324c92f6c66846963b7, type: 2}
-  m_Color: {r: 0, g: 0, b: 0, a: 0.392}
+  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: 10907, guid: 0000000000000000f000000000000000, type: 0}
-  m_Type: 1
+  m_Sprite: {fileID: 21300000, guid: 7545f6da4eda5274396e5021d128679d, type: 3}
+  m_Type: 0
   m_PreserveAspect: 0
   m_FillCenter: 1
   m_FillMethod: 4
diff --git a/Assets/Resources/UI/Guide/GuidePanel.prefab b/Assets/Resources/UI/Guide/GuidePanel.prefab
index da516eb..13fe9bf 100644
--- a/Assets/Resources/UI/Guide/GuidePanel.prefab
+++ b/Assets/Resources/UI/Guide/GuidePanel.prefab
@@ -496,7 +496,7 @@
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 171.39998, y: -637.90015}
+  m_AnchoredPosition: {x: 171.39996, y: -637.90015}
   m_SizeDelta: {x: -586.65216, y: -1768.8896}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7524990171873018580
@@ -626,7 +626,7 @@
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
   m_RaycastTarget: 1
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
@@ -2010,7 +2010,7 @@
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 8765142430134729489}
-  m_Enabled: 0
+  m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
   m_Name: 
diff --git a/Assets/Scenes/TestGuide.unity b/Assets/Scenes/TestGuide.unity
index a164c0f..66ff5ea 100644
--- a/Assets/Scenes/TestGuide.unity
+++ b/Assets/Scenes/TestGuide.unity
@@ -512,13 +512,13 @@
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1844090207}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
   m_LocalPosition: {x: 0, y: 1, z: -10}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
   m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
 --- !u!222 &1913359152509146050
 CanvasRenderer:
   m_ObjectHideFlags: 0
@@ -792,8 +792,8 @@
   m_GameObject: {fileID: 1913359152602302161}
   m_Enabled: 1
   serializedVersion: 3
-  m_RenderMode: 0
-  m_Camera: {fileID: 0}
+  m_RenderMode: 1
+  m_Camera: {fileID: 1844090209}
   m_PlaneDistance: 100
   m_PixelPerfect: 0
   m_ReceivesEvents: 1
diff --git a/Assets/Scripts/Guide/GuidePanel.cs b/Assets/Scripts/Guide/GuidePanel.cs
index d5b1744..7af2a97 100644
--- a/Assets/Scripts/Guide/GuidePanel.cs
+++ b/Assets/Scripts/Guide/GuidePanel.cs
@@ -57,8 +57,9 @@
     void Awake()
     {
         tmpMask = GetComponent<Image>();
+        tmpMask.enabled = false;
         backgroundImg = transform.Find("Button").GetComponent<Image>();
-        backgroundImg.color = new Color(1.0f, 1.0f, 1.0f, 0);
+
         towerBuyBtn = GameObject.Find("MainUI/TowerBuyBtn");
         tipsUI = transform.Find("Tips").gameObject;
         tipsUI.transform.SetAsLastSibling();//把tips放在最下面
@@ -111,8 +112,10 @@
     /// <param name="active"></param>
     public void SetGuideUI(bool active)
     {
-        if (backgroundImg.raycastTarget != active) backgroundImg.raycastTarget = active;
-        tipsUI.SetActive(active);
+        if (backgroundImg.enabled != active)
+            backgroundImg.enabled = active;
+        if (tipsUI.activeSelf != active)
+            tipsUI.SetActive(active);
     }
 
     //开始打印文字
@@ -143,7 +146,7 @@
             SetRimActive(true);
             AddButtonListener(towerBuyBtn, ac);
             Image btnImg = towerBuyBtn.GetComponent<Image>();
-            InitRectGuidance(btnImg);
+            InitRectGuidance(btnImg, 189, 73.5f);
             SetRimPos(towerBuyBtn);
             maskObj.ShowImmediately();
 
@@ -171,6 +174,8 @@
     {
         fire2.gameObject.SetActive(true);
         fire2.enabled = false;
+        DestoryButtonListener(towerBuyBtn);
+        //RemoveButtonListener(towerBuyBtn);
     }
 
     /// <summary>
@@ -180,9 +185,7 @@
     public void Step2(int currentIndex)
     {
         backgroundImg.raycastTarget = true;
-
-        RemoveButtonListener(towerBuyBtn);
-
+        //RemoveButtonListener(towerBuyBtn);
         SetRimActive(false);
         CloseMask();
     }
@@ -194,8 +197,8 @@
     {
         if (currentIndex == 0)
         {
-            backgroundImg.raycastTarget = false;
-            backgroundImg.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);
+            tmpMask.enabled = true;
+
             SetGuideUI(false);
 
             SetRimPos(fire2.gameObject);
@@ -219,10 +222,12 @@
     {
         if (currentIndex == 0)
         {
+            tmpMask.enabled = false;
+
             SetRimActive(true);
             Image btnImg = transform.Find("Image_TowerPos").GetComponent<Image>();
             towerPos.enabled = true;
-            InitRectGuidance(btnImg);
+            InitRectGuidance(btnImg, 75, 80);
             SetRimPos(btnImg.gameObject);
             maskObj.ShowImmediately();
             StartCoroutine(ShowRimTip(str));
@@ -238,7 +243,7 @@
         {
             CloseMask();
             SetRimActive(false);
-            backgroundImg.color = new Color(1.0f, 1.0f, 1.0f, 0);
+
         }
     }
 
@@ -254,7 +259,7 @@
             GameObject go = transform.Find("Image_TowerPos2").gameObject;
 
             Image btnImg = go.GetComponent<Image>();
-            InitRectGuidance(btnImg);
+            InitRectGuidance(btnImg, 75, 80);
             SetRimPos(go);
             maskObj.ShowImmediately();
             StartCoroutine(ShowRimTip(str));
@@ -264,7 +269,6 @@
     //介绍水元素
     public void Step8()
     {
-        backgroundImg.color = new Color(1.0f, 1.0f, 1.0f, 0);
         SetGuideUI(true);
         SetRimActive(false);
         CloseMask();
@@ -285,7 +289,7 @@
             AddButtonListener(towerBuyBtn, ac);
 
             Image btnImg = towerBuyBtn.GetComponent<Image>();
-            InitRectGuidance(btnImg);
+            InitRectGuidance(btnImg, 189, 73.5f);
             SetRimPos(towerBuyBtn);
             maskObj.ShowImmediately();
         }
@@ -293,7 +297,7 @@
         {
             GameObject go = transform.Find("Image_TowerPos2").gameObject;
             Image btnImg = go.GetComponent<Image>();
-            InitRectGuidance(btnImg);
+            InitRectGuidance(btnImg, 75, 80);
             SetRimPos(go);
             maskObj.ShowImmediately();
         }
@@ -303,9 +307,9 @@
 
     public void Step9_1()
     {
-        RemoveButtonListener(towerBuyBtn);
         water1.gameObject.SetActive(true);
         towerPos2.enabled = true;
+        DestoryButtonListener(towerBuyBtn);
     }
 
 
@@ -326,6 +330,8 @@
     {
         if (currentIndex == 0)
         {
+            tmpMask.enabled = true;
+
             SetGuideUI(false);
             SetRimActive(true);
             SetRimPos(skill.gameObject);
@@ -342,6 +348,7 @@
     public void Step12()
     {
         image_SkillRim.gameObject.SetActive(false);
+        tmpMask.enabled = false;
 
         SetGuideUI(true);
         SetRimActive(false);
@@ -399,13 +406,15 @@
     /// 抠出来一个区域
     /// </summary>
     /// <param name="target"></param>
-    void InitRectGuidance(Image target)
+    void InitRectGuidance(Image target, float x, float y)
     {
         if (!maskObj.gameObject.activeSelf)
         {
             maskObj.gameObject.SetActive(true);
         }
-        maskObj.Init(target);
+        //maskObj.Init(target);
+        maskObj.InitForCamera(target, x, y);
+
     }
 
     /// <summary>
@@ -439,6 +448,14 @@
         eventTriggerListener.RemoveListener(go);
     }
 
+    private void DestoryButtonListener(GameObject go)
+    {
+        EventTriggerListener eventTriggerListener = EventTriggerListener.GetListener(go);
+
+        if (eventTriggerListener != null)
+            Destroy(eventTriggerListener);
+    }
+
     #endregion
 
 
diff --git a/Assets/Scripts/Guide/ImageFire1.cs b/Assets/Scripts/Guide/ImageFire1.cs
index ee070f3..7379c3b 100644
--- a/Assets/Scripts/Guide/ImageFire1.cs
+++ b/Assets/Scripts/Guide/ImageFire1.cs
@@ -77,6 +77,7 @@
             return;
         }
         RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos);
+        //dragPos.z = 0;
         rectTransform.position = dragPos;
     }
 
diff --git a/Assets/Scripts/Guide/ImageFire2.cs b/Assets/Scripts/Guide/ImageFire2.cs
index cf8a16b..f280587 100644
--- a/Assets/Scripts/Guide/ImageFire2.cs
+++ b/Assets/Scripts/Guide/ImageFire2.cs
@@ -24,6 +24,7 @@
     public void OnDrag(PointerEventData eventData)
     {
         RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos);
+        //dragPos.z = 0;
         rectTransform.position = dragPos;
     }
 
diff --git a/Assets/Scripts/Guide/ImageSkill.cs b/Assets/Scripts/Guide/ImageSkill.cs
index fbfbd80..de083d3 100644
--- a/Assets/Scripts/Guide/ImageSkill.cs
+++ b/Assets/Scripts/Guide/ImageSkill.cs
@@ -24,6 +24,7 @@
     public void OnDrag(PointerEventData eventData)
     {
         RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos);
+        //dragPos.z = 0;
         rectTransform.position = dragPos;
     }
 
diff --git a/Assets/Scripts/Guide/Mask/RectGuidance.cs b/Assets/Scripts/Guide/Mask/RectGuidance.cs
index a202905..ad2b8d5 100644
--- a/Assets/Scripts/Guide/Mask/RectGuidance.cs
+++ b/Assets/Scripts/Guide/Mask/RectGuidance.cs
@@ -54,18 +54,25 @@
     {
         instance = this;
         canvas = GameObject.Find("MainUI").GetComponent<Canvas>();
+        eventPenetrate = GetComponent<GuidanceEventPenetrate>();
+        material = GetComponent<Image>().material;
 
     }
     public void Init(Image target)
     {
         this.target = target;
-        eventPenetrate = GetComponent<GuidanceEventPenetrate>();
         if (eventPenetrate != null)
         {
             eventPenetrate.SetTargetImage(target);
         }
         //获取高亮区域的四个顶点的世界坐标
         target.rectTransform.GetWorldCorners(corners);
+
+        for (int i = 0; i < corners.Length; i++)
+        {
+            Debug.Log("corners i:" + i + " vec3:" + corners[i]);
+        }
+
         //计算高亮显示区域在画布中的范围
         targetOffsetX = Vector2.Distance(WorldToCanvasPos(canvas, corners[0]), WorldToCanvasPos(canvas, corners[3])) / 2f;
         targetOffsetY = Vector2.Distance(WorldToCanvasPos(canvas, corners[0]), WorldToCanvasPos(canvas, corners[1])) / 2f;
@@ -101,6 +108,24 @@
         material.SetFloat("_SliderX", currentOffsetX);
         material.SetFloat("_SliderY", currentOffsetY);
     }
+
+
+    public void InitForCamera(Image target, float x, float y)
+    {
+        this.target = target;
+        if (eventPenetrate != null)
+        {
+            eventPenetrate.SetTargetImage(target);
+        }
+
+        Vector2 center = target.GetComponent<RectTransform>().anchoredPosition;
+
+        material.SetVector("_Center", center);
+        material.SetFloat("_SliderX", x);
+        material.SetFloat("_SliderY", y);
+
+    }
+
     /// <summary>
     /// 收缩速度
     /// </summary>
@@ -126,17 +151,19 @@
     //立刻显示阴影区域
     public void ShowImmediately()
     {
+        return;
+
         float valueX = Mathf.SmoothDamp(currentOffsetX, targetOffsetX, ref shrinkVelocityX, 0);
         float valueY = Mathf.SmoothDamp(currentOffsetY, targetOffsetY, ref shrinkVelocityY, 0);
         if (!Mathf.Approximately(valueX, currentOffsetX))
         {
             currentOffsetX = valueX;
-            material.SetFloat("_SliderX", currentOffsetX);
+            material.SetFloat("_SliderX", targetOffsetX);
         }
         if (!Mathf.Approximately(valueY, currentOffsetY))
         {
             currentOffsetY = valueY;
-            material.SetFloat("_SliderY", currentOffsetY);
+            material.SetFloat("_SliderY", targetOffsetY);
         }
     }
 
@@ -149,7 +176,9 @@
     private Vector2 WorldToCanvasPos(Canvas canvas, Vector3 world)
     {
         Vector2 position;
+
         RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, world, canvas.GetComponent<Camera>(), out position);
+
         return position;
     }
 }

--
Gitblit v1.9.1