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