// Use this for initialization void Start() { cameraOne = GameObject.Find("FinishCamera").GetComponent <Camera>(); kartOne = GameObject.Find("KartFirst").GetComponentInChildren <Renderer>(); kartTwo = GameObject.Find("KartSecond").GetComponentInChildren <Renderer>(); kartThree = GameObject.Find("KartThird").GetComponentInChildren <Renderer>(); kartFour = GameObject.Find("KartFourth").GetComponentInChildren <Renderer>(); podFirst = GameObject.Find("PodiumFirst").GetComponent <Image>(); podSecond = GameObject.Find("PodiumSecond").GetComponent <Image>(); podThird = GameObject.Find("PodiumThird").GetComponent <Image>(); podFourth = GameObject.Find("PodiumFourth").GetComponent <Image>(); psActor = GetComponent <PlayerSelectActor>(); RaceUI = GameObject.FindGameObjectWithTag("RaceUI"); menuButton = GameObject.Find("MenuButton").GetComponent <Image>(); menuText = GameObject.Find("MenuText").GetComponent <Image>(); menuButton.enabled = false; menuText.enabled = false; podFirst.enabled = false; podSecond.enabled = false; podThird.enabled = false; podFourth.enabled = false; lapManager = GetComponent <LapsManager>(); kart_go = GameObject.Find("Camera1"); kart_go2 = GameObject.Find("Camera2"); kart_go3 = GameObject.Find("Camera3"); kart_go4 = GameObject.Find("Camera4"); }
// initialize. void Awake() { //Create manager if one doesn't exist. if (manager != null && manager != this) { Destroy(this.gameObject); return; } else { //Create new gamepad manager instance manager = this; DontDestroyOnLoad(this.gameObject); audioActor = GetComponent <Audio>(); itemManager = GetComponent <ItemManager>(); lpManager = GetComponent <LapsManager>(); posManager = GetComponent <PositionManager>(); newPlacementController = GetComponent <NewPlacementController>(); psActor = GetComponent <PlayerSelectActor>(); winActor = GetComponent <WinActor>(); //Lock gamepadcount based on range GamePadCount = Mathf.Clamp(GamePadCount, 1, 4); gamepads = new List <xbox_gamepad>(); //Create gamepads based on gamepad count. for (int i = 0; i < GamePadCount; ++i) { gamepads.Add(new xbox_gamepad(i + 1)); } } }
// Use this for initialization void Start() { //Create copies of the default values to be able to reset them. forwardAccelerationCopy = forwardAcceleration; backwardAccelerationCopy = reverseAcceleration; maxVelocityCopy = maxVelocity; turnStrengthCopy = turnStrength; lapManager = GameObject.Find("Manager").GetComponent <LapsManager>(); checkPointPosition = GameObject.Find("RespawnPoint"); //Gets karts rigid body and sets the centre of mass. kartBody = GetComponent <Rigidbody>(); kartBody.centerOfMass = Vector3.down; // SetUpCamera(); }
// Update is called once per frame void Update() { Debug.Log(kart.physicsBody.velocity.sqrMagnitude); Debug.Log("Kart " + playerNumber + ": " + checkPointCounter); if ((kart.IsGrounded) && ((gamepad.GetTriggerDown_R() || gamepad.GetTriggerDown_L()))) { smoke1.Play(); smoke2.Play(); } else if (!gamepad.GetTriggerDown_R() || !gamepad.GetTriggerDown_L()) { smoke1.Stop(); smoke2.Stop(); } if (!gamepad.GetTriggerDown_L() && !gamepad.GetTriggerDown_R()) { if (!idleEngine.isPlaying) { idleEngine.Play(); } } if (gamepad.GetTriggerDown_L() || gamepad.GetTriggerDown_R()) { // if(!engineAccelerate.isPlaying) // { // engineAccelerate.Play(); // } } if (kart.physicsBody.velocity.sqrMagnitude > 800) { if (idleEngine.isPlaying) { idleEngine.Stop(); } if (!topEngineSpeed.isPlaying) { topEngineSpeed.Play(); } } Debug.Log(kart.physicsBody.velocity.sqrMagnitude); if (gamepad.GetButtonDown("Y")) { lapNumber++; } if (lapManager == null) { lapManager = GameObject.Find("Manager").GetComponent <LapsManager>(); } kartBody = kart.physicsBody; //If counter = 0 finish line = last checkpoint and first checkpoint = next. //if (checkPointCounter == 0) //{ if (lapManager != null) { if (checkPointCounter == 0) { if (lapManager.checkPoints != null) { nextCheckPoint = lapManager.checkPoints[0]; } if (lapManager.FinishLine != null) { lastCheckPoint = lapManager.FinishLine; } } } if (raceCountdownTimer < 0) { if (gamepad.GetButtonDown("Start") && !isPaused && !npcManager.isPaused) { npcManager.isPaused = true; isPaused = true; Time.timeScale = 0; } else if (gamepad.GetButtonDown("Start") && isPaused) { isPaused = false; npcManager.isPaused = false; Time.timeScale = 1; } } if (isPaused) { coolDown -= Time.unscaledDeltaTime; if (buttonIndex == 1) { if (gamepad.GetStick_L().Y < -deadZone && coolDown < 0) { coolDown = cdCopy; buttonIndex = 2; } if (gamepad.GetButtonDown("A")) { isPaused = false; npcManager.isPaused = false; Time.timeScale = 1; npcManager.enabled = false; } if (gamepad.GetButtonUp("A")) { npcManager.enabled = false; } } if (buttonIndex == 2) { if (gamepad.GetStick_L().Y > deadZone && coolDown < 0) { coolDown = cdCopy; buttonIndex = 1; } if (gamepad.GetButtonDown("A")) { Time.timeScale = 1; Destroy(GameObject.Find("Manager")); SceneManager.LoadScene(0); } } greyBackDrop.enabled = true; pauseContinue.enabled = true; pauseMenu.enabled = true; pauseUI.enabled = true; } else if (!isPaused) { greyBackDrop.enabled = false; pauseContinue.enabled = false; pauseMenu.enabled = false; pauseUI.enabled = false; } if (buttonIndex == 1) { pauseContinue.color = Color.yellow; pauseMenu.color = Color.grey; } if (buttonIndex == 2) { pauseContinue.color = Color.grey; pauseMenu.color = Color.yellow; } //if (lapManager.endTime < 0 && lapNumber < 3) //{ // finalPosition = kartPosition; //} //If kart hits slick spin kart for set time. if (boostPlayer) { kart.SpeedBoost(boostPower, boostTime, 3.0f, 1.0f); if (!gasLeak.isPlaying) { gasLeak.Play(); } boostPlayer = false; } if (hitSlick) { kart.Spin(slickSpinOutTime); kart.SpeedPenalty(slickSpeedPenalty, lockSteerTime, 1.0f); lockSteer = true; hitSlick = false; } if (lockSteer) { lockSteerTime -= Time.deltaTime; kart.maxSteerAngle = 0.0f; if (lockSteerTime < 0) { kart.maxSteerAngle = steerAngleCopy; lockSteerTime = slickSpinOutTime; lockSteer = false; } } raceCountdownTimer -= Time.deltaTime; if (raceCountdownTimer > 0) { kartBody.constraints = RigidbodyConstraints.FreezeAll; } else { kartBody.constraints = RigidbodyConstraints.None; } //If the player is disabled. if (playerDisabled) { Vector3 tempVector; deathParticles.Play(); tempVector = deathParticles.transform.position; //Freeze rigidbody, disable mesh, reset velocity, move kart slightly back and up. if (!explosion.isPlaying) { explosion.Play(); } disabledTimer += Time.deltaTime; kartBody.velocity = new Vector3(); kartMat.material = transparent; kartBody.constraints = RigidbodyConstraints.FreezeAll; mesh.SetActive(false); if (setOnce) { this.gameObject.transform.position = gameObject.transform.position + (transform.forward * 12); gameObject.transform.position = gameObject.transform.position + (transform.up * 2); setOnce = false; } deathParticles.transform.position = tempVector; //If disable timer is greater than 0 take constraints off car //turn mesh on and turn off/on relevant bools. if (disabledTimer > 2.0f) { immuneToDamage = true; deathParticles.transform.position = kart.transform.position; deathParticles.Stop(); respawnParticles.Play(); kartBody.constraints = RigidbodyConstraints.None; disabledTimer = 0.0f; playerDisabled = false; mesh.SetActive(true); setOnce = true; } } if (immuneToDamage) { immuneTimer -= Time.deltaTime; flashingTimer -= Time.deltaTime; if (flashingTimer < 0) { flashingTimer = ftCopy; if (flashFull) { kartMat.material = matCopy; wheel1.material = wheelCopy; wheel2.material = wheelCopy; wheel3.material = wheelCopy; wheel4.material = wheelCopy; flashClear = true; flashFull = false; } else if (flashClear) { kartMat.material = transparent; kartMat.material.color = Color.cyan; wheel1.material = transparent; wheel1.material.color = Color.cyan; wheel2.material = transparent; wheel2.material.color = Color.cyan; wheel3.material = transparent; wheel3.material.color = Color.cyan; wheel4.material = transparent; wheel4.material.color = Color.cyan; flashClear = false; flashFull = true; } } if (immuneTimer < 0) { respawnParticles.Stop(); immuneToDamage = false; immuneTimer = 5.0f; kartMat.material = matCopy; wheel1.material = wheelCopy; wheel2.material = wheelCopy; wheel3.material = wheelCopy; wheel4.material = wheelCopy; } } //If trigger down go forward else if left trigger is down //bring thrust back to 0. if (gamepad.GetTriggerDown_R() && !lockSteer) { kart.Thrust = gamepad.GetTrigger_R(); } else if (!gamepad.GetTriggerDown_L()) { kart.Thrust = 0; } //If trigger down go backward else if right trigger isnt down //bring thrust back to 0. if (gamepad.GetTriggerDown_L() && !lockSteer) { kart.Thrust = -gamepad.GetTrigger_L(); } else if (!gamepad.GetTriggerDown_R()) { kart.Thrust = 0.0f; } //Steering left stick X axis input. kart.Steering = gamepad.GetStick_L().X; if (kart.IsOverturned) { overTurnCounter -= Time.deltaTime; if (overTurnCounter < 0) { this.transform.forward = lastCheckPoint.transform.forward; this.transform.position = lastCheckPoint.transform.position; playerDisabled = true; overTurnCounter = 3; } } //If b button traction, deceleration and breakpower // = set values else reset to defaults. if (gamepad.GetButton("B")) { if (kart.physicsBody.velocity.sqrMagnitude > 50.0f && kart.IsGrounded) { kart.steerSpeed = 0.4f; kart.decelerationSpeed = driftDeceleration; kart.breakPower = breakPower; if (kart.physicsBody.velocity.sqrMagnitude < 200) { kart.traction = 0.4f; } else if (kart.physicsBody.velocity.sqrMagnitude > 200) { kart.traction = driftTraction; } } } else { kart.decelerationSpeed = kart.decelerationSpeedCopy; kart.breakPower = 0.0f; kart.traction = 0.4f; kart.steerSpeed = steerSpeedCopy; } if (gamepad.GetButton("Back")) { this.transform.forward = lastCheckPoint.transform.forward; this.transform.position = lastCheckPoint.transform.position; this.transform.forward = lastCheckPoint.transform.forward; this.transform.position = lastCheckPoint.transform.position; } Debug.Log(checkPointCounter); }
// Use this for initialization void Start() { kart = GetComponent <KartController>(); steerSpeedCopy = kart.steerSpeed; ftCopy = flashingTimer; lapManager = GameObject.Find("Manager").GetComponent <LapsManager>(); npcManager = GameObject.Find("Manager").GetComponent <NewPlacementController>(); // checkPointPosition = GameObject.Find("RespawnPoint"); lapNumber = 1; steerAngleCopy = kart.maxSteerAngle; // lockSteerTime = slickSpinOutTime; //Layer mask to ignore the kart. layerMask = 1 << LayerMask.NameToLayer("Vehicle"); layerMask = ~layerMask; matCopy = kartMat.material; wheelCopy = wheel1.material; //Acquire gamepad based on player number flashFull = true; greyBackDrop = GameObject.Find("GreyBackDrop").GetComponent <Image>(); pauseUI = GameObject.Find("PauseUIPaused").GetComponent <Image>(); pauseContinue = GameObject.Find("PauseUIContinue").GetComponent <Image>(); pauseMenu = GameObject.Find("PauseUIMainMenu").GetComponent <Image>(); idleEngine = GameObject.Find("EngineIdleSound").GetComponent <AudioSource>(); kartCrash = GameObject.Find("CrashSound").GetComponent <AudioSource>(); gasLeak = GameObject.Find("GasSound").GetComponent <AudioSource>(); topEngineSpeed = GameObject.Find("TopSpeedSound").GetComponent <AudioSource>(); explosion = GameObject.Find("ExplosionSound").GetComponent <AudioSource>(); for (int i = 1; i <= GamePadManager.Instance.ConnectedTotal(); ++i) { xbox_gamepad temppad = GamePadManager.Instance.GetGamePad(i); switch (playerNumber) { case 1: if (temppad.newControllerIndex == 1) { gamepad = temppad; } break; case 2: if (temppad.newControllerIndex == 2) { gamepad = temppad; } break; case 3: if (temppad.newControllerIndex == 3) { gamepad = temppad; } break; case 4: if (temppad.newControllerIndex == 4) { gamepad = temppad; } break; default: break; } } }