126 lines
2.8 KiB
C#

//----------------------------------------------
// Realistic Car Controller
//
// Copyright © 2014 - 2023 BoneCracker Games
// https://www.bonecrackergames.com
// Buğra Özdoğanlar
//
//----------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Animations;
using UnityEngine.InputSystem;
using UnityEngine.UI;
using UnityEngine.XR;
public class RCC_FeedVehicleExample : MonoBehaviour {
public RCC_CarControllerV3 targetVehicle;
public bool takePlayerVehicle = true;
public RCC_Inputs newInputs = new RCC_Inputs();
private bool overrideNow = false;
public Slider throttle;
public Slider brake;
public Slider steering;
public Slider handbrake;
public Slider nos;
private void Start()
{
EnableOverride();
}
#region Machine control (Input System)
public void OnThrottle(InputAction.CallbackContext ctx) // Forward/Reverse gear
{
float vec = ctx.ReadValue<float>();
if (vec > 0)
newInputs.throttleInput = 1;
else
{
newInputs.throttleInput = 0;
newInputs.brakeInput = -vec;
}
}
public void SteerInput(InputAction.CallbackContext ctx) // Steering Control
{
var steer = ctx.ReadValue<Vector2>();
newInputs.steerInput = steer.x;
}
public void HandBrake(InputAction.CallbackContext ctx)// Hand brake
{
var hand = ctx.ReadValue<float>();
if(hand > 0)
newInputs.handbrakeInput = 1;
else
newInputs.handbrakeInput = 0;
}
public void NOS(InputAction.CallbackContext ctx)// Nitrogen
{
var NOS = ctx.ReadValue<float>();
if (NOS > 0)
newInputs.boostInput = 1;
else
newInputs.boostInput = 0;
}
#endregion
private void Update() {
//newInputs.throttleInput = throttle.value;
//newInputs.brakeInput = brake.value;
//newInputs.steerInput = steering.value;
//newInputs.handbrakeInput = handbrake.value;
//newInputs.boostInput = nos.value;
// if (takePlayerVehicle)
// targetVehicle = RCC_SceneManager.Instance.activePlayerVehicle;
if (targetVehicle && overrideNow)
targetVehicle.OverrideInputs(newInputs);
}
public void EnableOverride() {
if (!targetVehicle)
return;
overrideNow = true;
if (targetVehicle)
targetVehicle.OverrideInputs(newInputs);
}
public void DisableOverride() {
if (!targetVehicle)
return;
overrideNow = false;
if (targetVehicle)
targetVehicle.DisableOverrideInputs();
}
}