示例#1
0
    private void Spawn()
    {
        IInputController controller;

        switch (controllerType)
        {
        case ControllerType.XBox:       controller = InputControllerManager.CreateGamepad(false, controllerIndex);      break;

        case ControllerType.PS4:        controller = InputControllerManager.CreateGamepad(true, controllerIndex);       break;

        default: controller = new NullController(); break;
        }

        var cameraRig = Instantiate(cameraRigPrefab);

        cameraRig.SetInputController(controller);

        var player = Instantiate(playerPrefab);

        // Hud won't show without canvas
        var hud = Instantiate(hudPrefab, hudCanvas.transform);

        hud.viewportRect = new Rect(0, 0, 1, 1);
        hud.Rebuild();

        player.Initialize(new PlayerHandle(0), cameraRig, controller, Color.clear, hud);
        player.Spawn(transform.position, transform.forward);

        displayObject.SetActive(false);
    }
 private void Awake()
 {
     if (inputControllerManager == null)
     {
         inputControllerManager = new InputControllerManager();
     }
     inputControllerManager.RegisterAsDefaultController(this);
 }
示例#3
0
    private void InitializeLevel()
    {
        IInputController[] inputControllers = InputControllerManager.CreateControllers(configuration.playerCount);
        players = new PlayerController[configuration.playerCount];

        var viewRects = GetViewRects(configuration.playerCount);

        // Find spawn points and hide them from view. We can't unactivate them from elsewhere before used here.
        spawnPoints = FindObjectsOfType <PlayerSpawnPoint>();
        for (int i = 0; i < spawnPoints.Length; i++)
        {
            spawnPoints[i].gameObject.SetActive(false);
        }

        for (int i = 0; i < configuration.playerCount; i++)
        {
            OrbitCameraTP orbitCamera = Instantiate(
                orbitCameraPrefab,
                spawnPoints[i].Position + Vector3.left * 200f,
                spawnPoints[i].Orientation
                );

            orbitCamera.SetInputController(inputControllers[i]);
            orbitCamera.GetCamera().rect = viewRects[i];

            PlayerHudScript hud = Instantiate(
                hudPrefab,
                hudCanvas.transform
                );

            hud.viewportRect = viewRects[i];
            hud.Rebuild();

            players[i] = Instantiate(playerPrefab);

            // Get controller, camera, hud, random color, etc
            players[i].Initialize(
                new PlayerHandle(i),
                orbitCamera,
                inputControllers[i],
                playerColors [i],
                hud
                );

            players[i].Spawn(spawnPoints[i].Position, spawnPoints[i].Forward);
        }

        musicManager.PlayStart();


        judge       = new Judge(players, rules, StartPlayerWinRoutine);
        judge.rules = configuration.rules;
        GameStart();
    }
示例#4
0
 void Awake()
 {
     instance = this;
 }