Hola a todos necestio ayuda para que cuando suelte la w pierda velocidad eh probado de todo
var LeftWheel : WheelCollider;
var RightWheel : WheelCollider;
var rueda_1 : WheelCollider;
var rueda_2 : WheelCollider;
var MaxTorque = 200;
var MaxBreakTorque = 500;
var UIVELO : UI.Text;
//var velocimetro : Texture2D;
//var aguja : Texture2D;
var currentSPEED = 0.0;
var isbreak : boolean = false;
var stop : boolean = false;
var solto : boolean = false;
function Start()
{
UIVELO.material.color = Color.red;
}
function Update()
{
if (currentSPEED > 500)
{
UIVELO.material.color = Color.red;
stop = true;
}
else
UIVELO.material.color = Color.green;
if (Input.GetKeyDown(KeyCode.S))
{
isbreak = true;
}
else if (Input.GetKeyUp(KeyCode.S))
{
isbreak = false;
}
if (Input.GetKeyDown(KeyCode.W))
{
rueda_1.motorTorque = MaxTorque * 1 * Input.GetAxis("Vertical");
rueda_2.motorTorque = MaxTorque * 1 * Input.GetAxis("Vertical");
solto = false;
}
if (Input.GetKeyUp(KeyCode.W))
{
solto = true;
Solto();
}
}
function Solto()
{
if (solto)
{
if (currentSPEED >= 1)
{
LeftWheel.brakeTorque = MaxBreakTorque;
RightWheel.brakeTorque = MaxBreakTorque;
}
else
solto = false;
if (currentSPEED < 0)
{
LeftWheel.brakeTorque = 0;
RightWheel.brakeTorque = 0;
rueda_1.motorTorque = 0;
rueda_2.motorTorque = 0;
solto = false;
}
Invoke("Solto", 0.1);
}
}
function FixedUpdate()
{
currentSPEED = (Mathf.PI * 2 * LeftWheel.radius) * LeftWheel.rpm * 60/600;
currentSPEED = Mathf.Round(currentSPEED);
LeftWheel.steerAngle = 60 * Input.GetAxis("Horizontal");
RightWheel.steerAngle = 60 * Input.GetAxis("Horizontal");
UIVELO.text = currentSPEED.ToString();
if (isbreak)
{
LeftWheel.brakeTorque = MaxBreakTorque;
RightWheel.brakeTorque = MaxBreakTorque;
}
else
{
LeftWheel.brakeTorque = 0;
RightWheel.brakeTorque = 0;
}
}
/*function OnGUI()
{
GUI.Box(Rect(0,0,140.0,140.0), velocimetro);
var y = 70;
var x = 70;
GUIUtility.RotateAroundPivot( currentSPEED + 40, Vector2(y * x, 0));
GUI.DrawTexture(Rect(0,0,100,100), aguja, ScaleMode.StretchToFill,true,0);
}*/
El Input ya te detecta que presionaste la W, por lo que con un else cambias solto a True.
if (Input.GetKeyDown(KeyCode.W))
{
rueda_1.motorTorque = MaxTorque * 1 * Input.GetAxis("Vertical");
rueda_2.motorTorque = MaxTorque * 1 * Input.GetAxis("Vertical");
solto = false;
}else{
solto = true;
Solto();
}
Y elimina esto, ya que esto es cuando estas aprendando W.
if (Input.GetKeyUp(KeyCode.W))
{
solto = true;
Solto();
}