[RESOLVIDO] Carro Indo Para Tras Quando Aperta *W* e Indo Para Frente Quando Aperta *S*
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Carro Indo Para Tras Quando Aperta *W* e Indo Para Frente Quando Aperta *S*
Carro Indo Para Tras Quando Aperta *W* e Indo Para Frente Quando Aperta *S*
AS WHELLCOLIDER NAO ESTAO IVERTIDA !!!!
UM AMIGO ME DEU A IDEIA DE INVERTER OS "VERTICAIS" MAS NAO SEU COMO
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class CarroBasec : MonoBehaviour
{
public Transform[] MeshRodas;
public WheelCollider[] ColisorRodas;
public bool RotaçaoFrente = true;
public bool torqueFrente;
public bool Sera4x4;
public bool TeraTracaoNas4Rodas;
public float torque = 10000;
private float angulo, direcao;
private Rigidbody corpoRigido;
public KeyCode BotaoFreio;
public float ProporçaoFreio = 200;
private bool FreioSimNao;
public float velocidade;
void Start()
{
corpoRigido = GetComponent<Rigidbody>();
}
void Update()
{
velocidade = corpoRigido.velocity.magnitude;
if (Input.GetKey(BotaoFreio))
{
FreioSimNao = true;
}
else
{
FreioSimNao = false;
}
if (FreioSimNao == false)
{
ColisorRodas[0].brakeTorque = 0;
ColisorRodas[1].brakeTorque = 0;
ColisorRodas[2].brakeTorque = 0;
ColisorRodas[3].brakeTorque = 0;
}
if (FreioSimNao == true)
{
ColisorRodas[0].brakeTorque = ProporçaoFreio;
ColisorRodas[1].brakeTorque = ProporçaoFreio;
ColisorRodas[2].brakeTorque = ProporçaoFreio / 2;
ColisorRodas[3].brakeTorque = ProporçaoFreio / 2;
}
direcao = Input.GetAxis("Horizontal");
if (Input.GetAxis("Horizontal") > 0.7f || Input.GetAxis("Horizontal") < -0.7f)
{
angulo = Mathf.Lerp(angulo, direcao, Time.deltaTime * 2);
}
else
{
angulo = Mathf.Lerp(angulo, direcao, Time.deltaTime * 4);
}
if (RotaçaoFrente == true)
{
ColisorRodas[0].steerAngle = angulo * 40;
ColisorRodas[1].steerAngle = angulo * 40;
}
if (RotaçaoFrente == false)
{
ColisorRodas[2].steerAngle = angulo * -50;
ColisorRodas[3].steerAngle = angulo * -50;
}
if (Sera4x4 == true)
{
if (RotaçaoFrente == true)
{
ColisorRodas[2].steerAngle = angulo * -50;
ColisorRodas[3].steerAngle = angulo * -50;
}
if (RotaçaoFrente == false)
{
ColisorRodas[2].steerAngle = angulo * -50;
ColisorRodas[3].steerAngle = angulo * -50;
}
}
if (torqueFrente == false)
{
ColisorRodas[2].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
ColisorRodas[3].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
}
if (torqueFrente == true)
{
ColisorRodas[1].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
ColisorRodas[0].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
}
if (TeraTracaoNas4Rodas == true)
{
torqueFrente = true;
ColisorRodas[2].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
ColisorRodas[3].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
}
for (int x = 0; x < ColisorRodas.Length; x++)
{
Quaternion quat;
Vector3 pos;
ColisorRodas[x].GetWorldPose(out pos, out quat);
MeshRodas[x].position = pos;
MeshRodas[x].rotation = quat;
}
}
}
AS WHELLCOLIDER NAO ESTAO IVERTIDA !!!!
UM AMIGO ME DEU A IDEIA DE INVERTER OS "VERTICAIS" MAS NAO SEU COMO
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class CarroBasec : MonoBehaviour
{
public Transform[] MeshRodas;
public WheelCollider[] ColisorRodas;
public bool RotaçaoFrente = true;
public bool torqueFrente;
public bool Sera4x4;
public bool TeraTracaoNas4Rodas;
public float torque = 10000;
private float angulo, direcao;
private Rigidbody corpoRigido;
public KeyCode BotaoFreio;
public float ProporçaoFreio = 200;
private bool FreioSimNao;
public float velocidade;
void Start()
{
corpoRigido = GetComponent<Rigidbody>();
}
void Update()
{
velocidade = corpoRigido.velocity.magnitude;
if (Input.GetKey(BotaoFreio))
{
FreioSimNao = true;
}
else
{
FreioSimNao = false;
}
if (FreioSimNao == false)
{
ColisorRodas[0].brakeTorque = 0;
ColisorRodas[1].brakeTorque = 0;
ColisorRodas[2].brakeTorque = 0;
ColisorRodas[3].brakeTorque = 0;
}
if (FreioSimNao == true)
{
ColisorRodas[0].brakeTorque = ProporçaoFreio;
ColisorRodas[1].brakeTorque = ProporçaoFreio;
ColisorRodas[2].brakeTorque = ProporçaoFreio / 2;
ColisorRodas[3].brakeTorque = ProporçaoFreio / 2;
}
direcao = Input.GetAxis("Horizontal");
if (Input.GetAxis("Horizontal") > 0.7f || Input.GetAxis("Horizontal") < -0.7f)
{
angulo = Mathf.Lerp(angulo, direcao, Time.deltaTime * 2);
}
else
{
angulo = Mathf.Lerp(angulo, direcao, Time.deltaTime * 4);
}
if (RotaçaoFrente == true)
{
ColisorRodas[0].steerAngle = angulo * 40;
ColisorRodas[1].steerAngle = angulo * 40;
}
if (RotaçaoFrente == false)
{
ColisorRodas[2].steerAngle = angulo * -50;
ColisorRodas[3].steerAngle = angulo * -50;
}
if (Sera4x4 == true)
{
if (RotaçaoFrente == true)
{
ColisorRodas[2].steerAngle = angulo * -50;
ColisorRodas[3].steerAngle = angulo * -50;
}
if (RotaçaoFrente == false)
{
ColisorRodas[2].steerAngle = angulo * -50;
ColisorRodas[3].steerAngle = angulo * -50;
}
}
if (torqueFrente == false)
{
ColisorRodas[2].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
ColisorRodas[3].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
}
if (torqueFrente == true)
{
ColisorRodas[1].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
ColisorRodas[0].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
}
if (TeraTracaoNas4Rodas == true)
{
torqueFrente = true;
ColisorRodas[2].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
ColisorRodas[3].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
}
for (int x = 0; x < ColisorRodas.Length; x++)
{
Quaternion quat;
Vector3 pos;
ColisorRodas[x].GetWorldPose(out pos, out quat);
MeshRodas[x].position = pos;
MeshRodas[x].rotation = quat;
}
}
}
EricknhYT- Avançado
- PONTOS : 2044
REPUTAÇÃO : 8
Idade : 20
Áreas de atuação : Programando Patrulha Ostensiva - Msc Studios
Respeito as regras :
Re: [RESOLVIDO] Carro Indo Para Tras Quando Aperta *W* e Indo Para Frente Quando Aperta *S*
É simples, basta trocar isso:
por isso aqui por exemplo:
Perceba, eu só adicionei o sinal de 'menos' na frente do input...
@@recomendo usar isso: https://assetstore.unity.com/packages/tools/physics/ms-vehicle-system-free-version-90214
- Código:
ColisorRodas[2].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
por isso aqui por exemplo:
- Código:
ColisorRodas[2].motorTorque = -Input.GetAxis("Vertical") * torque * Time.deltaTime;
Perceba, eu só adicionei o sinal de 'menos' na frente do input...
@@recomendo usar isso: https://assetstore.unity.com/packages/tools/physics/ms-vehicle-system-free-version-90214
Re: [RESOLVIDO] Carro Indo Para Tras Quando Aperta *W* e Indo Para Frente Quando Aperta *S*
OBRIGADO ........ COMO FAÇO PARA MUDAR O TOPICO PARA RESOLVIDO ??MarcosSchultz escreveu:É simples, basta trocar isso:
- Código:
ColisorRodas[2].motorTorque = Input.GetAxis("Vertical") * torque * Time.deltaTime;
por isso aqui por exemplo:
- Código:
ColisorRodas[2].motorTorque = -Input.GetAxis("Vertical") * torque * Time.deltaTime;
Perceba, eu só adicionei o sinal de 'menos' na frente do input...
@@recomendo usar isso: https://assetstore.unity.com/packages/tools/physics/ms-vehicle-system-free-version-90214
EricknhYT- Avançado
- PONTOS : 2044
REPUTAÇÃO : 8
Idade : 20
Áreas de atuação : Programando Patrulha Ostensiva - Msc Studios
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Quando usar e para que serve o "NEW" ?
» [RESOLVIDO] Como faço para o personagem entrar e sair do carro?
» [RESOLVIDO] Como Impulsionar Um Objeto Para Frente( X ) Sem Ele Parar (script para bala)
» [RESOLVIDO]Correr Somente para frente!
» Como faço pro carro só se mover quando eu engra no carro?
» [RESOLVIDO] Como faço para o personagem entrar e sair do carro?
» [RESOLVIDO] Como Impulsionar Um Objeto Para Frente( X ) Sem Ele Parar (script para bala)
» [RESOLVIDO]Correr Somente para frente!
» Como faço pro carro só se mover quando eu engra no carro?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos