126 lines
2.8 KiB
C#
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();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|