| | |
| | | - _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 |
| | |
| | | - _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: [] |
| | | m_BuildTextureStacks: [] |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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: |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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放在最下面 |
| | |
| | | /// <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); |
| | | } |
| | | |
| | | //开始打印文字 |
| | |
| | | SetRimActive(true); |
| | | AddButtonListener(towerBuyBtn, ac); |
| | | Image btnImg = towerBuyBtn.GetComponent<Image>(); |
| | | InitRectGuidance(btnImg); |
| | | InitRectGuidance(btnImg, 189, 73.5f); |
| | | SetRimPos(towerBuyBtn); |
| | | maskObj.ShowImmediately(); |
| | | |
| | |
| | | { |
| | | fire2.gameObject.SetActive(true); |
| | | fire2.enabled = false; |
| | | DestoryButtonListener(towerBuyBtn); |
| | | //RemoveButtonListener(towerBuyBtn); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | public void Step2(int currentIndex) |
| | | { |
| | | backgroundImg.raycastTarget = true; |
| | | |
| | | RemoveButtonListener(towerBuyBtn); |
| | | |
| | | //RemoveButtonListener(towerBuyBtn); |
| | | SetRimActive(false); |
| | | CloseMask(); |
| | | } |
| | |
| | | { |
| | | 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); |
| | |
| | | { |
| | | 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)); |
| | |
| | | { |
| | | CloseMask(); |
| | | SetRimActive(false); |
| | | backgroundImg.color = new Color(1.0f, 1.0f, 1.0f, 0); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | 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)); |
| | |
| | | //介绍水元素 |
| | | public void Step8() |
| | | { |
| | | backgroundImg.color = new Color(1.0f, 1.0f, 1.0f, 0); |
| | | SetGuideUI(true); |
| | | SetRimActive(false); |
| | | CloseMask(); |
| | |
| | | AddButtonListener(towerBuyBtn, ac); |
| | | |
| | | Image btnImg = towerBuyBtn.GetComponent<Image>(); |
| | | InitRectGuidance(btnImg); |
| | | InitRectGuidance(btnImg, 189, 73.5f); |
| | | SetRimPos(towerBuyBtn); |
| | | maskObj.ShowImmediately(); |
| | | } |
| | |
| | | { |
| | | GameObject go = transform.Find("Image_TowerPos2").gameObject; |
| | | Image btnImg = go.GetComponent<Image>(); |
| | | InitRectGuidance(btnImg); |
| | | InitRectGuidance(btnImg, 75, 80); |
| | | SetRimPos(go); |
| | | maskObj.ShowImmediately(); |
| | | } |
| | |
| | | |
| | | public void Step9_1() |
| | | { |
| | | RemoveButtonListener(towerBuyBtn); |
| | | water1.gameObject.SetActive(true); |
| | | towerPos2.enabled = true; |
| | | DestoryButtonListener(towerBuyBtn); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | if (currentIndex == 0) |
| | | { |
| | | tmpMask.enabled = true; |
| | | |
| | | SetGuideUI(false); |
| | | SetRimActive(true); |
| | | SetRimPos(skill.gameObject); |
| | |
| | | public void Step12() |
| | | { |
| | | image_SkillRim.gameObject.SetActive(false); |
| | | tmpMask.enabled = false; |
| | | |
| | | SetGuideUI(true); |
| | | SetRimActive(false); |
| | |
| | | /// 抠出来一个区域 |
| | | /// </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> |
| | |
| | | eventTriggerListener.RemoveListener(go); |
| | | } |
| | | |
| | | private void DestoryButtonListener(GameObject go) |
| | | { |
| | | EventTriggerListener eventTriggerListener = EventTriggerListener.GetListener(go); |
| | | |
| | | if (eventTriggerListener != null) |
| | | Destroy(eventTriggerListener); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | |
| | | return; |
| | | } |
| | | RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos); |
| | | //dragPos.z = 0; |
| | | rectTransform.position = dragPos; |
| | | } |
| | | |
| | |
| | | public void OnDrag(PointerEventData eventData) |
| | | { |
| | | RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos); |
| | | //dragPos.z = 0; |
| | | rectTransform.position = dragPos; |
| | | } |
| | | |
| | |
| | | public void OnDrag(PointerEventData eventData) |
| | | { |
| | | RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos); |
| | | //dragPos.z = 0; |
| | | rectTransform.position = dragPos; |
| | | } |
| | | |
| | |
| | | { |
| | | 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; |
| | |
| | | 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> |
| | |
| | | //立刻显示阴影区域 |
| | | 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); |
| | | } |
| | | } |
| | | |
| | |
| | | private Vector2 WorldToCanvasPos(Canvas canvas, Vector3 world) |
| | | { |
| | | Vector2 position; |
| | | |
| | | RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, world, canvas.GetComponent<Camera>(), out position); |
| | | |
| | | return position; |
| | | } |
| | | } |