diff --git a/Assets/New Material.mat b/Assets/Prefab/Material/New Material 2.mat similarity index 96% rename from Assets/New Material.mat rename to Assets/Prefab/Material/New Material 2.mat index 82043edf..ec09c9bf 100644 Binary files a/Assets/New Material.mat and b/Assets/Prefab/Material/New Material 2.mat differ diff --git a/Assets/New Material.mat.meta b/Assets/Prefab/Material/New Material 2.mat.meta similarity index 100% rename from Assets/New Material.mat.meta rename to Assets/Prefab/Material/New Material 2.mat.meta diff --git a/Assets/xnpGIQ5Aut8.jpg b/Assets/Prefab/Material/xnpGIQ5Aut8.jpg similarity index 100% rename from Assets/xnpGIQ5Aut8.jpg rename to Assets/Prefab/Material/xnpGIQ5Aut8.jpg diff --git a/Assets/xnpGIQ5Aut8.jpg.meta b/Assets/Prefab/Material/xnpGIQ5Aut8.jpg.meta similarity index 100% rename from Assets/xnpGIQ5Aut8.jpg.meta rename to Assets/Prefab/Material/xnpGIQ5Aut8.jpg.meta diff --git a/Assets/RealisticCarControllerV3/Scripts/RCC_DashboardInputs.cs b/Assets/RealisticCarControllerV3/Scripts/RCC_DashboardInputs.cs index 298fc370..43952380 100644 --- a/Assets/RealisticCarControllerV3/Scripts/RCC_DashboardInputs.cs +++ b/Assets/RealisticCarControllerV3/Scripts/RCC_DashboardInputs.cs @@ -1,45 +1,28 @@ -//---------------------------------------------- -// Realistic Car Controller -// -// Copyright © 2014 - 2023 BoneCracker Games -// https://www.bonecrackergames.com -// Buğra Özdoğanlar -// -//---------------------------------------------- - -using UnityEngine; -using System.Collections; -using System.Collections.Generic; +using UnityEngine; /// /// Receiving inputs from active vehicle on your scene, and feeds dashboard needles, texts, images. /// [AddComponentMenu("BoneCracker Games/Realistic Car Controller/UI/RCC UI Dashboard Inputs")] -public class RCC_DashboardInputs : MonoBehaviour { +public class RCC_DashboardInputs : MonoBehaviour +{ public RCC_CarControllerV3 vehicle; // Target vehicle. - public bool autoAssignVehicle = true; // Auto assign target vehicle as player vehicle from the RCC_SceneManager. + // public bool autoAssignVehicle = true; // Auto assign target vehicle as player vehicle from the RCC_SceneManager. // Needles. [Header("Needles")] public GameObject RPMNeedle; public GameObject KMHNeedle; - public GameObject turboGauge; - public GameObject turboNeedle; public GameObject NOSGauge; public GameObject NoSNeedle; - public GameObject heatGauge; - public GameObject heatNeedle; - public GameObject fuelGauge; - public GameObject fuelNeedle; + // Needle rotations. private float RPMNeedleRotation = 0f; private float KMHNeedleRotation = 0f; - private float BoostNeedleRotation = 0f; private float NoSNeedleRotation = 0f; - private float heatNeedleRotation = 0f; - private float fuelNeedleRotation = 0f; + // Variables of the player vehicle. [HideInInspector] public float RPM; @@ -48,19 +31,10 @@ public class RCC_DashboardInputs : MonoBehaviour { [HideInInspector] public float Gear; [HideInInspector] public bool changingGear = false; [HideInInspector] public bool NGear = false; - [HideInInspector] public bool ABS = false; - [HideInInspector] public bool ESP = false; - [HideInInspector] public bool Park = false; - [HideInInspector] public bool Headlights = false; - [HideInInspector] public RCC_CarControllerV3.IndicatorsOn indicators; - private void Update() { - - if (autoAssignVehicle && RCC_SceneManager.Instance.activePlayerVehicle) - vehicle = RCC_SceneManager.Instance.activePlayerVehicle; - else - vehicle = null; + private void Update() + { // If no any player vehicle, return. if (!vehicle) return; @@ -70,71 +44,18 @@ public class RCC_DashboardInputs : MonoBehaviour { return; // If nos gauge is selected, enable or disable gauge related to vehicle. - if (NOSGauge) { - - if (vehicle.useNOS) { - + if (NOSGauge) + { + if (vehicle.useNOS) + { if (!NOSGauge.activeSelf) NOSGauge.SetActive(true); - - } else { - + } + else + { if (NOSGauge.activeSelf) NOSGauge.SetActive(false); - } - - } - - // If turbo gauge is selected, enable or disable turbo gauge related to vehicle. - if (turboGauge) { - - if (vehicle.useTurbo) { - - if (!turboGauge.activeSelf) - turboGauge.SetActive(true); - - } else { - - if (turboGauge.activeSelf) - turboGauge.SetActive(false); - - } - - } - - // If heat gauge is selected, enable or disable heat gauge related to vehicle. - if (heatGauge) { - - if (vehicle.useEngineHeat) { - - if (!heatGauge.activeSelf) - heatGauge.SetActive(true); - - } else { - - if (heatGauge.activeSelf) - heatGauge.SetActive(false); - - } - - } - - // If fuel gauge is selected, enable or disable fuel gauge related to vehicle. - if (fuelGauge) { - - if (vehicle.useFuelConsumption) { - - if (!fuelGauge.activeSelf) - fuelGauge.SetActive(true); - - } else { - - if (fuelGauge.activeSelf) - fuelGauge.SetActive(false); - - } - } // Getting variables from the player vehicle. @@ -144,64 +65,34 @@ public class RCC_DashboardInputs : MonoBehaviour { Gear = vehicle.currentGear; changingGear = vehicle.changingGear; NGear = vehicle.NGear; - ABS = vehicle.ABSAct; - ESP = vehicle.ESPAct; - Park = vehicle.handbrakeInput > .1f ? true : false; - Headlights = vehicle.lowBeamHeadLightsOn || vehicle.highBeamHeadLightsOn; - indicators = vehicle.indicatorsOn; // If RPM needle is selected, assign rotation of the needle. - if (RPMNeedle) { - + if (RPMNeedle) + { RPMNeedleRotation = (vehicle.engineRPM / 50f); RPMNeedleRotation = Mathf.Clamp(RPMNeedleRotation, 0f, 180f); RPMNeedle.transform.eulerAngles = new Vector3(RPMNeedle.transform.eulerAngles.x, RPMNeedle.transform.eulerAngles.y, -RPMNeedleRotation); - } // If KMH needle is selected, assign rotation of the needle. - if (KMHNeedle) { - + if (KMHNeedle) + { if (RCC_Settings.Instance.units == RCC_Settings.Units.KMH) KMHNeedleRotation = (vehicle.speed); else KMHNeedleRotation = (vehicle.speed * 0.62f); KMHNeedle.transform.eulerAngles = new Vector3(KMHNeedle.transform.eulerAngles.x, KMHNeedle.transform.eulerAngles.y, -KMHNeedleRotation); - - } - - // If turbo needle is selected, assign rotation of the needle. - if (turboNeedle) { - - BoostNeedleRotation = (vehicle.turboBoost / 30f) * 270f; - turboNeedle.transform.eulerAngles = new Vector3(turboNeedle.transform.eulerAngles.x, turboNeedle.transform.eulerAngles.y, -BoostNeedleRotation); - } // If nos needle is selected, assign rotation of the needle. - if (NoSNeedle) { - + if (NoSNeedle) + { NoSNeedleRotation = (vehicle.NoS / 100f) * 270f; NoSNeedle.transform.eulerAngles = new Vector3(NoSNeedle.transform.eulerAngles.x, NoSNeedle.transform.eulerAngles.y, -NoSNeedleRotation); - } - // If heat needle is selected, assign rotation of the needle. - if (heatNeedle) { - heatNeedleRotation = (vehicle.engineHeat / 110f) * 270f; - heatNeedle.transform.eulerAngles = new Vector3(heatNeedle.transform.eulerAngles.x, heatNeedle.transform.eulerAngles.y, -heatNeedleRotation); - - } - - // If fuel needle is selected, assign rotation of the needle. - if (fuelNeedle) { - - fuelNeedleRotation = (vehicle.fuelTank / vehicle.fuelTankCapacity) * 270f; - fuelNeedle.transform.eulerAngles = new Vector3(fuelNeedle.transform.eulerAngles.x, fuelNeedle.transform.eulerAngles.y, -fuelNeedleRotation); - - } } diff --git a/Assets/RealisticCarControllerV3/Scripts/RCC_Demo.cs b/Assets/RealisticCarControllerV3/Scripts/RCC_Demo.cs index 72ef4aac..dd14405c 100644 --- a/Assets/RealisticCarControllerV3/Scripts/RCC_Demo.cs +++ b/Assets/RealisticCarControllerV3/Scripts/RCC_Demo.cs @@ -1,12 +1,4 @@ -//---------------------------------------------- -// Realistic Car Controller -// -// Copyright © 2014 - 2023 BoneCracker Games -// https://www.bonecrackergames.com -// Buğra Özdoğanlar -// -//---------------------------------------------- - + using UnityEngine; using System.Collections; using System.Collections.Generic; diff --git a/Assets/RealisticCarControllerV3/Scripts/RCC_UIDashboardDisplay.cs b/Assets/RealisticCarControllerV3/Scripts/RCC_UIDashboardDisplay.cs index 554f877a..37afcee1 100644 --- a/Assets/RealisticCarControllerV3/Scripts/RCC_UIDashboardDisplay.cs +++ b/Assets/RealisticCarControllerV3/Scripts/RCC_UIDashboardDisplay.cs @@ -1,15 +1,4 @@ -//---------------------------------------------- -// Realistic Car Controller -// -// Copyright © 2014 - 2023 BoneCracker Games -// https://www.bonecrackergames.com -// Buğra Özdoğanlar -// -//---------------------------------------------- - -using UnityEngine; -using System.Collections; -using System.Collections.Generic; +using UnityEngine; using UnityEngine.UI; /// @@ -17,13 +6,16 @@ using UnityEngine.UI; /// [AddComponentMenu("BoneCracker Games/Realistic Car Controller/UI/RCC UI Dashboard Displayer")] [RequireComponent(typeof(RCC_DashboardInputs))] -public class RCC_UIDashboardDisplay : MonoBehaviour { +public class RCC_UIDashboardDisplay : MonoBehaviour +{ // Inputs of the dashboard elements. private RCC_DashboardInputs inputs; - private RCC_DashboardInputs Inputs { + private RCC_DashboardInputs Inputs + { - get { + get + { if (inputs == null) inputs = GetComponent(); @@ -38,118 +30,37 @@ public class RCC_UIDashboardDisplay : MonoBehaviour { public enum DisplayType { Full, Customization, TopButtonsOnly, Off } public RCC_CarControllerV3 vehicle; - public bool autoAssignVehicle = true; + //public bool autoAssignVehicle = true; // Buttons, texts, images, and dropdown menus. [Header("Panels")] - public GameObject controllerButtons; public GameObject gauges; - public GameObject customizationMenu; + [Header("Texts")] public Text RPMLabel; public Text KMHLabel; public Text GearLabel; - public Text recordingLabel; - - [Header("Images")] - public Image ABS; - public Image ESP; - public Image Park; - public Image Headlights; - public Image leftIndicator; - public Image rightIndicator; - public Image heatIndicator; - public Image fuelIndicator; - public Image rpmIndicator; [Header("Colors")] public Color color_On = Color.yellow; public Color color_Off = Color.white; - [Header("Dropdowns")] - public Dropdown mobileControllersDropdown; - - private void Update() { - - if (mobileControllersDropdown) - mobileControllersDropdown.interactable = RCC_Settings.Instance.mobileControllerEnabled; - - // Enabling / disabling corresponding elements related to choosen display type. - switch (displayType) { - - case DisplayType.Full: - - if (controllerButtons && !controllerButtons.activeSelf) - controllerButtons.SetActive(true); - - if (gauges && !gauges.activeSelf) - gauges.SetActive(true); - - if (customizationMenu && customizationMenu.activeSelf) - customizationMenu.SetActive(false); - - break; - - case DisplayType.Customization: - - if (controllerButtons && controllerButtons.activeSelf) - controllerButtons.SetActive(false); - - if (gauges && gauges.activeSelf) - gauges.SetActive(false); - - if (customizationMenu && !customizationMenu.activeSelf) - customizationMenu.SetActive(true); - - break; - - case DisplayType.TopButtonsOnly: - - if (controllerButtons.activeSelf) - controllerButtons.SetActive(false); - - if (gauges.activeSelf) - gauges.SetActive(false); - - if (customizationMenu.activeSelf) - customizationMenu.SetActive(false); - - break; - - case DisplayType.Off: - - if (controllerButtons && controllerButtons.activeSelf) - controllerButtons.SetActive(false); - - if (gauges && gauges.activeSelf) - gauges.SetActive(false); - - if (customizationMenu && customizationMenu.activeSelf) - customizationMenu.SetActive(false); - - break; - - } - - } - - private void LateUpdate() { + private void LateUpdate() + { // If inputs are not enabled yet, disable it and return. if (!Inputs.enabled) return; - if (autoAssignVehicle && RCC_SceneManager.Instance.activePlayerVehicle) - vehicle = RCC_SceneManager.Instance.activePlayerVehicle; - if (!vehicle) return; if (RPMLabel) RPMLabel.text = Inputs.RPM.ToString("0"); - if (KMHLabel) { + if (KMHLabel) + { if (RCC_Settings.Instance.units == RCC_Settings.Units.KMH) KMHLabel.text = Inputs.KMH.ToString("0") + "\nKMH"; @@ -158,7 +69,8 @@ public class RCC_UIDashboardDisplay : MonoBehaviour { } - if (GearLabel) { + if (GearLabel) + { if (!Inputs.NGear && !Inputs.changingGear) GearLabel.text = Inputs.direction == 1 ? (Inputs.Gear + 1).ToString("0") : "R"; @@ -167,92 +79,11 @@ public class RCC_UIDashboardDisplay : MonoBehaviour { } - if (recordingLabel) { - - switch (RCC_SceneManager.Instance.recordMode) { - - case RCC_SceneManager.RecordMode.Neutral: - - if (recordingLabel.gameObject.activeSelf) - recordingLabel.gameObject.SetActive(false); - - recordingLabel.text = ""; - - break; - - case RCC_SceneManager.RecordMode.Play: - - if (!recordingLabel.gameObject.activeSelf) - recordingLabel.gameObject.SetActive(true); - - recordingLabel.text = "Playing"; - recordingLabel.color = Color.green; - - break; - - case RCC_SceneManager.RecordMode.Record: - - if (!recordingLabel.gameObject.activeSelf) - recordingLabel.gameObject.SetActive(true); - - recordingLabel.text = "Recording"; - recordingLabel.color = Color.red; - - break; - - } - - } - - if (ABS) - ABS.color = Inputs.ABS == true ? color_On : color_Off; - - if (ESP) - ESP.color = Inputs.ESP == true ? color_On : color_Off; - - if (Park) - Park.color = Inputs.Park == true ? Color.red : color_Off; - - if (Headlights) - Headlights.color = Inputs.Headlights == true ? Color.green : color_Off; - - if (heatIndicator) - heatIndicator.color = vehicle.engineHeat >= 100f ? Color.red : new Color(.1f, 0f, 0f); - - if (fuelIndicator) - fuelIndicator.color = vehicle.fuelTank < 10f ? Color.red : new Color(.1f, 0f, 0f); - - if (rpmIndicator) - rpmIndicator.color = vehicle.engineRPM >= vehicle.maxEngineRPM - 500f ? Color.red : new Color(.1f, 0f, 0f); - - if (leftIndicator && rightIndicator) { - - switch (Inputs.indicators) { - - case RCC_CarControllerV3.IndicatorsOn.Left: - leftIndicator.color = new Color(1f, .5f, 0f); - rightIndicator.color = new Color(.5f, .25f, 0f); - break; - case RCC_CarControllerV3.IndicatorsOn.Right: - leftIndicator.color = new Color(.5f, .25f, 0f); - rightIndicator.color = new Color(1f, .5f, 0f); - break; - case RCC_CarControllerV3.IndicatorsOn.All: - leftIndicator.color = new Color(1f, .5f, 0f); - rightIndicator.color = new Color(1f, .5f, 0f); - break; - case RCC_CarControllerV3.IndicatorsOn.Off: - leftIndicator.color = new Color(.5f, .25f, 0f); - rightIndicator.color = new Color(.5f, .25f, 0f); - break; - - } - - } } - public void SetDisplayType(DisplayType _displayType) { + public void SetDisplayType(DisplayType _displayType) + { displayType = _displayType; diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 4a7edbeb..4d50175b 100644 Binary files a/Assets/Scenes/SampleScene.unity and b/Assets/Scenes/SampleScene.unity differ diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index 15ced898..f6f3e576 100644 Binary files a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset and b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset differ