예제 #1
0
    private void Start()
    {
        // Find all music in user's level directory
        string[] musicFiles = Directory.GetFiles(CrossSceneData.LevelDir, "*.ogg", SearchOption.AllDirectories);

        // Return if no music was found
        if (musicFiles.Length == 0)
        {
            return;
        }

        // Random index
        int index = Random.Range(0, musicFiles.Length - 1);

        MusicName = Path.GetFileName(musicFiles[index]);
        MusicName = MusicName.Replace(".ogg", "");
        MusicDir  = musicFiles[index];

        // Play randomly chosen music
        string uri = "file://" + CrossSceneData.LevelDir + "/" + MusicName + "/" + MusicName + ".ogg";

        StartCoroutine(GetComponent <MusicLoader>().PlayMusic(MusicSource, uri));

        // Load meta data
        LevelDataPasser       levelDataPasser = GetComponent <LevelDataPasser>();
        string                fileLocation    = CrossSceneData.LevelDir + "/" + MusicName + "/" + MusicName;
        List <(float, float)> metaDataList    = levelDataPasser.LoadLevelDataFromDat(fileLocation);

        BpmValue    = metaDataList[0].Item1;
        OffsetValue = metaDataList[0].Item2;

        // Make logo beat to music
        StartCoroutine(OffsetBeatAnimation());
    }
예제 #2
0
    private void Awake()
    {
        levelCreatorManager = FindObjectOfType <LevelCreatorManager>();
        buttonImage         = GetComponent <Image>();
        buttonImage.sprite  = defaultSprite;

        timelineIndicator = FindObjectOfType <TimelineIndicator>();
        levelDataPasser   = FindObjectOfType <LevelDataPasser>();
    }