private void Awake() { ins = this; activeSceneName = SceneManager.GetActiveScene().name; scorePanel.SetActive(false); WeaponPrefabPool.ClearAllPool(); RewardPrefabPool.ClearAllPool(); if (!MultiLanguageMgr.jsonLoaded) { MultiLanguageMgr.LoadJson(); } if (!PlayerPreference.loaded) { PlayerPreference.ReadFromSavedPref(); } MultiLanguageMgr.SwitchAllTextsLanguage(PlayerPreference.Language); ResourceRequest request = PauseMenu.LoadAsync(); request.completed += delegate { pauseMenu = Instantiate((PauseMenu)request.asset, MainCanvas.transform); pauseMenu.gameObject.SetActive(false); }; StartCoroutine(LoadSetting()); }
private void SpawnDestroyEvent() { float chance = Random.Range(0f, 1f); for (int i = 0; i < destroyRewards.Length; i++) { if (chance <= destroyRewards[i].Chance) { Vector3 vec = new Vector3(Random.Range(0f, 1f), Random.Range(0f, 1f)); switch (destroyRewards[i].Type) { case DestroyEventType.MedPack: RewardPrefabPool.GetPool(RewardType.MedPack).GetFromPool().Setup(transform.position, RandomVec() * 2); break; case DestroyEventType.MissileSupply: RewardPrefabPool.GetPool(RewardType.MissileSupply).GetFromPool().Setup(transform.position, RandomVec() * 2); break; case DestroyEventType.Explode: Weapon explosion = WeaponPrefabPool.GetPool(WeaponType.Explosion).GetFromPool(); explosion.Setup(transform.position, Vector3.zero); explosion.StartCoroutine(DelayExecute(1, delegate { explosion.GetComponent <Animator>().SetTrigger("End"); })); break; } if (onlyOneDestroyEvent) { break; } } } }
private void OnCollisionEnter2D(Collision2D other) { if (other.gameObject.layer != GameManager.PlayerLayer) { return; } switch (type) { case RewardType.MedPack: other.gameObject.GetComponent <PlayerContoller>().AddHealth(arg); break; case RewardType.MissileSupply: other.gameObject.GetComponent <PlayerContoller>().AddMissile(arg); break; } RewardPrefabPool.GetPool(type).PutReward(this); }