Exemplo n.º 1
0
    public void handleDrops(GameObject enemy)
    {
        EnemyDetails enemyDetailsComponent = enemy.GetComponent <EnemyDetails>();

        if (enemyDetailsComponent == null)
        {
            return;
        }

        int  numCoins = Random.Range(enemyDetailsComponent.minCoinDrop, enemyDetailsComponent.maxCoinDrop) + GameManager.currentWave / dropIncrementWaveInterval;
        bool lifeDrop = Random.Range(0.0f, 1.0f) < enemyDetailsComponent.livesDropChance;

        for (int i = 0; i < numCoins; i++)
        {
            GameObject coin = CoinObjectPool.instance.getPooledObject();
            coin.transform.position = coin.transform.position + enemy.transform.position;

            BaseDrop baseDropComponent = coin.GetComponent <BaseDrop>();
            if (baseDropComponent != null)
            {
                baseDropComponent.setTarget(coin.transform.position + getRandomDeviation());
            }
        }

        if (lifeDrop)
        {
            GameObject life = LivesObjectPool.instance.getPooledObject();
            life.transform.position = life.transform.position + enemy.transform.position;

            BaseDrop baseDropComponent = life.GetComponent <BaseDrop>();
            if (baseDropComponent != null)
            {
                baseDropComponent.setTarget(life.transform.position + getRandomDeviation());
            }
        }
    }
Exemplo n.º 2
0
    private void OnGUI()
    {
        if (p_SpawnResource == null)
        {
            p_SpawnResource = ScriptableObject.CreateInstance <SpawnResourcesSetting>();
            ListInit();
            SettingList = ResourceLoad(p_SpawnResource.eRoom.ToString());
            TabReset(SettingList.Count);
            PatternChoiceList = ResourceLoad("Pattern");
        }

        if (p_EnemyDetails == null)
        {
            p_EnemyDetails = ScriptableObject.CreateInstance <EnemyDetails>();
        }

        using (new GUILayout.HorizontalScope())
        {
            p_SpawnResource.eRoom = (SpawnResourcesSetting.eWORLD)EditorGUILayout.EnumPopup("設定する項目", p_SpawnResource.eRoom);
            if (p_SpawnResource.eRoom != p_SpawnResource.eTmpRoom)
            {
                if (p_SpawnResource.eTmpRoom == SpawnResourcesSetting.eWORLD.Pattern)//パターンから離れたら
                {
                    PatternSave(PatternList);
                    p_SpawnResource.eTmpRoom = p_SpawnResource.eRoom;
                    PatternList.Clear();
                }
                if (p_SpawnResource.eRoom == SpawnResourcesSetting.eWORLD.Chino)
                {
                }
                else if (p_SpawnResource.eRoom != SpawnResourcesSetting.eWORLD.Pattern)
                {
                    PatternChoiceList.Clear();
                    ResourceSave(SettingList, p_SpawnResource.eTmpRoom.ToString());
                    p_SpawnResource.eTmpRoom = p_SpawnResource.eRoom;
                    ListInit();
                    SettingList       = ResourceLoad(p_SpawnResource.eRoom.ToString());
                    PatternChoiceList = ResourceLoad("Pattern");
                    TabReset(SettingList.Count);
                }
                else if (p_SpawnResource.eRoom == SpawnResourcesSetting.eWORLD.Pattern)//パターンを選んだら
                {
                    ResourceSave(SettingList, p_SpawnResource.eTmpRoom.ToString());
                    p_SpawnResource.eTmpRoom = p_SpawnResource.eRoom;
                    ListInit();
                    List <string[]> tempList = ResourceLoad(p_SpawnResource.eRoom.ToString());
                    PatternListConvert(tempList);
                    TabReset(tempList.Count);
                }
            }
        }
        EditorGUILayout.Separator();
        EditorGUILayout.Separator();
        EditorGUILayout.Separator();
        EditorGUILayout.Separator();
        EditorGUILayout.Separator();
        EditorGUILayout.LabelField("ようこそ! Unityエディタ拡張の沼へ!");



        switch (p_SpawnResource.eRoom)
        {
        case SpawnResourcesSetting.eWORLD.Pattern:
            PatternUpdate();
            break;

        case SpawnResourcesSetting.eWORLD.Chino:
            ChinoUpdate();
            break;

        default:
            SpawnUpdate();
            break;
        }


        if (SettingList[0][0] != "-0")
        {
            using (new GUILayout.HorizontalScope())
            {
                if (GUILayout.Button("ファイル保存", GUILayout.MinWidth(500.0f), GUILayout.MinHeight(30.0f)))
                {
                    ResourceSave(SettingList, p_SpawnResource.eRoom.ToString());
                }
            }
            using (new GUILayout.HorizontalScope())
            {
                if (GUILayout.Button("全消し", GUILayout.MinWidth(300.0f), GUILayout.MinHeight(30.0f)))
                {
                    SettingList.Clear();
                    PatternList.Clear();
                    newName.Clear();

                    ListInit();
                    TabReset(SettingList.Count);
                    PatternListInit("New");
                }
            }
        }
    }
Exemplo n.º 3
0
 void Awake()
 {
     EnemyDetails_ = this;
 }
Exemplo n.º 4
0
 /// <summary>
 /// Used to pass enemy details from the pool of the current active enemies
 /// </summary>
 /// <param name="details">Details of a given enemy</param>
 public void CreateNewEnemy(EnemyDetails details)
 {
     CreateNewEnemy(details.EnemyClass, details.MaxHealth, details.Health, details.CurrWeapon);
 }