Example #1
0
    public void RemoveOldestPiece()
    {
        LevelPieces oldestPiece = pieces[0];

        pieces.Remove(oldestPiece);
        Destroy(oldestPiece.gameObject);
    }
Example #2
0
    public void AddPiece()
    {
        // random number 생성
        int randomIndex = 0;

        if (pieces.Count == 0)
        {
            randomIndex = 0;
        }
        else
        {
            randomIndex = Random.Range(0, levelPrefabs.Count);
        }

        //levelPrefab을 Instantiate 하여 piece variable에 저장
        LevelPieces piece = (LevelPieces)Instantiate(levelPrefabs[randomIndex]);

        //생성된 조각을 현재 객체에 종속
        piece.transform.SetParent(this.transform, false);

        Vector3 spawnPosition = Vector3.zero;

        //position
        if (pieces.Count == 0)
        {
            //first piece
            spawnPosition = levelStartPoint.position;
        }
        else
        {
            //마지막 조각의 종료지점이 새로운 조각의 생성점
            spawnPosition = pieces[pieces.Count - 1].exitpoint.position + Vector3.up * Random.Range(-2f, 2f);
            if ((spawnPosition.y < (levelStartPoint.position.y - 2)) || spawnPosition.y > (levelStartPoint.position.y + 2))
            {
                spawnPosition.y = levelStartPoint.position.y;
            }
        }

        piece.transform.position = spawnPosition;
        pieces.Add(piece);      //생성
    }