Exemple #1
0
    IEnumerator Start()
    {
        logo.SetActive(false);

        // 背景ロード
        yield return(EnvSetting.LoadEnvScene(envSceneName));

        var envSetting = EnvSetting.Instance;

        // 開幕カメラ
        Fade.Open();
        logo.SetActive(true);
        yield return(DescendCamera());

        yield return(new WaitForSeconds(1f));

        // キャラ走り出す
        foreach (var r in runners)
        {
            StartCoroutine(DemoRun(r, envSetting.demoTraversalPoints));
        }

        // ゲーム開始待ち
        yield return(new WaitUntil(() => Input.GetKey(KeyCode.Z) || Input.GetMouseButton(0) || Input.GetMouseButton(1)));

        yield return(Fade.Close());

        yield return(SceneManager.LoadSceneAsync("Game"));
    }
Exemple #2
0
    /// <summary>
    /// ゲームフィールドのロードとオブジェクトのspawn
    /// </summary>
    /// <returns></returns>
    private IEnumerator LoadAndSpawn()
    {
        // 背景ロード。何かすでにロード済みならロードしない(テストのためにGameとGameEnv両方シーンがある状態等)
        if (EnvSetting.Instance == null)
        {
            var sceneName = string.IsNullOrEmpty(envSceneName) ? "GameEnv" : envSceneName;
            yield return(EnvSetting.LoadEnvScene(sceneName));
        }
        var envSetting = EnvSetting.Instance;

        // プレーヤーspawn
        var posq = new Queue <Transform>(envSetting.playerPositions.OrderBy(e => Random.value).ToList());

        SpawnMyPlayer(posq);
        SpawnEnemies(posq);

        // 缶spawner初期化
        canSpawner.SetSpawnPositions(envSetting.canPositions);
        canSpawner.onSpawn.AddListener(OnCanSpawn);

        // 箱全部spawn
        boxSpawner.SetSpawnPositions(envSetting.boxPositions);
        boxSpawner.onSpawn.AddListener(OnBoxSpawn);
        boxSpawner.SpawnAll(boxPrefab); // 全位置にspawn
    }