|
|
|
@ -5,9 +5,7 @@ using UnityEngine.UI; |
|
|
|
|
|
|
|
public class LevelGenerator : Singleton<LevelGenerator> |
|
|
|
{ |
|
|
|
public LineRenderer lineRenderer; |
|
|
|
public GameObject levelFather; |
|
|
|
public List<GameObject> levelList = new List<GameObject>(); |
|
|
|
public LineRenderer lineRenderer; |
|
|
|
public GameObject generatorPoint; |
|
|
|
|
|
|
|
[Header("½ÚµãÉú³ÉÊýÁ¿")] |
|
|
|
@ -19,27 +17,77 @@ public class LevelGenerator : Singleton<LevelGenerator> |
|
|
|
|
|
|
|
private void Start() |
|
|
|
{ |
|
|
|
GeneratorLevelMap(generatorCount-1); |
|
|
|
if(LevelDevelopManager .Instance .levelDevelopData .levelStep <=0) |
|
|
|
{ |
|
|
|
GeneratorLevelMap(generatorCount - 1); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
GeneratorLevelMapFormSave(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void GeneratorLevelMap( int nodeCount ) |
|
|
|
{ |
|
|
|
levelList.Clear(); |
|
|
|
LevelDevelopManager.Instance.levelList.Clear(); |
|
|
|
LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Clear(); |
|
|
|
generatorPoint.transform.position = new Vector3(0, -60, 80); |
|
|
|
for (int i =0;i<nodeCount;i++) |
|
|
|
{ |
|
|
|
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y+15, 80); |
|
|
|
var level= Instantiate(levelPrefabList[Random.Range(0, levelPrefabList.Count)], generatorPoint.transform.position, Quaternion.identity); |
|
|
|
level.transform.SetParent(levelFather.transform); |
|
|
|
levelList.Add(level); |
|
|
|
int index = Random.Range(0, levelPrefabList.Count); |
|
|
|
LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Add(index); |
|
|
|
var level= Instantiate(levelPrefabList[index] ,generatorPoint.transform.position, Quaternion.identity); |
|
|
|
level.transform.SetParent(LevelDevelopManager .Instance . levelFather.transform); |
|
|
|
LevelNode levelNode = level.GetComponent<LevelNode>(); |
|
|
|
LevelDevelopManager.Instance.levelList.Add(levelNode); |
|
|
|
levelNode.stepIndex = LevelDevelopManager.Instance.levelList.Count-1; |
|
|
|
|
|
|
|
lineRenderer.SetPosition(i, level.transform.position); |
|
|
|
} |
|
|
|
|
|
|
|
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y + 15, 80); |
|
|
|
var bossLevel = Instantiate(BossLevelPrefabList[Random.Range(0, BossLevelPrefabList.Count)], generatorPoint.transform.position, Quaternion.identity); |
|
|
|
bossLevel.transform.SetParent(levelFather.transform); |
|
|
|
levelList.Add(bossLevel); |
|
|
|
int indexBoss = Random.Range(0, BossLevelPrefabList.Count); |
|
|
|
LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Add(indexBoss); |
|
|
|
var bossLevel = Instantiate(BossLevelPrefabList[indexBoss], generatorPoint.transform.position, Quaternion.identity); |
|
|
|
bossLevel.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform); |
|
|
|
LevelNode levelNodeBoss = bossLevel.GetComponent<LevelNode>(); |
|
|
|
LevelDevelopManager.Instance.levelList.Add(levelNodeBoss); |
|
|
|
levelNodeBoss.stepIndex = LevelDevelopManager.Instance.levelList.Count-1; |
|
|
|
|
|
|
|
lineRenderer.SetPosition(nodeCount, bossLevel.transform.position); |
|
|
|
} |
|
|
|
|
|
|
|
public void GeneratorLevelMapFormSave() |
|
|
|
{ |
|
|
|
LevelDevelopManager.Instance.levelList.Clear(); |
|
|
|
generatorPoint.transform.position = new Vector3(0, -60, 80); |
|
|
|
for (int i = 0; i < LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Count; i++) |
|
|
|
{ |
|
|
|
if(i== LevelDevelopManager.Instance.levelDevelopData.levelIndexList.Count-1) |
|
|
|
{ |
|
|
|
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y + 15, 80); |
|
|
|
var levelBoss = Instantiate(BossLevelPrefabList[LevelDevelopManager.Instance.levelDevelopData.levelIndexList[i]], generatorPoint.transform.position, Quaternion.identity); |
|
|
|
levelBoss.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform); |
|
|
|
LevelNode levelNodeBoss = levelBoss.GetComponent<LevelNode>(); |
|
|
|
LevelDevelopManager.Instance.levelList.Add(levelNodeBoss); |
|
|
|
levelNodeBoss.stepIndex = LevelDevelopManager.Instance.levelList.Count - 1; |
|
|
|
|
|
|
|
lineRenderer.SetPosition(i, levelBoss.transform.position); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
generatorPoint.transform.position = new Vector3(0, generatorPoint.transform.position.y + 15, 80); |
|
|
|
var level = Instantiate(levelPrefabList[LevelDevelopManager.Instance.levelDevelopData.levelIndexList[i]], generatorPoint.transform.position, Quaternion.identity); |
|
|
|
level.transform.SetParent(LevelDevelopManager.Instance.levelFather.transform); |
|
|
|
LevelNode levelNode = level.GetComponent<LevelNode>(); |
|
|
|
LevelDevelopManager.Instance.levelList.Add(levelNode); |
|
|
|
levelNode.stepIndex = LevelDevelopManager.Instance.levelList.Count - 1; |
|
|
|
|
|
|
|
lineRenderer.SetPosition(i, level.transform.position); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|