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 | |
parent | bdb737230b30e8fb9be63d95b792e8c8ba531ea0 (diff) |
*equip
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Managers')
4 files changed, 84 insertions, 27 deletions
diff --git a/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs b/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs index 102bc34..4cdaa72 100644 --- a/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs +++ b/SurvivalTest/Assets/Scripts/Managers/BattleManager.cs @@ -8,6 +8,7 @@ public class BattleManager : Singleton<BattleManager> public void Init() { UIManager.Instance.OpenPanel(PanelType.PanelItemBar, null); + UIManager.Instance.OpenPanel(PanelType.PanelEquipBar, null); } public void Update() diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs index 59593b0..8bd1dd0 100644 --- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs +++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager.cs @@ -8,10 +8,6 @@ public partial class PlayerManager : Singleton<PlayerManager> // 角色 private CrewScript m_Crew; - // 持有的装备 - public List<EquipBase> equips { get { return m_Equips; } } - private List<EquipBase> m_Equips = new List<EquipBase>(); - // 持有的饰品 public List<DecorationBase> decorations { get { return m_Decorations; } } private List<DecorationBase> m_Decorations = new List<DecorationBase>(); @@ -19,12 +15,15 @@ public partial class PlayerManager : Singleton<PlayerManager> public void Init() { InitItems(); - + InitEquips(); } public void Update() { + CheckInput(); + UpdateItems(); + UpdateEquips(); } public void SetCrew(CrewScript crew) 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 diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs index a0cfe52..df924ca 100644 --- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs +++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Items.cs @@ -8,37 +8,20 @@ public partial class PlayerManager : Singleton<PlayerManager> public List<ItemBase> items { get { return m_Items; } } private List<ItemBase> m_Items = new List<ItemBase>(); - // 当前选中的物品 - ItemBase m_CurrentItem = null; - void InitItems() { m_Items.Add(new Item_B2Phone()); m_Items.Add(new Item_SpaceBeamer()); } - /// <summary> - /// 选中物品 - /// </summary> - public void SetCurrentItem(ItemBase item) + public void UseItem(ItemBase item) { - if (!items.Contains(item)) + if(!items.Contains(item)) { - Debug.LogError("No such item"); + Debug.LogError("No such item, name=" + item.name); return; } - m_CurrentItem = item; - } - - /// <summary> - /// 使用当前道具 - /// </summary> - public void UseCurrentItem() - { - if (m_CurrentItem == null) - return; - - m_CurrentItem.OnUse(m_Crew.gameObject); + item.OnUse(m_Crew.gameObject); } void UpdateItems() |