[TUTORIAL] Como programar um VOLANTE para veículos
4 participantes
Página 1 de 1
[TUTORIAL] Como programar um VOLANTE para veículos
Olá galera, elaborei um sistema bastante simples de volante para utilizar em veículos... é bem fácil de implementar.
Vídeo:
Script utilizado:
Vídeo:
Script utilizado:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Volante : MonoBehaviour {
public enum Tipos {GirarEmY, GirarEmZ};
public Tipos Rotacao = Tipos.GirarEmZ;
public GameObject objVolante;
[Range(0.4f,5.0f)]
public float velGiroVolante = 2.0f;
[Range(0.5f,3.0f)]
public float numeroDeVoltas = 1.5f;
public bool inverterGiro = false;
float rotacInicVloantAxis = 0, angulo2Volante = 0;
void Start () {
if (objVolante) {
switch(Rotacao){
case Tipos.GirarEmY:
rotacInicVloantAxis = objVolante.transform.localEulerAngles.y;
break;
case Tipos.GirarEmZ:
rotacInicVloantAxis = objVolante.transform.localEulerAngles.z;
break;
}
}
}
void Update () {
if (objVolante) {
int velMultiplic = 1;
if (inverterGiro) {
velMultiplic = -1;
}
float direcaoFixVolante = Input.GetAxis ("Horizontal") * velMultiplic;
angulo2Volante = Mathf.MoveTowards (angulo2Volante, direcaoFixVolante, Time.deltaTime * velGiroVolante);
float rotX = objVolante.transform.localEulerAngles.x;
float rotY = objVolante.transform.localEulerAngles.y;
float rotZ = objVolante.transform.localEulerAngles.z;
switch(Rotacao){
case Tipos.GirarEmY:
objVolante.transform.localEulerAngles = new Vector3(rotX, rotacInicVloantAxis+(angulo2Volante*numeroDeVoltas*360.0f), rotZ);
break;
case Tipos.GirarEmZ:
objVolante.transform.localEulerAngles = new Vector3(rotX, rotY, rotacInicVloantAxis+(angulo2Volante*numeroDeVoltas*360.0f));
break;
}
}
}
}
Re: [TUTORIAL] Como programar um VOLANTE para veículos
uma coisa que acho que ficaria legal complementar se possivel poder colocar uma opção se quer ou não que volte para meio a posição incial ou gire e fique naquela posição e a velocidade de volta do volante para o centro algo interessante marcos parabens pelo trabalho
LuizFixa3D- Avançado
- PONTOS : 3289
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: [TUTORIAL] Como programar um VOLANTE para veículos
MUITO TOP! PARABÉS!!!MarcosSchultz escreveu:Olá galera, elaborei um sistema bastante simples de volante para utilizar em veículos... é bem fácil de implementar.
Vídeo:
Script utilizado:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Volante : MonoBehaviour {
public enum Tipos {GirarEmY, GirarEmZ};
public Tipos Rotacao = Tipos.GirarEmZ;
public GameObject objVolante;
[Range(0.4f,5.0f)]
public float velGiroVolante = 2.0f;
[Range(0.5f,3.0f)]
public float numeroDeVoltas = 1.5f;
public bool inverterGiro = false;
float rotacInicVloantAxis = 0, angulo2Volante = 0;
void Start () {
if (objVolante) {
switch(Rotacao){
case Tipos.GirarEmY:
rotacInicVloantAxis = objVolante.transform.localEulerAngles.y;
break;
case Tipos.GirarEmZ:
rotacInicVloantAxis = objVolante.transform.localEulerAngles.z;
break;
}
}
}
void Update () {
if (objVolante) {
int velMultiplic = 1;
if (inverterGiro) {
velMultiplic = -1;
}
float direcaoFixVolante = Input.GetAxis ("Horizontal") * velMultiplic;
angulo2Volante = Mathf.MoveTowards (angulo2Volante, direcaoFixVolante, Time.deltaTime * velGiroVolante);
float rotX = objVolante.transform.localEulerAngles.x;
float rotY = objVolante.transform.localEulerAngles.y;
float rotZ = objVolante.transform.localEulerAngles.z;
switch(Rotacao){
case Tipos.GirarEmY:
objVolante.transform.localEulerAngles = new Vector3(rotX, rotacInicVloantAxis+(angulo2Volante*numeroDeVoltas*360.0f), rotZ);
break;
case Tipos.GirarEmZ:
objVolante.transform.localEulerAngles = new Vector3(rotX, rotY, rotacInicVloantAxis+(angulo2Volante*numeroDeVoltas*360.0f));
break;
}
}
}
}
Gabriel César O- Profissional
- PONTOS : 3988
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: [TUTORIAL] Como programar um VOLANTE para veículos
glr eu estou usando aquele sistema de volante UI do Marcos como eu faço para aquele volante pegar o Input Horizontal para que esse volante funcione??
HeF Soft- Membro
- PONTOS : 2851
REPUTAÇÃO : 4
Respeito as regras :
Re: [TUTORIAL] Como programar um VOLANTE para veículos
HeF Soft escreveu:glr eu estou usando aquele sistema de volante UI do Marcos como eu faço para aquele volante pegar o Input Horizontal para que esse volante funcione??
Cara, depende de como você quer que isto funcione... aquele sistema já gera uma float de input... basta passar esta variável para este sistema.
Mas seria interessante você criar um tópico para esta dúvida.
Tópicos semelhantes
» [TUTORIAL] Fazer um VOLANTE com UI, para Android
» [TUTORIAL] Como programar um carro/moto voador(a)
» [TUTORIAL] Unity 3D - Como programar o próprio CUSTOM INSPECTOR
» [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)
» Como programar um sistema para fazer o Player puxar um objetos no Unity
» [TUTORIAL] Como programar um carro/moto voador(a)
» [TUTORIAL] Unity 3D - Como programar o próprio CUSTOM INSPECTOR
» [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)
» Como programar um sistema para fazer o Player puxar um objetos no Unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos