コード例 #1
0
    public void StartLevel()
    {
        var terrain         = LevelCreator.Terrain;
        var startPosition2D = LevelCreator.StartPostion;

        for (var i = 0; i < GameController.Instance.ActivePlayers; i++)
        {
            Vector3 spawnPosition = new Vector3(startPosition2D.x, 0, startPosition2D.y);
            switch (i)
            {
            case 0:
                spawnPosition += new Vector3(3, 0, 0);
                break;

            case 1:
                spawnPosition += new Vector3(0, 0, 3);
                break;

            case 2:
                spawnPosition += new Vector3(-3, 0, 0);
                break;

            case 3:
                spawnPosition += new Vector3(0, 0, -3);
                break;
            }
            spawnPosition = new Vector3(spawnPosition.x, terrain.SampleHeight(spawnPosition) + 0.05f, spawnPosition.z);
            PlayerCharacters[i].transform.position = spawnPosition;
        }
        Vector3 wispPosition = new Vector3(startPosition2D.x, 0, startPosition2D.y);

        wispPosition += new Vector3(0, terrain.SampleHeight(wispPosition) + 0.05f, 0);
        LightWisp.GetComponent <NavMeshAgent>().Warp(wispPosition);

        var cameraPosition = new Vector3(startPosition2D.x, 0, startPosition2D.y);

        MainCamera.gameObject.transform.position = cameraPosition + new Vector3(0, terrain.SampleHeight(cameraPosition) + 20, 0);

        //Reactivate all controllers
        for (var i = 0; i < GameController.Instance.ActivePlayers; i++)
        {
            PlayerCharacters[i].gameObject.SetActive(true);
        }

        //Initialize Light Wisp
        if (LightWisp && LightWisp.GetComponent <LightOrbEffects>())
        {
            LightWisp.GetComponent <LightOrbEffects>().InitializeLightOrb(PlayerCharacters, GameController.Instance.ActivePlayers);
        }

        //Set reference to terrain;
        SwarmlingSpawner.SetTerrain(LevelCreator.Terrain);

        //Initialize SwarmSpawner
        if (SwarmlingSpawner)
        {
            SwarmlingSpawner.InitializeSwarmSpawner(PlayerCharacters, GameController.Instance.ActivePlayers);
        }
    }