diff options
author | chai <chaifix@163.com> | 2022-04-23 15:59:11 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-04-23 15:59:11 +0800 |
commit | 33858a90ec0bc47f0c3d4fc843f9f45a749175e3 (patch) | |
tree | 56d59f053a4b7612b4de7f5d96a47830b5c7a14e /SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs | |
parent | bdb737230b30e8fb9be63d95b792e8c8ba531ea0 (diff) |
*equip
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs')
-rw-r--r-- | SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs | 76 |
1 files changed, 75 insertions, 1 deletions
diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs index ce85849..67e8ae7 100644 --- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs +++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs @@ -2,9 +2,83 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; - public partial class PlayerManager : Singleton<PlayerManager> { + // 持有的装备 + public List<EquipBase> equips { get { return m_Equips; } } + private List<EquipBase> m_Equips = new List<EquipBase>(); + + private Coroutine m_CoFire; + + void InitEquips() + { + m_Equips.Add(new Equip_Gun()); + m_Equips.Add(new Equip_GrenadeLauncher()); + } + + /// <summary> + /// 装备循环 + /// </summary> + void UpdateEquips() + { + for(int i = 0; i < m_Equips.Count; ++i) + { + m_Equips[i].Update(); + } + } + + /// <summary> + /// 检查输入,使用装备 + /// </summary> + void CheckInput() + { + if (Input.GetButtonDown("Fire1") || (Input.GetAxis("GunTrigger") == 1)) + { + if (m_CoFire == null) + { + m_CoFire = GameApp.Instance.StartCoroutine(coFire()); + } + } + if (!Input.GetButton("Fire1") && (Input.GetAxis("GunTrigger") == 0)) + { + if (m_CoFire != null) + { + GameApp.Instance.StopCoroutine(m_CoFire); + m_CoFire = null; + } + } + } + + /// <summary> + /// 开火 + /// </summary> + /// <returns></returns> + IEnumerator coFire() + { + while (true) + { + for(int i = 0; i < m_Equips.Count; ++i) + { + EquipBase equip = m_Equips[i]; + if (equip == null) + continue; + if(equip.autoMode == EquipBase.AutoMode.Interval) + { + string id = equip.GetHashCode().ToString(); + float countDown = TinyCountDown.Instance.Get(id); + if(countDown <= 0) + { + equip.OnTrigger(m_Crew.gameObject); + TinyCountDown.Instance.Set(id, equip.interval); + } + else + { + } + } + } + yield return null; + } + } }
\ No newline at end of file |