From d76c9cff59d3c8a65968058df992c39c2cdb44ad Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 24 Apr 2022 08:34:09 +0800 Subject: + several equips --- .../Assets/Scripts/Equips/Equip_Boomerang.cs | 4 +-- .../Assets/Scripts/Equips/Equip_MightyGlove.cs | 6 ++-- .../Assets/Scripts/Equips/Equip_MysteryMask.cs | 18 ++++++++++ .../Scripts/Equips/Equip_MysteryMask.cs.meta | 11 ++++++ .../Assets/Scripts/Equips/Equip_TeslaCoil.cs | 7 ++-- .../Scripts/Managers/PlayerManager_Equips.cs | 40 +++++++++++++++++----- .../Assets/Scripts/Resources/ResourceManager.cs | 10 +++++- .../UI/Panel/PanelEquipBar/UIEquipWidget.cs | 2 ++ 8 files changed, 80 insertions(+), 18 deletions(-) create mode 100644 SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs create mode 100644 SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs.meta (limited to 'SurvivalTest/Assets/Scripts') diff --git a/SurvivalTest/Assets/Scripts/Equips/Equip_Boomerang.cs b/SurvivalTest/Assets/Scripts/Equips/Equip_Boomerang.cs index c00ebc4..7ee6a3b 100644 --- a/SurvivalTest/Assets/Scripts/Equips/Equip_Boomerang.cs +++ b/SurvivalTest/Assets/Scripts/Equips/Equip_Boomerang.cs @@ -9,9 +9,9 @@ public class Equip_Boomerang : EquipBase { public override AutoMode autoMode => AutoMode.Condition; - public override string name => ""; + public override string name => "回旋镖"; - public override string iconPath => ""; + public override string iconPath => "art/ui/equipicon/boomerang"; /// /// 接到回旋镖后重新掷出,否则间隔一段时间投掷 diff --git a/SurvivalTest/Assets/Scripts/Equips/Equip_MightyGlove.cs b/SurvivalTest/Assets/Scripts/Equips/Equip_MightyGlove.cs index d5e4189..6a05b18 100644 --- a/SurvivalTest/Assets/Scripts/Equips/Equip_MightyGlove.cs +++ b/SurvivalTest/Assets/Scripts/Equips/Equip_MightyGlove.cs @@ -8,12 +8,14 @@ using UnityEngine; public class Equip_MightyGlove : EquipBase { - public override string name => ""; + public override string name => "超凡手套"; - public override string iconPath => ""; + public override string iconPath => "art/ui/equipicon/glove"; public override AutoMode autoMode => AutoMode.Interval; + public override float interval => 100f; + public override void OnTrigger(GameObject owner) { } diff --git a/SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs b/SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs new file mode 100644 index 0000000..8ec7ccc --- /dev/null +++ b/SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Equip_MysteryMask : EquipBase +{ + public override string name => "神秘面具"; + + public override string iconPath => "art/ui/equipicon/mystery_mask"; + + public override AutoMode autoMode => AutoMode.Interval; + + public override float interval => 100f; + + public override void OnTrigger(GameObject owner) + { + } +} \ No newline at end of file diff --git a/SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs.meta b/SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs.meta new file mode 100644 index 0000000..6b15151 --- /dev/null +++ b/SurvivalTest/Assets/Scripts/Equips/Equip_MysteryMask.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 495a4dbf2afa5154f923113b471b18d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SurvivalTest/Assets/Scripts/Equips/Equip_TeslaCoil.cs b/SurvivalTest/Assets/Scripts/Equips/Equip_TeslaCoil.cs index c0bdfc6..af523cd 100644 --- a/SurvivalTest/Assets/Scripts/Equips/Equip_TeslaCoil.cs +++ b/SurvivalTest/Assets/Scripts/Equips/Equip_TeslaCoil.cs @@ -8,17 +8,16 @@ using UnityEngine; public class Equip_TeslaCoil : EquipBase { - public override string name => ""; + public override string name => "特斯拉线圈"; - public override string iconPath => ""; + public override string iconPath => "art/ui/equipicon/tesla_coil"; public override AutoMode autoMode => AutoMode.Interval; - public override float interval => 1f; + public override float interval => 20f; public override void OnTrigger(GameObject owner) { - throw new System.NotImplementedException(); } } diff --git a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs index 05ca6df..73f86ff 100644 --- a/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs +++ b/SurvivalTest/Assets/Scripts/Managers/PlayerManager_Equips.cs @@ -13,7 +13,7 @@ public partial class PlayerManager : Singleton public bool isFire { get; private set; } private bool m_AutoFire; - private float m_AutoFireDuration = 1f; + private float m_AutoFireDuration = 0.8f; private float m_LastAxisValue = 0; @@ -21,6 +21,10 @@ public partial class PlayerManager : Singleton { m_Equips.Add(new Equip_Gun()); m_Equips.Add(new Equip_GrenadeLauncher()); + m_Equips.Add(new Equip_Boomerang()); + m_Equips.Add(new Equip_TeslaCoil()); + m_Equips.Add(new Equip_MightyGlove()); + m_Equips.Add(new Equip_MysteryMask()); m_AutoFire = false; @@ -51,29 +55,47 @@ public partial class PlayerManager : Singleton { m_AutoFire = false; } - if(TinyCountDown.Instance.Get("ReleaseFire") > 0) + + isFire = true; + RunFireCoroutine(true); + } + + if (!m_AutoFire && !Input.GetButton("Fire1") && (axis == 0 && m_LastAxisValue != 0)) + { + if (TinyCountDown.Instance.Get("ReleaseFire") > 0) { m_AutoFire = true; + isFire = true; + RunFireCoroutine(true); } - isFire = true; + else + { + TinyCountDown.Instance.Set("ReleaseFire", m_AutoFireDuration); + isFire = false; + RunFireCoroutine(false); + } + } + + m_LastAxisValue = axis; + } + + void RunFireCoroutine(bool start) + { + if (start) + { if (m_CoFire == null) { m_CoFire = GameApp.Instance.StartCoroutine(coFire()); } } - - if (!m_AutoFire && !Input.GetButton("Fire1") && (axis == 0 && m_LastAxisValue != 0)) + else { - TinyCountDown.Instance.Set("ReleaseFire", m_AutoFireDuration); - isFire = false; if (m_CoFire != null) { GameApp.Instance.StopCoroutine(m_CoFire); m_CoFire = null; } } - - m_LastAxisValue = axis; } /// diff --git a/SurvivalTest/Assets/Scripts/Resources/ResourceManager.cs b/SurvivalTest/Assets/Scripts/Resources/ResourceManager.cs index 193d8b3..b01852a 100644 --- a/SurvivalTest/Assets/Scripts/Resources/ResourceManager.cs +++ b/SurvivalTest/Assets/Scripts/Resources/ResourceManager.cs @@ -4,9 +4,17 @@ using UnityEngine; public class ResourceManager : Singleton { + private Dictionary m_LoadedObjects = new Dictionary(); + public T Load(string path) where T : UnityEngine.Object { - return Resources.Load(path); + if(m_LoadedObjects.ContainsKey(path)) + { + return m_LoadedObjects[path] as T; + } + T obj = Resources.Load(path); + m_LoadedObjects.Add(path, obj); + return obj; } } diff --git a/SurvivalTest/Assets/Scripts/UI/Panel/PanelEquipBar/UIEquipWidget.cs b/SurvivalTest/Assets/Scripts/UI/Panel/PanelEquipBar/UIEquipWidget.cs index 14c8717..9099f18 100644 --- a/SurvivalTest/Assets/Scripts/UI/Panel/PanelEquipBar/UIEquipWidget.cs +++ b/SurvivalTest/Assets/Scripts/UI/Panel/PanelEquipBar/UIEquipWidget.cs @@ -22,6 +22,8 @@ public class UIEquipWidget : UIGridItemBase m_Equip = info.equip; Image_Icon.sprite = ResourceManager.Instance.Load(info.equip.iconPath); + + Image_CD.gameObject.SetActive(equip.autoMode == EquipBase.AutoMode.Interval); } private void Update() -- cgit v1.1-26-g67d0