[TUTORIAL] Sistema de carro complexo.
2 participantes
Página 1 de 1
[TUTORIAL] Sistema de carro complexo.
Olá pessoal andei pesquisando ai na internet e vi varios assets muitos bons de carros, mas poucos suprem todas necessidades de uma pessoa, pensando nisso criei um asset para o pessoal que está precisando criar um jogo de carros ou algo do tipo.
algumas coisas peguei do video do canal GamesIndie por exemplo o sistema de frenagem do veiculo.
Espero que gostem!!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour {
public WheelCollider[] wcsRodasTraseiras;
public Transform[] meshRodasTraseiras;
public WheelCollider[] wcsRodasFrontais;
public Transform[] meshRodasFrontais;
public bool traccaoTraseira, rodasTraseirasGiraveis , freiosTraseiros, traccaoFrontal, rodasFrontaisGiraveis, freiosFrontais, traccaoComQuatroRodas, freioComQuatroRodas, todasRodasGiraveis;
public float Velocidade, anguloVolante, freio, friccao;
// Use this for initialization
void Start () {
}
void RodasTraseiras()
{
Vector3 posTraseiro;
Quaternion rotTraseiro;
for(int i=0; i<wcsRodasTraseiras.Length; i++)
{
wcsRodasTraseiras[i].GetWorldPose(out posTraseiro,out rotTraseiro);
meshRodasTraseiras[i].position = posTraseiro;
meshRodasTraseiras[i].rotation = rotTraseiro;
if (traccaoTraseira == true)
{
wcsRodasTraseiras[i].motorTorque = Input.GetAxis("Vertical")*Velocidade;
}
if(traccaoTraseira == false && rodasTraseirasGiraveis == true)
{
wcsRodasTraseiras[i].steerAngle = anguloVolante * Input.GetAxis("Horizontal");
}
if (traccaoTraseira == true && rodasTraseirasGiraveis == true)
{
wcsRodasTraseiras[i].motorTorque = Input.GetAxis("Vertical") * Velocidade;
wcsRodasTraseiras[i].steerAngle = anguloVolante * Input.GetAxis("Horizontal");
}
if (freiosTraseiros == true)
{
wcsRodasTraseiras[i].brakeTorque = Input.GetKey(KeyCode.Space) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical") * friccao);
}
if (freioComQuatroRodas == true)
{
wcsRodasTraseiras[i].brakeTorque = Input.GetKey(KeyCode.Space) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical") * friccao);
}
if (traccaoComQuatroRodas == true)
{
wcsRodasTraseiras[i].motorTorque = Input.GetAxis("Vertical") * Velocidade;
}
if (todasRodasGiraveis == true)
{
wcsRodasTraseiras[i].steerAngle = anguloVolante * Input.GetAxis("Horizontal");
}
}
}
void RodasFrontais()
{
Vector3 posFrontal;
Quaternion rotFrontal;
for (int i = 0; i < wcsRodasFrontais.Length; i++)
{
wcsRodasFrontais[i].GetWorldPose(out posFrontal, out rotFrontal);
meshRodasFrontais[i].position = posFrontal;
meshRodasFrontais[i].rotation = rotFrontal;
if (traccaoFrontal == true)
{
wcsRodasFrontais[i].motorTorque = Input.GetAxis("Vertical") * Velocidade;
}
if (traccaoFrontal == false && rodasFrontaisGiraveis == true)
{
wcsRodasFrontais[i].steerAngle = anguloVolante * Input.GetAxis("Horizontal");
}
if (traccaoFrontal == true && rodasFrontaisGiraveis == true)
{
wcsRodasFrontais[i].motorTorque = Input.GetAxis("Vertical") * Velocidade;
wcsRodasFrontais[i].steerAngle = anguloVolante * Input.GetAxis("Horizontal");
}
if (freiosFrontais == true)
{
wcsRodasFrontais[i].brakeTorque = Input.GetKey(KeyCode.Space) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical") * friccao);
}
if (freioComQuatroRodas == true)
{
wcsRodasFrontais[i].brakeTorque = Input.GetKey(KeyCode.Space) ? freio : friccao - Mathf.Abs(Input.GetAxis("Vertical") * friccao);
}
if (traccaoComQuatroRodas == true)
{
wcsRodasFrontais[i].motorTorque = Input.GetAxis("Vertical") * Velocidade;
}
if (todasRodasGiraveis == true)
{
wcsRodasFrontais[i].steerAngle = anguloVolante * Input.GetAxis("Horizontal");
}
}
}
// Update is called once per frame
void Update () {
RodasTraseiras();
RodasFrontais();
if (traccaoTraseira == true)
{
traccaoFrontal = false;
}
else
{
traccaoFrontal = true;
}
if (rodasFrontaisGiraveis == true)
{
rodasTraseirasGiraveis = false;
}
else
{
rodasFrontaisGiraveis = true;
}
if (freiosFrontais == true && freiosTraseiros == true)
{
freioComQuatroRodas = true;
freiosTraseiros = false;
freiosFrontais = false;
if (freioComQuatroRodas == true)
{
freiosTraseiros = false;
freiosFrontais = false;
}
}
}
}
algumas coisas peguei do video do canal GamesIndie por exemplo o sistema de frenagem do veiculo.
Espero que gostem!!
Última edição por dstaroski em Seg Jul 09, 2018 8:43 am, editado 1 vez(es) (Motivo da edição : Editado ícone e título)
Re: [TUTORIAL] Sistema de carro complexo.
Parabéns pela iniciativa
NKKF- ProgramadorMaster
- PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Primeiro programa "complexo" em C# para iniciantes
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Sistema de marcha de carro
» [TUTORIAL] AI PARA CARRO NO UNITY 3D
» [TUTORIAL] Entrar no carro estilo GTA
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Sistema de marcha de carro
» [TUTORIAL] AI PARA CARRO NO UNITY 3D
» [TUTORIAL] Entrar no carro estilo GTA
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos