| | |
| | | using System.Collections.Generic; |
| | | using System.Security.AccessControl; |
| | | using System.Collections.Generic; |
| | | using DG.Tweening; |
| | | using KTGMGemClient; |
| | | using TowerDefense.Level; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | |
| | | ts = transform.GetComponent<RectTransform>(); |
| | | } |
| | | private Image tmpImage; |
| | | private bool isBroadCast; |
| | | private int tmpCurrency; |
| | | public void Init(bool isBC, int currency) |
| | | { |
| | | isBroadCast = isBC; |
| | | tmpCurrency = currency; |
| | | } |
| | | /// <summary> |
| | | /// 设置终点 |
| | | /// </summary> |
| | |
| | | /// <param name="useBezier">是否使用贝塞尔</param> |
| | | public void SetDestination(Sprite sp, Vector3 startP, Vector3 endP, bool useBezier) |
| | | { |
| | | tmpImage.sprite = sp; |
| | | if (sp != null) |
| | | tmpImage.sprite = sp; |
| | | transform.position = startP; |
| | | ts.localPosition += RandomPos(); |
| | | if (useBezier) |
| | |
| | | } |
| | | } |
| | | |
| | | bool isUp; |
| | | bool isLeft; |
| | | private Vector3 RandomPos() |
| | | { |
| | | Vector3 tmpV = Vector3.zero; |
| | | tmpV.x -= UnityEngine.Random.Range(10, 20); |
| | | tmpV.y += UnityEngine.Random.Range(30, 50); |
| | | int a = UnityEngine.Random.Range(-20, 20); |
| | | isUp = a > 0; |
| | | tmpV.z += a; |
| | | isLeft = a > 0; |
| | | tmpV.x += a; |
| | | return tmpV; |
| | | } |
| | | |
| | | private Vector3 GetOffect() |
| | | { |
| | | Vector3 tmpV = Vector3.zero; |
| | | tmpV.x -= UnityEngine.Random.Range(10, 15); |
| | | if (isUp) |
| | | if (isLeft) |
| | | { |
| | | tmpV.z += UnityEngine.Random.Range(20, 40); |
| | | tmpV.x -= UnityEngine.Random.Range(80, 150); |
| | | tmpV.y += UnityEngine.Random.Range(500, 600); |
| | | } |
| | | else |
| | | { |
| | | tmpV.z -= UnityEngine.Random.Range(20, 40); |
| | | tmpV.x += UnityEngine.Random.Range(500, 600); |
| | | tmpV.y += UnityEngine.Random.Range(80, 150); |
| | | } |
| | | |
| | | return tmpV; |
| | |
| | | /// </summary> |
| | | private void Bezier_Move() |
| | | { |
| | | transform.DOMove(point[index], 0.01f).OnComplete(Bezier_Move); |
| | | index++; |
| | | if (index >= point.Count) |
| | | if (index + 3 >= point.Count) |
| | | { |
| | | //到终点了 |
| | | Close(); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | transform.DOMove(point[index], 0.01f).OnComplete(Bezier_Move); |
| | | |
| | | index += 3; |
| | | } |
| | | } |
| | | |
| | | private void Close() |
| | | { |
| | | //Debug.Log("到终点了,可以消失了"); |
| | | //Debug.Log("到终点了,可以消失了" + EndlessLevelManager.instance.DropCoin); |
| | | |
| | | gameObject.SetActive(false); |
| | | |
| | | if (isBroadCast) |
| | | { |
| | | EndlessLevelManager.instance.Currency.AddCurrency(tmpCurrency); |
| | | EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayGetGoldPS); |
| | | } |
| | | |
| | | //Core.Utilities.Poolable.TryPool(gameObject); |
| | | } |
| | | |
| | | /// <summary> |