// Use this for initialization void OnEnable() { //This script is called specifically, for the maxSpeed allowed for the car maxSpd = GetComponent <UnityStandardAssets.Vehicles.Car.CarController>(); //This is called specifically to give the car the force for the boost carSpd = GetComponent <Rigidbody>(); //Increases for the boost, and meant to increase current speed by such maxSpd.MaxSpeed = 200; carSpd.AddForce(carSpd.velocity * 50, ForceMode.Acceleration); timer = 0; }
protected void Awake() { m_CarController = GetComponent <UnityStandardAssets.Vehicles.Car.CarController>(); m_CarMotionData = new CarMotionData(); //m_Explosion = transform.Find("CartoonBoom_V2").gameObject; m_CarVisibility = transform.Find("Car_Body").gameObject; beUnity = BridgeEngineUnity.main; if (beUnity) { beUnity.onControllerMotionEvent.AddListener(OnMotionEvent); beUnity.onControllerButtonEvent.AddListener(OnButtonEvent); beUnity.onControllerTouchEvent.AddListener(OnTouchEvent); } else { Debug.LogWarning("Cannot connect to BridgeEngineUnity controller."); } }
public override void OnInspectorGUI() { //RG_CarController rg_carController = (RG_CarController)target; UnityStandardAssets.Vehicles.Car.CarController carController = (CarController)target; // Texture racingAssetTexture = Resources.Load("RacingAssetTexture") as Texture; // // GUIStyle inspectorStyle = new GUIStyle(GUI.skin.label); // inspectorStyle.fixedWidth = 256; // inspectorStyle.fixedHeight = 64; // inspectorStyle.margin = new RectOffset((int)(((Screen.width * 0.98f) - 264) / 2), 0, 0, 0); //GUILayout.Label(racingAssetTexture, inspectorStyle); EditorGUILayout.BeginVertical("Box"); ///Car Max Steer Angle SerializedProperty maxSteerAngle = serializedObject.FindProperty("m_MaximumSteerAngle"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(maxSteerAngle, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Max Steer Angle Top Speed SerializedProperty maxSteerAngleTopSpeed = serializedObject.FindProperty("m_SteerAngleAtMaxSpeed"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(maxSteerAngleTopSpeed, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Steer Helper SerializedProperty steerHelper = serializedObject.FindProperty("m_SteerHelper"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(steerHelper, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.BeginVertical("Box"); ///Car Traction Control SerializedProperty tractionControl = serializedObject.FindProperty("m_TractionControl"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(tractionControl, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Level " + carController.levelTireTraction.ToString(), GUILayout.MaxWidth(Screen.width * 0.14f)); SerializedProperty levelBonusTireTraction = serializedObject.FindProperty("levelBonusTireTraction"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(levelBonusTireTraction, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); ///Car Steer Sensetivity SerializedProperty steerSensitivity = serializedObject.FindProperty("m_SteerSensitivity"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(steerSensitivity, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Steer Sensetivity EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Level " + carController.levelSteerSensitivity.ToString(), GUILayout.MaxWidth(Screen.width * 0.14f)); SerializedProperty levelBonusSteerSensitivity = serializedObject.FindProperty("levelBonusSteerSensitivity"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(levelBonusSteerSensitivity, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); /// /// TOP SPEED /// EditorGUILayout.BeginVertical("Box"); ///Car Top Speed SerializedProperty topSpeed = serializedObject.FindProperty("m_Topspeed"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(topSpeed, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Level Bonus Top Speed EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Level " + carController.levelTopSpeed.ToString(), GUILayout.MaxWidth(Screen.width * 0.14f)); SerializedProperty levelBonusTopSpeed = serializedObject.FindProperty("levelBonusTopSpeed"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(levelBonusTopSpeed, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); /// /// TORQUE / ACCELERATION /// EditorGUILayout.BeginVertical("Box"); ///Car Torque SerializedProperty torque = serializedObject.FindProperty("m_FullTorqueOverAllWheels"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(torque, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Level Bonus Acceleration - Torque is used as a variable for increasing acceleration rate. EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Level " + carController.levelAcceleration.ToString(), GUILayout.MaxWidth(Screen.width * 0.14f)); SerializedProperty levelBonusAcceleration = serializedObject.FindProperty("levelBonusAcceleration"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(levelBonusAcceleration, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); /// /// BRAKE TORQUE / BRAKE POWER /// EditorGUILayout.BeginVertical("Box"); SerializedProperty brakeTorque = serializedObject.FindProperty("m_BrakeTorque"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(brakeTorque, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Level " + carController.levelBrakePower.ToString(), GUILayout.MaxWidth(Screen.width * 0.14f)); SerializedProperty levelBonusBrakePower = serializedObject.FindProperty("levelBonusBrakePower"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(levelBonusBrakePower, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); /// /// Car Reverse Torque /// SerializedProperty reverseTorque = serializedObject.FindProperty("m_ReverseTorque"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(reverseTorque, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } /// /// Car Downforce /// SerializedProperty downforce = serializedObject.FindProperty("m_Downforce"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(downforce, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Rev Range Boundary SerializedProperty revRangeBoundary = serializedObject.FindProperty("m_RevRangeBoundary"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(revRangeBoundary, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Slip Limit SerializedProperty slipLimit = serializedObject.FindProperty("m_SlipLimit"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(slipLimit, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Centre of Mass Offset SerializedProperty comOffset = serializedObject.FindProperty("m_CentreOfMassOffset"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(comOffset, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Drive Type SerializedProperty carDriveType = serializedObject.FindProperty("m_CarDriveType"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(carDriveType, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Speed Type SerializedProperty speedType = serializedObject.FindProperty("m_SpeedType"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(speedType, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); ///Car Nitro Top Speed Limit Increase SerializedProperty nitroTopSpeed = serializedObject.FindProperty("nitroTopSpeed"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroTopSpeed, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro Full Torque Limit Increase SerializedProperty nitroFullTorque = serializedObject.FindProperty("nitroFullTorque"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroFullTorque, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro Duration SerializedProperty nitroDuration = serializedObject.FindProperty("nitroDuration"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroDuration, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro Spend Rate SerializedProperty nitroSpendRate = serializedObject.FindProperty("nitroSpendRate"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroSpendRate, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro Refill Rate SerializedProperty nitroRefillRate = serializedObject.FindProperty("nitroRefillRate"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroRefillRate, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro ON Event Trigger SerializedProperty nitroON = serializedObject.FindProperty("nitroON"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroON, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro OFF Event Trigger SerializedProperty nitroOFF = serializedObject.FindProperty("nitroOFF"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroOFF, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } ///Car Nitro OFF Event Trigger SerializedProperty nitroFX = serializedObject.FindProperty("nitroFX"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(nitroFX, true); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); SerializedProperty wheelColliders = serializedObject.FindProperty("m_WheelColliders"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(wheelColliders, true, GUILayout.MaxWidth(Screen.width * 0.9f)); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("", GUILayout.MaxWidth(Screen.width * 0.29f)); EditorGUILayout.LabelField("FR", GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.LabelField("FL", GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.LabelField("RR", GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.LabelField("RL", GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical("Box"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Mass", GUILayout.MaxWidth(Screen.width * 0.25f)); carController.m_WheelColliders[0].mass = EditorGUILayout.FloatField(carController.m_WheelColliders[0].mass, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[1].mass = EditorGUILayout.FloatField(carController.m_WheelColliders[1].mass, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[2].mass = EditorGUILayout.FloatField(carController.m_WheelColliders[2].mass, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[3].mass = EditorGUILayout.FloatField(carController.m_WheelColliders[3].mass, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Radius", GUILayout.MaxWidth(Screen.width * 0.25f)); carController.m_WheelColliders[0].radius = EditorGUILayout.FloatField(carController.m_WheelColliders[0].radius, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[1].radius = EditorGUILayout.FloatField(carController.m_WheelColliders[1].radius, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[2].radius = EditorGUILayout.FloatField(carController.m_WheelColliders[2].radius, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[3].radius = EditorGUILayout.FloatField(carController.m_WheelColliders[3].radius, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Wheel Damping Rate", GUILayout.MaxWidth(Screen.width * 0.25f)); carController.m_WheelColliders[0].wheelDampingRate = EditorGUILayout.FloatField(carController.m_WheelColliders[0].wheelDampingRate, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[1].wheelDampingRate = EditorGUILayout.FloatField(carController.m_WheelColliders[1].wheelDampingRate, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[2].wheelDampingRate = EditorGUILayout.FloatField(carController.m_WheelColliders[2].wheelDampingRate, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[3].wheelDampingRate = EditorGUILayout.FloatField(carController.m_WheelColliders[3].wheelDampingRate, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Suspension Distance", GUILayout.MaxWidth(Screen.width * 0.25f)); carController.m_WheelColliders[0].suspensionDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[0].suspensionDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[1].suspensionDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[1].suspensionDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[2].suspensionDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[2].suspensionDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[3].suspensionDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[3].suspensionDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Force App Point Distance", GUILayout.MaxWidth(Screen.width * 0.25f)); carController.m_WheelColliders[0].forceAppPointDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[0].forceAppPointDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[1].forceAppPointDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[1].forceAppPointDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[2].forceAppPointDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[2].forceAppPointDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); carController.m_WheelColliders[3].forceAppPointDistance = EditorGUILayout.FloatField(carController.m_WheelColliders[3].forceAppPointDistance, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); EditorGUILayout.LabelField("Suspension Spring"); frjs = carController.m_WheelColliders[0].suspensionSpring; fljs = carController.m_WheelColliders[1].suspensionSpring; rrjs = carController.m_WheelColliders[2].suspensionSpring; rljs = carController.m_WheelColliders[3].suspensionSpring; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Spring", GUILayout.MaxWidth(Screen.width * 0.25f)); frjs.spring = EditorGUILayout.FloatField(frjs.spring, GUILayout.MaxWidth(Screen.width * 0.14f)); fljs.spring = EditorGUILayout.FloatField(fljs.spring, GUILayout.MaxWidth(Screen.width * 0.14f)); rrjs.spring = EditorGUILayout.FloatField(rrjs.spring, GUILayout.MaxWidth(Screen.width * 0.14f)); rljs.spring = EditorGUILayout.FloatField(rljs.spring, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Damper", GUILayout.MaxWidth(Screen.width * 0.25f)); frjs.damper = EditorGUILayout.FloatField(frjs.damper, GUILayout.MaxWidth(Screen.width * 0.14f)); fljs.damper = EditorGUILayout.FloatField(fljs.damper, GUILayout.MaxWidth(Screen.width * 0.14f)); rrjs.damper = EditorGUILayout.FloatField(rrjs.damper, GUILayout.MaxWidth(Screen.width * 0.14f)); rljs.damper = EditorGUILayout.FloatField(rljs.damper, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Target Position", GUILayout.MaxWidth(Screen.width * 0.25f)); frjs.targetPosition = EditorGUILayout.FloatField(frjs.targetPosition, GUILayout.MaxWidth(Screen.width * 0.14f)); fljs.targetPosition = EditorGUILayout.FloatField(fljs.targetPosition, GUILayout.MaxWidth(Screen.width * 0.14f)); rrjs.targetPosition = EditorGUILayout.FloatField(rrjs.targetPosition, GUILayout.MaxWidth(Screen.width * 0.14f)); rljs.targetPosition = EditorGUILayout.FloatField(rljs.targetPosition, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); carController.m_WheelColliders[0].suspensionSpring = frjs; carController.m_WheelColliders[1].suspensionSpring = fljs; carController.m_WheelColliders[2].suspensionSpring = rrjs; carController.m_WheelColliders[3].suspensionSpring = rljs; EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); EditorGUILayout.LabelField("Forward Friction"); frwfc = carController.m_WheelColliders[0].forwardFriction; flwfc = carController.m_WheelColliders[1].forwardFriction; rrwfc = carController.m_WheelColliders[2].forwardFriction; rlwfc = carController.m_WheelColliders[3].forwardFriction; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Extremum Slip", GUILayout.MaxWidth(Screen.width * 0.25f)); frwfc.extremumSlip = EditorGUILayout.FloatField(frwfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); flwfc.extremumSlip = EditorGUILayout.FloatField(flwfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rrwfc.extremumSlip = EditorGUILayout.FloatField(rrwfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rlwfc.extremumSlip = EditorGUILayout.FloatField(rlwfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Extremum Value", GUILayout.MaxWidth(Screen.width * 0.25f)); frwfc.extremumValue = EditorGUILayout.FloatField(frwfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); flwfc.extremumValue = EditorGUILayout.FloatField(flwfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rrwfc.extremumValue = EditorGUILayout.FloatField(rrwfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rlwfc.extremumValue = EditorGUILayout.FloatField(rlwfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Asmptote Slip", GUILayout.MaxWidth(Screen.width * 0.25f)); frwfc.asymptoteSlip = EditorGUILayout.FloatField(frwfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); flwfc.asymptoteSlip = EditorGUILayout.FloatField(flwfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rrwfc.asymptoteSlip = EditorGUILayout.FloatField(rrwfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rlwfc.asymptoteSlip = EditorGUILayout.FloatField(rlwfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Asymptote Value", GUILayout.MaxWidth(Screen.width * 0.25f)); frwfc.asymptoteValue = EditorGUILayout.FloatField(frwfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); flwfc.asymptoteValue = EditorGUILayout.FloatField(flwfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rrwfc.asymptoteValue = EditorGUILayout.FloatField(rrwfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rlwfc.asymptoteValue = EditorGUILayout.FloatField(rlwfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Stiffness", GUILayout.MaxWidth(Screen.width * 0.25f)); frwfc.stiffness = EditorGUILayout.FloatField(frwfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); flwfc.stiffness = EditorGUILayout.FloatField(flwfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); rrwfc.stiffness = EditorGUILayout.FloatField(rrwfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); rlwfc.stiffness = EditorGUILayout.FloatField(rlwfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); carController.m_WheelColliders[0].forwardFriction = frwfc; carController.m_WheelColliders[1].forwardFriction = flwfc; carController.m_WheelColliders[2].forwardFriction = rrwfc; carController.m_WheelColliders[3].forwardFriction = rlwfc; EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("Box"); EditorGUILayout.LabelField("Sidways Friction"); frswfc = carController.m_WheelColliders[0].sidewaysFriction; flswfc = carController.m_WheelColliders[1].sidewaysFriction; rrswfc = carController.m_WheelColliders[2].sidewaysFriction; rlswfc = carController.m_WheelColliders[3].sidewaysFriction; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Extremum Slip", GUILayout.MaxWidth(Screen.width * 0.25f)); frswfc.extremumSlip = EditorGUILayout.FloatField(frswfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); flswfc.extremumSlip = EditorGUILayout.FloatField(flswfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rrswfc.extremumSlip = EditorGUILayout.FloatField(rrswfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rlswfc.extremumSlip = EditorGUILayout.FloatField(rlswfc.extremumSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Extremum Value", GUILayout.MaxWidth(Screen.width * 0.25f)); frswfc.extremumValue = EditorGUILayout.FloatField(frswfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); flswfc.extremumValue = EditorGUILayout.FloatField(flswfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rrswfc.extremumValue = EditorGUILayout.FloatField(rrswfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rlswfc.extremumValue = EditorGUILayout.FloatField(rlswfc.extremumValue, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Asmptote Slip", GUILayout.MaxWidth(Screen.width * 0.25f)); frswfc.asymptoteSlip = EditorGUILayout.FloatField(frswfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); flswfc.asymptoteSlip = EditorGUILayout.FloatField(flswfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rrswfc.asymptoteSlip = EditorGUILayout.FloatField(rrswfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); rlswfc.asymptoteSlip = EditorGUILayout.FloatField(rlswfc.asymptoteSlip, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Asymptote Value", GUILayout.MaxWidth(Screen.width * 0.25f)); frswfc.asymptoteValue = EditorGUILayout.FloatField(frswfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); flswfc.asymptoteValue = EditorGUILayout.FloatField(flswfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rrswfc.asymptoteValue = EditorGUILayout.FloatField(rrswfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); rlswfc.asymptoteValue = EditorGUILayout.FloatField(rlswfc.asymptoteValue, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Stiffness", GUILayout.MaxWidth(Screen.width * 0.25f)); frswfc.stiffness = EditorGUILayout.FloatField(frswfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); flswfc.stiffness = EditorGUILayout.FloatField(flswfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); rrswfc.stiffness = EditorGUILayout.FloatField(rrswfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); rlswfc.stiffness = EditorGUILayout.FloatField(rlswfc.stiffness, GUILayout.MaxWidth(Screen.width * 0.14f)); EditorGUILayout.EndHorizontal(); carController.m_WheelColliders[0].sidewaysFriction = frswfc; carController.m_WheelColliders[1].sidewaysFriction = flswfc; carController.m_WheelColliders[2].sidewaysFriction = rrswfc; carController.m_WheelColliders[3].sidewaysFriction = rlswfc; EditorGUILayout.EndVertical(); SerializedProperty wheelMeshes = serializedObject.FindProperty("m_WheelMeshes"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(wheelMeshes, true, GUILayout.MaxWidth(Screen.width * 0.9f)); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } SerializedProperty wheelEffects = serializedObject.FindProperty("m_WheelEffects"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(wheelEffects, true, GUILayout.MaxWidth(Screen.width * 0.9f)); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndVertical(); }