private void CreateVehicles() { for (int i = 0; i < RCC_DemoVehicles.Instance.vehicles.Length; i++) { // Spawning the vehicle with no controllable, no player, and engine off. We don't want to let player control the vehicle while in selection menu. RCC_CarControllerV3 spawnedVehicle = RCC.SpawnRCC(RCC_DemoVehicles.Instance.vehicles[i], spawnPosition.position, spawnPosition.rotation, false, false, false); // Disabling spawned vehicle. spawnedVehicle.gameObject.SetActive(false); // Adding and storing it in _spawnedVehicles list. _spawnedVehicles.Add(spawnedVehicle); } SpawnVehicle(); // If RCC Camera is choosen, it wil enable RCC_CameraCarSelection script. This script was used for orbiting camera. if (RCCCamera) { if (RCCCamera.GetComponent <RCC_CameraCarSelection> ()) { RCCCamera.GetComponent <RCC_CameraCarSelection> ().enabled = true; } } }
// Use this for initialization void Start() { int selectedIndex = PlayerPrefs.GetInt("SelectedRCCVehicle", 0); RCC.SpawnRCC(RCC_DemoVehicles.Instance.vehicles [selectedIndex], transform.position, transform.rotation, true, true, true); }
public void Spawn() { // Last known position and rotation of last active vehicle. Vector3 lastKnownPos = new Vector3(); Quaternion lastKnownRot = new Quaternion(); // Checking if there is a player vehicle on the scene. if (RCC_SceneManager.Instance.activePlayerVehicle) { lastKnownPos = RCC_SceneManager.Instance.activePlayerVehicle.transform.position; lastKnownRot = RCC_SceneManager.Instance.activePlayerVehicle.transform.rotation; } // If last known position and rotation is not assigned, camera's position and rotation will be used. if (lastKnownPos == Vector3.zero) { if (RCC_SceneManager.Instance.activePlayerCamera) { lastKnownPos = RCC_SceneManager.Instance.activePlayerCamera.transform.position; lastKnownRot = RCC_SceneManager.Instance.activePlayerCamera.transform.rotation; } } // We don't need X and Z rotation angle. Just Y. lastKnownRot.x = 0f; lastKnownRot.z = 0f; RCC_CarControllerV3 lastVehicle = RCC_SceneManager.Instance.activePlayerVehicle; #if BCG_ENTEREXIT BCG_EnterExitVehicle lastEnterExitVehicle; bool enterExitVehicleFound = false; if (lastVehicle) { lastEnterExitVehicle = lastVehicle.GetComponentInChildren <BCG_EnterExitVehicle> (); if (lastEnterExitVehicle && lastEnterExitVehicle.driver) { enterExitVehicleFound = true; BCG_EnterExitManager.Instance.waitTime = 10f; lastEnterExitVehicle.driver.GetOut(); } } #endif // If we have controllable vehicle by player on scene, destroy it. if (lastVehicle) { Destroy(lastVehicle.gameObject); } // Here we are creating our new vehicle. RCC.SpawnRCC(selectableVehicles[selectedVehicleIndex], lastKnownPos, lastKnownRot, true, true, true); #if BCG_ENTEREXIT if (enterExitVehicleFound) { lastEnterExitVehicle = null; lastEnterExitVehicle = RCC_SceneManager.Instance.activePlayerVehicle.GetComponentInChildren <BCG_EnterExitVehicle> (); if (!lastEnterExitVehicle) { lastEnterExitVehicle = RCC_SceneManager.Instance.activePlayerVehicle.gameObject.AddComponent <BCG_EnterExitVehicle> (); } if (BCG_EnterExitManager.Instance.BCGCharacterPlayer.characterPlayer && lastEnterExitVehicle && lastEnterExitVehicle.driver == null) { BCG_EnterExitManager.Instance.waitTime = 10f; BCG_EnterExitManager.Instance.BCGCharacterPlayer.characterPlayer.GetIn(lastEnterExitVehicle); } } #endif }
public bool engineRunning; // Spawn with running engine? public void Spawn() { // Spawning the vehicle with given settings. currentVehiclePrefab = RCC.SpawnRCC(spawnVehiclePrefab, spawnTransform.position, spawnTransform.rotation, playerVehicle, controllable, engineRunning); }