protected void DestroyAllLadder() { GameObject[] objs = GameObjectUtils.FindGameObjectsWithTag(Constants.ObjectTags.ladder.ToString()); foreach (GameObject obj in objs) { Destroy(obj); } }
public void GenerateLevelData(bool withBackup = false) { Debug.Log(withBackup); if (withBackup) { level = backupLevel; } else { // Push all data to level List <LadderInfo> ladderInfos = new List <LadderInfo>(); level = new Level(levelIndex, tutorialContent, ladderInfos); LevelUtil.setCurrentLevel(level); GameObject[] ladders = GameObjectUtils.FindGameObjectsWithTag(Constants.ObjectTags.ladder.ToString()); GameObjectUtils.SortGameObjectByPositionY(ladders); for (int i = 0; i < ladders.Length; i++) { GameObject ladder = ladders[i]; LadderInfo ladderInfo = new LadderInfo(); Ladder ladderComponent = ladder.GetComponent <Ladder>(); ladderInfo.initAngle = -1 * ladderComponent.initAngle; ladderInfo.type = Constants.LadderType.normalLadder; ladderInfo.timeout = ladderComponent.timeout; LadderRotate ladderRotate = ladder.GetComponent <LadderRotate>(); if (ladderRotate.speed > 0) { ladderInfo.rotate = new LadderRotateData(ladderRotate.isClockwise, ladderRotate.speed); } else { ladderInfo.rotate = null; } LadderMovement ladderMovement = ladder.GetComponent <LadderMovement>(); if (ladderMovement.speed > 0) { ladderInfo.initPosition.Fill(ladder.GetComponent <Explode>().initPosition); MyVector3[] points = new MyVector3[ladderMovement.points.Count]; for (int j = 0; j < ladderMovement.points.Count; j++) { points[j] = new MyVector3(); points[j].Fill(ladderMovement.points[j]); } ladderInfo.movement = new LadderMovementData(ladderMovement.type, points, ladderMovement.distances, ladderMovement.speed, ladderMovement.radius, ladderMovement.isClockwise, ladderMovement.initAngle); } else { ladderInfo.initPosition.Fill(ladder.transform.position); ladderInfo.movement = null; } ladderInfos.Add(ladderInfo); } level.ladders = ladderInfos; backupLevel = level; } }