Esempio n. 1
0
 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;
        }
    }