From a251b401dd2535b7583d1813e08dc2e3cced05d5 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Sat, 05 Dec 2020 18:42:11 +0800 Subject: [PATCH] 随机 --- Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs | 51 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 31 insertions(+), 20 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs index 714ae8f..b036506 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs @@ -16,13 +16,6 @@ { public List<SelectBuffIcon> IconList; - private string iconPath = "UI/Endless/BuffIcon/BuffIcon_"; - - /// <summary> - /// buff是否选中完成 - /// </summary> - private bool isCompleted; - public event Action<int> BuffSelectCompleted; /// <summary> @@ -32,9 +25,11 @@ public Button SelectBtn; - public GameObject EffectObj; + public GameObject EffectPrefabObject; - private Vector3[] effectPosArr = { new Vector3(-21.6f, 73.4f, 5.5f), new Vector3(0, 73.4f, 5.5f), new Vector3(21.6f, 73.4f, 5.5f) }; + private GameObject effectObj; + + private Vector3[] effectPosArr = { new Vector3(-21.6f, 0, 6.6f), new Vector3(0, 0, 6.6f), new Vector3(21.6f, 0, 6.6f) }; // Start is called before the first frame update private void Start() @@ -49,7 +44,6 @@ private void OnEnable() { - isCompleted = false; SelectedIndex = -1; for (int i = 0; i < IconList.Count; ++i) @@ -57,7 +51,13 @@ IconList[i].Reset(); } - EndlessMaskUI.instance?.Show(); + AudioSourceManager.Ins?.Play(AudioEnum.BuffAppear); + } + + private void OnDisable() + { + if (effectObj != null) + Destroy(effectObj); } public void OnClick(int index) @@ -67,28 +67,36 @@ // 如果已经选择过了,设置一个之前选择的item if (SelectedIndex != -1) - { IconList[SelectedIndex].SetState(false); - - } SelectedIndex = index; IconList[index].SetState(true); - PlayEffect(); + //PlayEffect(); } + private void PlayEffect() { - EffectObj.transform.localPosition = effectPosArr[SelectedIndex]; - ParticleSystem ps = EffectObj.transform.GetChild(0).GetComponent<ParticleSystem>(); + if (effectObj == null) + { + effectObj = Instantiate(EffectPrefabObject); + GameObject particleSystemObject = GameObject.Find("ParticleSystemObject"); + effectObj.transform.SetParent(particleSystemObject.transform, false); + effectObj.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f); + } + effectObj.transform.localPosition = effectPosArr[SelectedIndex]; + ParticleSystem ps = effectObj.transform.GetChild(0).GetComponent<ParticleSystem>(); ps.Play(); } private void StopEffect() { - ParticleSystem ps = EffectObj.transform.GetChild(0).GetComponent<ParticleSystem>(); - ps.Stop(); - ps.Clear(); + if (effectObj != null) + { + ParticleSystem ps = effectObj.transform.GetChild(0).GetComponent<ParticleSystem>(); + ps.Stop(); + ps.Clear(); + } } /// <summary> @@ -100,6 +108,8 @@ int index = SelectedIndex; + AudioSourceManager.Ins.Play(AudioEnum.UI); + HideBuffUI(); if (BuffSelectCompleted != null) @@ -108,6 +118,7 @@ public void ShowBuffUI() { + EndlessMaskUI.instance.Show(); gameObject.SetActive(true); } -- Gitblit v1.9.1