summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs76
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