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/Mask/RectGuidance.cs |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 deletions(-)

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