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); }
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(); }
void Awake() { instance = this; }