private void ExtractBundle(AssetBundle assetBundle) { if (assetBundle != null) { energyBarPrefab = assetBundle.LoadAsset <GameObject>("_CustomEnergyBar"); descriptor = energyBarPrefab.GetComponent <EnergyBarDescriptor>(); if (descriptor.icon == null) { descriptor.icon = ResourceUtilities.LoadSpriteFromResource($"CustomEnergyBar.Resources.icon.png"); } energyBarPrefab.transform.SetParent(_prefabPool.transform); energyBarPrefab.gameObject.name = descriptor.name; assetBundle.Unload(false); } else { return; } }
public void InstantiateEnergyBar(EnergyBar energyBar) { if (_gameEnergyUIPanel.gameObject.activeInHierarchy) { GameObject prefab = energyBar.energyBarPrefab; GameObject go = UnityEngine.Object.Instantiate(prefab, _gameEnergyUIPanel.transform.position, _gameEnergyUIPanel.transform.rotation, _gameEnergyUIPanel.transform.parent); if (_gameEnergyUIPanel.transform.parent.parent.name == "FlyingGameHUD") { // 360 and 90 degree levels need the bar to be scaled up go.transform.localScale *= 50; } AddManagers(go); EnergyBarDescriptor descriptor = go.GetComponent <EnergyBarDescriptor>(); switch (_gameEnergyCounter.energyType) { case GameplayModifiers.EnergyType.Bar: descriptor.standardBar.gameObject.SetActive(true); break; case GameplayModifiers.EnergyType.Battery: int lives = _gameEnergyCounter.batteryLives; GameObject batteryBar = descriptor.GetBatteryBar(lives); descriptor.standardBar.gameObject.SetActive(batteryBar == null); batteryBar?.SetActive(true); break; } foreach (ImageView iv in _gameEnergyUIPanel.GetComponentsInChildren <ImageView>()) { iv.enabled = false; } foreach (Canvas ca in _gameEnergyUIPanel.GetComponentsInChildren <Canvas>()) { ca.enabled = false; } } }
private void OnEnable() { _energyBar = (EnergyBarDescriptor)target; }