diff options
Diffstat (limited to 'SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar')
4 files changed, 101 insertions, 0 deletions
diff --git a/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/PanelWeaponBar.cs b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/PanelWeaponBar.cs new file mode 100644 index 0000000..24c208c --- /dev/null +++ b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/PanelWeaponBar.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PanelWeaponBar : PanelBase +{ + public UIWeaponWidget m_WeaponTemplate; + + public UISimpleGrid m_WeaponGrid; + + private List<UIWeaponWidget> m_Weapons = new List<UIWeaponWidget>(); + + public override void Set(object param) + { + m_WeaponTemplate.gameObject.SetActive(false); + + for (int i = 0; i < PlayerManager.Instance.weapons.Count; ++i) + { + UIWeaponWidget widget = MakeWeaponWidget(PlayerManager.Instance.weapons[i]); + m_Weapons.Add(widget); + } + } + + UIWeaponWidget MakeWeaponWidget(WeaponBase weapon) + { + UIWeaponWidget widget = Instantiate<UIWeaponWidget>(m_WeaponTemplate); + widget.transform.SetParent(m_WeaponGrid.transform); + widget.gameObject.SetActive(true); + widget.GetComponent<RectTransform>().anchoredPosition = new Vector2(0, 0); +#if UNITY_EDITOR + widget.name = "weapon (" + weapon.name + ")"; +#endif + + UIWeaponWidgetParam param = new UIWeaponWidgetParam(); + param.weapon = weapon; + widget.Set(param); + return widget; + } + +} diff --git a/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/PanelWeaponBar.cs.meta b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/PanelWeaponBar.cs.meta new file mode 100644 index 0000000..bf78ef3 --- /dev/null +++ b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/PanelWeaponBar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1382539f3296aa47b7e2d7f269f9007 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/UIWeaponWidget.cs b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/UIWeaponWidget.cs new file mode 100644 index 0000000..f061a3b --- /dev/null +++ b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/UIWeaponWidget.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public struct UIWeaponWidgetParam +{ + public WeaponBase weapon; +} + +public class UIWeaponWidget : UIGridItemBase +{ + public Image Image_Icon; + public Image Image_CD; + + public WeaponBase weapon { get { return m_Weapon; } } + private WeaponBase m_Weapon; + + public override void Set(object param) + { + UIWeaponWidgetParam info = (UIWeaponWidgetParam)param; + m_Weapon = info.weapon; + + Image_Icon.sprite = ResourceManager.Instance.Load<Sprite>(info.weapon.iconPath); + + Image_CD.gameObject.SetActive(weapon.autoMode == WeaponBase.AutoMode.Interval); + } + + private void Update() + { + if(weapon.autoMode == WeaponBase.AutoMode.Interval) + { + float countDown = TinyCountDown.Instance.Get(weapon.GetHashCode().ToString()); + float t = countDown / weapon.interval; + Image_CD.fillAmount = t; + } + } + +}
\ No newline at end of file diff --git a/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/UIWeaponWidget.cs.meta b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/UIWeaponWidget.cs.meta new file mode 100644 index 0000000..bad655e --- /dev/null +++ b/SurvivalTest/Assets/Scripts/UI/Panel/PanelWeaponBar/UIWeaponWidget.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83ab90093bb5312428311a589a4fe90f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |