using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class BuffFly : MonoBehaviour { private Image Icon; /// /// 边框 /// private Image BorderImage; /// /// 品质底图 /// private Image QualityImage; /// /// buff名称 /// private Text Name; /// /// 效果描述 /// private Text Effect; public void SetIcon(Sprite sprite) { Icon.sprite = sprite; } /// /// 设置buff品质 /// /// public void SetQuality(Sprite sprite) { QualityImage.sprite = sprite; } public void SetName(string buffName) { Name.text = buffName; } /// /// 设置buff效果描述 /// /// public void SetEffect(string effect) { Effect.text = effect; } /// /// 设置品级 /// /// public void SetRare(Color color) { Name.color = color; } Vector3 startP; Transform buffPreviewButton; Vector3 endScale; Vector3 endRotate; /// /// Awake is called when the script instance is being loaded. /// void Awake() { endScale = new Vector3(0.1f, 0.1f, 0.1f); endRotate = new Vector3(0f, 0f, -90f); startP = transform.position; buffPreviewButton = transform.parent.parent.Find("BuffPreviewButton/Image").transform; Icon = transform.Find("Icon").GetComponent(); BorderImage = transform.Find("Border").GetComponent(); QualityImage = transform.Find("Quality").GetComponent(); Name = transform.Find("Name").GetComponent(); Effect = transform.Find("Effect").GetComponent(); gameObject.SetActive(false); } /// /// 飞动 /// public void Fly() { gameObject.SetActive(true); transform.DOScale(endScale, 0.7f); transform.DOLocalRotate(endRotate, 0.3f); transform.DOMove(buffPreviewButton.position, 0.7f).SetEase(Ease.OutQuad).OnComplete(() => { transform.position = startP; transform.localScale = Vector3.one; transform.localEulerAngles = Vector3.zero; gameObject.SetActive(false); }); } }