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()); } } }
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"); } } } }
void Awake() { EnemyDetails_ = this; }
/// <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); }