Files
2025-05-13 03:19:28 +03:00

109 lines
2.6 KiB
C#

using UnityEngine;
using System.Collections;
enum ViewMode{
Driver,
FreeSpectator
}
public class Player : MonoBehaviour {
public Car Target;
public Camera Cam;
public CameraController FlyController;
private ViewMode _mode = ViewMode.FreeSpectator;
public SteerController steerController;
// Use this for initialization
void Start () {
SetMode (ViewMode.FreeSpectator);
}
void SetMode(ViewMode mode){
if (_mode == mode) {
return;
}
_mode = mode;
if (mode == ViewMode.FreeSpectator) {
Cam.transform.parent = null;
FlyController.enabled = true;
} else {
Cam.transform.parent = Target.Driver.transform;
Cam.transform.localPosition = Vector3.zero;
Cam.transform.localRotation = Quaternion.identity;
FlyController.enabled = false;
}
}
// Update is called once per frame
void Update () {
if (Target == null) {
return;
}
if (Input.GetKeyDown (KeyCode.R)) {
Target.transform.position = new Vector3(0,3,0);
Target.transform.rotation = Quaternion.identity;
}
if (Input.GetKeyDown (KeyCode.Alpha1)) {
SetMode(ViewMode.FreeSpectator);
}else if (Input.GetKeyDown (KeyCode.Alpha2)) {
SetMode(ViewMode.Driver);
}
steerController.Steer = Input.GetAxis("Steer");
Target.SetPedalState (CarPedal.Accelerator, (Input.GetAxis ("Axis2") - 1.0f) / -2.0f);
Target.SetPedalState (CarPedal.Brake, (Input.GetAxis ("Axis3") - 1.0f) / -2.0f);
Target.SetPedalState (CarPedal.Clutch, (Input.GetAxis ("Axis4") - 1.0f) / -2.0f);
var ignitionButtons = new KeyCode[]{KeyCode.E, KeyCode.Q};
for (int i = 0; i < ignitionButtons.Length; ++i) {
if (Input.GetKeyDown (ignitionButtons[i])) {
Target.electric.ignition.SetButtonState(i, true);
}
if (Input.GetKeyUp (ignitionButtons[i])) {
Target.electric.ignition.SetButtonState(i, false);
}
}
//shift gearbox
var gb = Target.transmission.gearbox;
var current = gb.Gear;
if (Input.GetKeyDown (KeyCode.Alpha1)) {
current -=1;
}else if (Input.GetKeyDown (KeyCode.Alpha2)) {
current +=1;
}
current = Mathf.Clamp (current, -1, 5);
gb.Gear = current;
//ingition commands
/*if (Input.GetKeyDown (KeyCode.Q)) {
Target.ignition.Switch(true, false, false);
}
if (Input.GetKeyUp (KeyCode.Q)) {
Target.ignition.Switch(false, false, false);
}
if (Input.GetKeyDown (KeyCode.E)) {
Target.ignition.Switch(true, false, true);
}
if (Input.GetKeyUp (KeyCode.E)) {
Target.ignition.Switch(false, false, true);
}*/
/*Cam.transform.position = Target.Driver.transform.position;
Cam.transform.rotation = Target.Driver.transform.rotation;*/
}
}