Example #1
0
    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());
    }
Example #2
0
    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;
                }
            }
        }
    }
Example #3
0
    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);
    }