public RacePlayer(Ball ball) { sr = StageReferences.Active; lap = 1; ball.CanMove = false; ball.CheckpointPassed += Ball_CheckpointPassed; ball.RespawnRequested += Ball_RespawnRequested; if (ball.isLocalPlayer) { ball.SwitchCamerasEvent += Ball_SwitchCameraRequest; } currentCheckpointPos = sr.checkpoints[0].transform.position; this.ball = ball; ball.CameraCreatedEvent += (sender, e) => { ballCamera = e.CameraCreated2; oldBallCamera = e.OldCamera2; newBallCamera = e.NewCamera2; ballCamera.SetDirection(sr.checkpoints[0].transform.rotation); }; checkpointTimes = new float[StageReferences.Active.checkpoints.Length]; SetNextCheckpoint(); }
public RacePlayer(Ball ball, MatchMessenger matchMessenger, MatchPlayer associatedMatchPlayer) { sr = StageReferences.Active; this.matchMessenger = matchMessenger; this.associatedMatchPlayer = associatedMatchPlayer; matchMessenger.CreateListener <CheckpointPassedMessage>(CheckpointPassedHandler); matchMessenger.CreateListener <RaceTimeoutMessage>(RaceTimeoutHandler); lap = 1; ball.CanMove = false; ball.AutoBrake = true; ball.CheckpointPassed += Ball_CheckpointPassed; ball.RespawnRequested += Ball_RespawnRequested; currentCheckpointPos = sr.checkpoints[0].transform.position; this.ball = ball; ball.CameraCreated += (sender, e) => { ballCamera = e.CameraCreated; ballCamera.SetDirection(sr.checkpoints[0].transform.rotation); }; checkpointTimes = new float[StageReferences.Active.checkpoints.Length]; SetNextCheckpoint(); }
private void Ball_SwitchCameraRequest(object sender, EventArgs e) { if (ballCamera == oldBallCamera.GetComponent <IBallCamera>()) { Cursor.lockState = CursorLockMode.None; Cursor.visible = true; oldBallCamera.GetComponent <PivotCamera>().UseMouse = false; newBallCamera.SetActive(true); oldBallCamera.SetActive(false); ActiveData.GameSettings.useOldControls = false; ballCamera = newBallCamera.GetComponent <IBallCamera>(); } else if (ballCamera == newBallCamera.GetComponent <IBallCamera>()) { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; oldBallCamera.GetComponent <PivotCamera>().UseMouse = true; newBallCamera.SetActive(false); oldBallCamera.SetActive(true); ActiveData.GameSettings.useOldControls = true;; oldBallCamera.GetComponent <PivotCamera>().SetDirection(ballCamera.AttachedCamera.transform.rotation); oldBallCamera.GetComponent <PivotCamera>().AttachedCamera.transform.position = ballCamera.AttachedCamera.transform.position; ballCamera = oldBallCamera.GetComponent <IBallCamera>(); } }
private void Ball_SwitchCameraRequest(object sender, EventArgs e) { if (ballCamera == oldBallCamera.GetComponent <IBallCamera>()) { Cursor.lockState = CursorLockMode.None; Cursor.visible = true; oldBallCamera.GetComponent <PivotCamera>().UseMouse = false; newBallCamera.SetActive(true); oldBallCamera.SetActive(false); ActiveData.GameSettings.useOldControls = false; // newBallCamera.GetComponent<OmniCamera>().SetDirection(ballCamera.AttachedCamera.transform.rotation) ; // newBallCamera.GetComponent<Camera>().transform.rotation= ballCamera.AttachedCamera.transform.rotation; ballCamera = newBallCamera.GetComponent <IBallCamera>(); } else if (ballCamera == newBallCamera.GetComponent <IBallCamera>()) { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; oldBallCamera.GetComponent <PivotCamera>().UseMouse = true; newBallCamera.SetActive(false); oldBallCamera.SetActive(true); ActiveData.GameSettings.useOldControls = true; oldBallCamera.GetComponent <PivotCamera>().SetDirection(ballCamera.AttachedCamera.transform.rotation); oldBallCamera.GetComponent <PivotCamera>().AttachedCamera.transform.position = ballCamera.AttachedCamera.transform.position; ballCamera = oldBallCamera.GetComponent <IBallCamera>(); } // oldBallCamera Debug.Log("Quiero cambiar mi camara... pero mi mama no me deja"); }
public CameraCreationArgs(IBallCamera cameraCreated) { CameraCreated = cameraCreated; }
private void Start() { if (!isLocalPlayer && !isServer) { Up = Vector3.up; //Set up drifty smoke // smoke = Instantiate(prefabs.Smoke); // smoke.target = this; // smoke.DriftAudio = sounds.Brake; //Grab reference to Rigidbody rb = GetComponent <Rigidbody>(); //Set angular velocity (This is necessary for fast) rb.maxAngularVelocity = 1000f; //Set object name gameObject.name = nickname; //Set character if (CharacterId >= 0 && CharacterId < Data.ActiveData.Characters.Length) { SetCharacter(Data.ActiveData.Characters[CharacterId]); } //Create objects and components based on ball type if (type == BallType.Player && cameraBall == null && isLocalPlayer) { OmniCamera newCam = Instantiate(prefabs.Camera); newCam.Target = rb; newCam.CtrlType = ctrlType; PivotCamera oldCam = Instantiate(prefabs.OldCamera); oldCam.Target = rb; oldCam.CtrlType = ctrlType; //Create camera if (Data.ActiveData.GameSettings.useOldControls) { cameraBall = oldCam; newCam.gameObject.SetActive(false); ((PivotCamera)cameraBall).UseMouse = ctrlType == ControlType.Keyboard; } else { cameraBall = newCam; oldCam.gameObject.SetActive(false); } cameraBall.Target = rb; cameraBall.CtrlType = ctrlType; if (CameraCreatedEvent != null) { CameraCreatedEvent(this, new CameraCreationArgs(cameraBall, oldCam.gameObject, newCam.gameObject)); } } if (type == BallType.LobbyPlayer) { //Make the lobby camera follow this ball var cam = FindObjectOfType <LobbyCamera>(); if (cam) { cam.AddBall(this); } } if ((type == BallType.Player || type == BallType.LobbyPlayer) && isLocalPlayer && input == null) { //Create input component input = gameObject.AddComponent <BallControlInput>(); } if (type == BallType.AI) { } } }
public void RpcInit(BallType type, ControlType ctrlType, int characterId, string nickname) { this.type = type; this.ctrlType = ctrlType; this.characterId = characterId; this.nickname = nickname; Debug.Log("We re running RPCInit character is _ " + this.characterId); Up = Vector3.up; //Set up drifty smoke smoke = Instantiate(prefabs.Smoke); smoke.target = this; smoke.DriftAudio = sounds.Brake; //Grab reference to Rigidbody rb = GetComponent <Rigidbody>(); //Set angular velocity (This is necessary for fast) rb.maxAngularVelocity = 1000f; //Set object name gameObject.name = nickname; //Set character if (CharacterId >= 0 && CharacterId < Data.ActiveData.Characters.Length) { SetCharacter(Data.ActiveData.Characters[CharacterId]); } //Create objects and components based on ball type if (type == BallType.Player && cameraBall == null && isLocalPlayer) { OmniCamera newCam = Instantiate(prefabs.Camera); newCam.Target = rb; newCam.CtrlType = ctrlType; PivotCamera oldCam = Instantiate(prefabs.OldCamera); oldCam.Target = rb; oldCam.CtrlType = ctrlType; //Create camera if (Data.ActiveData.GameSettings.useOldControls) { cameraBall = oldCam; newCam.gameObject.SetActive(false); ((PivotCamera)cameraBall).UseMouse = ctrlType == ControlType.Keyboard; } else { cameraBall = newCam; oldCam.gameObject.SetActive(false); } cameraBall.Target = rb; cameraBall.CtrlType = ctrlType; if (CameraCreatedEvent != null) { CameraCreatedEvent(this, new CameraCreationArgs(cameraBall, oldCam.gameObject, newCam.gameObject)); } } if (type == BallType.LobbyPlayer) { //Make the lobby camera follow this ball var cam = FindObjectOfType <LobbyCamera>(); if (cam) { cam.AddBall(this); } } if ((type == BallType.Player || type == BallType.LobbyPlayer && isLocalPlayer) && input == null) { //Create input component input = gameObject.AddComponent <BallControlInput>(); } if (type == BallType.AI) { //Create AI component var ai = gameObject.AddComponent <BallControlAI>(); ai.pathToFollow = FindObjectOfType <Path>(); //Create target for the AI AITarget pFollower = Instantiate(prefabs.AiTarget); pFollower.GetComponent <PathFollower>().path = ai.pathToFollow; pFollower.stupidness = ai.stupidness; pFollower.GetComponent <Patroller>().target = gameObject; ai.target = pFollower; } if (!isServer) { } }
public CameraCreationArgs(IBallCamera cameraCreated, GameObject oldCamera, GameObject newCamera) { CameraCreated2 = cameraCreated;// aqui usamos el private set... OldCamera2 = oldCamera; NewCamera2 = newCamera; }