| | |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using System; |
| | | using KTGMGemClient; |
| | | using DG.Tweening; |
| | | /// <summary> |
| | | /// 新手引导UI脚本 |
| | |
| | | Vector2 rimOffset = new Vector2(30, 30);//边框要比按钮大一些 |
| | | |
| | | Image tmpMask;//自身的遮罩 |
| | | |
| | | GameObject offectBackground;//适配需要的黑色背景 |
| | | ImageFire1 fire1; |
| | | ImageFire2 fire2;//两个用来合成的火元素 |
| | | |
| | |
| | | ImageTowerPos2 towerPos2;//塔位标识 |
| | | |
| | | GameObject towerBuyBtn;//购买宝石按钮 |
| | | |
| | | Vector2 towerBuyBtnPos; |
| | | Image backgroundImg;//用来接受空白点击事件的图片 |
| | | |
| | | RectTransform dragHandImg;//拖动标识手指 |
| | |
| | | { |
| | | tmpMask = GetComponent<Image>(); |
| | | tmpMask.enabled = false; |
| | | offectBackground = transform.Find("OffectImage").gameObject; |
| | | offectBackground.SetActive(false); |
| | | |
| | | backgroundImg = transform.Find("Button").GetComponent<Image>(); |
| | | |
| | | towerBuyBtn = GameObject.Find("MainUI/TowerBuyBtn"); |
| | | towerBuyBtn = GameObject.Find("UICamera/BottomCanvas/Panel/TowerBuyBtn"); |
| | | RectTransform tmpTs = towerBuyBtn.GetComponent<RectTransform>(); |
| | | |
| | | RectTransform canvasUI = transform.parent.parent.GetComponent<RectTransform>(); |
| | | float tmpOffect = tmpTs.anchoredPosition.y - (canvasUI.sizeDelta.y * 0.5f); |
| | | towerBuyBtnPos = new Vector2(tmpTs.anchoredPosition.x, tmpOffect); |
| | | |
| | | tipsUI = transform.Find("Tips").gameObject; |
| | | tipsUI.transform.SetAsLastSibling();//把tips放在最下面 |
| | | |
| | |
| | | particle_1 = image_Rim_Rect.transform.Find("Particle System Small").gameObject; |
| | | particle_2 = image_Rim_Rect.transform.Find("Particle System Big").gameObject; |
| | | |
| | | float a = 0.06666667f; |
| | | float b = canvasUI.localScale.x; |
| | | float tmpScale = a / b; |
| | | //Debug.Log($"记录的比值:{a} 当前Canvas的Scale:{b} 计算得到的比值:{tmpScale}"); |
| | | |
| | | image_Tip_Rect = transform.Find("Image_Tip").GetComponent<RectTransform>(); |
| | | text_Tip = image_Tip_Rect.transform.Find("Text").GetComponent<Text>(); |
| | | image_SkillRim = transform.Find("Image_SkillRim").GetComponent<Image>(); |
| | | image_SkillRim.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | |
| | | SetRimActive(false); |
| | | image_SkillRim.gameObject.SetActive(false); |
| | | |
| | | fire1 = transform.Find("Image_Fire1").GetComponent<ImageFire1>(); |
| | | fire1.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | fire2 = transform.Find("Image_Fire2").GetComponent<ImageFire2>(); |
| | | fire2.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | |
| | | fire1.gameObject.SetActive(false); |
| | | fire2.gameObject.SetActive(false); |
| | | |
| | | towerPos = transform.Find("Image_TowerPos").GetComponent<ImageTowerPos>(); |
| | | towerPos.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | |
| | | towerPos.enabled = false; |
| | | |
| | | towerPos2 = transform.Find("Image_TowerPos2").GetComponent<ImageTowerPos2>(); |
| | | towerPos2.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | |
| | | towerPos2.enabled = false; |
| | | |
| | | water1 = transform.Find("Image_Water").GetComponent<ImageWater>(); |
| | | water1.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | water1.gameObject.SetActive(false); |
| | | |
| | | skill = transform.Find("Image_Skill").GetComponent<ImageSkill>(); |
| | | skill.GetComponent<RectTransform>().anchoredPosition *= tmpScale; |
| | | |
| | | skill.gameObject.SetActive(false); |
| | | |
| | | dragHandImg = transform.Find("ImageHand").GetComponent<RectTransform>(); |
| | | dragHandImg.gameObject.SetActive(false); |
| | | } |
| | | |
| | | |
| | | private Vector2 tmpOffect; |
| | | |
| | | /// <summary> |
| | | /// Start is called on the frame when a script is enabled just before |
| | | /// any of the Update methods is called the first time. |
| | | /// </summary> |
| | | void Start() |
| | | { |
| | | tmpOffect = GetComponent<RectTransform>().offsetMin; |
| | | tmpOffect = new Vector2(tmpOffect.x, tmpOffect.y * 0.5f); |
| | | |
| | | image_SkillRim.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | fire1.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | fire2.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | towerPos.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | towerPos2.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | water1.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | skill.GetComponent<RectTransform>().anchoredPosition -= tmpOffect; |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 设置引导框 |
| | | /// </summary> |
| | |
| | | SetRimActive(true); |
| | | AddButtonListener(towerBuyBtn, ac); |
| | | Image btnImg = towerBuyBtn.GetComponent<Image>(); |
| | | InitRectGuidance(btnImg, 189, 73.5f); |
| | | InitRectGuidance(btnImg, 159, 73.5f, Vector2.one); |
| | | SetRimPos(towerBuyBtn); |
| | | //maskObj.ShowImmediately(); |
| | | |
| | |
| | | fire1.gameObject.SetActive(true); |
| | | fire1.transform.Find("Image_2").gameObject.SetActive(false); |
| | | fire1.enabled = false; |
| | | |
| | | EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayAppearEffect, fire1.transform.position); |
| | | } |
| | | } |
| | | public void Step1_2() |
| | |
| | | DestoryButtonListener(towerBuyBtn); |
| | | SetRimActive(false); |
| | | CloseMask(); |
| | | EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayAppearEffect, fire2.transform.position); |
| | | |
| | | //RemoveButtonListener(towerBuyBtn); |
| | | } |
| | | |
| | |
| | | { |
| | | |
| | | tmpMask.enabled = true; |
| | | offectBackground.SetActive(true); |
| | | |
| | | SetGuideUI(false); |
| | | |
| | |
| | | if (currentIndex == 0) |
| | | { |
| | | tmpMask.enabled = false; |
| | | offectBackground.SetActive(false); |
| | | |
| | | SetRimActive(true); |
| | | Image btnImg = transform.Find("Image_TowerPos").GetComponent<Image>(); |
| | | towerPos.enabled = true; |
| | | InitRectGuidance(btnImg, 75, 80); |
| | | InitRectGuidance(btnImg, 75, 80, tmpOffect); |
| | | SetRimPos(btnImg.gameObject); |
| | | //maskObj.ShowImmediately(); |
| | | ShowDragPath(fire1.GetStartP, btnImg.rectTransform); |
| | |
| | | |
| | | Image btnImg = go.GetComponent<Image>(); |
| | | btnImg.raycastTarget = false; |
| | | InitRectGuidance(btnImg, 75, 80); |
| | | InitRectGuidance(btnImg, 75, 80, tmpOffect); |
| | | SetRimPos(go); |
| | | //maskObj.ShowImmediately(); |
| | | StartCoroutine(ShowRimTip(str)); |
| | |
| | | AddButtonListener(towerBuyBtn, ac); |
| | | |
| | | Image btnImg = towerBuyBtn.GetComponent<Image>(); |
| | | InitRectGuidance(btnImg, 189, 73.5f); |
| | | InitRectGuidance(btnImg, 159, 73.5f, Vector2.one); |
| | | SetRimPos(towerBuyBtn); |
| | | //maskObj.ShowImmediately(); |
| | | } |
| | |
| | | GameObject go = transform.Find("Image_TowerPos2").gameObject; |
| | | Image btnImg = go.GetComponent<Image>(); |
| | | btnImg.raycastTarget = true; |
| | | InitRectGuidance(btnImg, 75, 80); |
| | | InitRectGuidance(btnImg, 75, 80, tmpOffect); |
| | | SetRimPos(go); |
| | | //maskObj.ShowImmediately(); |
| | | ShowDragPath(water1.GetStartP, btnImg.rectTransform); |
| | |
| | | |
| | | ShowDragPath(skill.GetStartP, image_SkillRim.rectTransform); |
| | | |
| | | InitRectGuidance(image_SkillRim, 79, 265); |
| | | InitRectGuidance(image_SkillRim, 79, 265, tmpOffect); |
| | | |
| | | } |
| | | else if (currentIndex == 1) |
| | |
| | | { |
| | | SetRimActive(true); |
| | | RectTransform rt = target.GetComponent<RectTransform>(); |
| | | image_Rim_Rect.anchoredPosition = rt.anchoredPosition; |
| | | if (target.gameObject.name == "TowerBuyBtn") |
| | | { |
| | | image_Rim_Rect.anchoredPosition = towerBuyBtnPos - tmpOffect; |
| | | } |
| | | else |
| | | { |
| | | image_Rim_Rect.anchoredPosition = rt.anchoredPosition; |
| | | } |
| | | image_Rim_Rect.sizeDelta = (rt.sizeDelta * rt.localScale) + rimOffset; |
| | | if (image_Rim_Rect.sizeDelta.x > 200) |
| | | { |
| | |
| | | } |
| | | |
| | | if (changeTipPos) |
| | | { |
| | | image_Tip_Rect.anchoredPosition = new Vector2(image_Rim_Rect.anchoredPosition.x, image_Rim_Rect.anchoredPosition.y + 74 / 2 + image_Rim_Rect.sizeDelta.y / 2); |
| | | //image_Tip_Rect.anchoredPosition -= tmpOffect; |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | /// 抠出来一个区域 |
| | | /// </summary> |
| | | /// <param name="target"></param> |
| | | void InitRectGuidance(Image target, float x, float y) |
| | | void InitRectGuidance(Image target, float x, float y, Vector2 offect) |
| | | { |
| | | if (!maskObj.gameObject.activeSelf) |
| | | { |
| | |
| | | } |
| | | //maskObj.Init(target); |
| | | //maskObj.ShowImmediately(); |
| | | maskObj.InitForCamera(target, x, y); |
| | | if (target.gameObject.name == "TowerBuyBtn") |
| | | { |
| | | maskObj.InitForCamera(target, towerBuyBtnPos, x, y); |
| | | } |
| | | else |
| | | { |
| | | maskObj.InitForCamera(target, x, y, offect); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | #endregion |
| | | |
| | | #region 拖动效果 |
| | | private float dragTimer = 1f; |
| | | private void ShowDragPath(Vector2 startP, RectTransform endP) |
| | | { |
| | | if (!dragHandImg.gameObject.activeSelf) |