Problema na configuração do Wheel Colider (para um jogo mobile)
Página 1 de 1
Problema na configuração do Wheel Colider (para um jogo mobile)
estou com problema com a configuração do wheel colider,já testei o script em um carro e deu certo,mas agora que fui tentar em um caminhão de 6 rodas não ocorreu como o planejado,quando eu inicio o game as rodas teleportam para frente e giram todas em orbita do caminhao (LOL) em vez de girar no proprio eixo,agradeço desde já! :D
eu criei um empty chamado truckblack e botei todos as mesh como filhos do caminhao(o empty esta no centro do caminhao),e criei outro empty filho do caminhao para botar todas as wheel colider
eu criei um empty chamado truckblack e botei todos as mesh como filhos do caminhao(o empty esta no centro do caminhao),e criei outro empty filho do caminhao para botar todas as wheel colider
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.CrossPlatformInput;
public class CarControl : MonoBehaviour {
public WheelCollider[] wc;
public Transform[] rodas;
public Slider slide;
public float freio,torque,volante,Marcha,friccao;
public bool TorqueAcelerar,TAcelerar,TorqAcelerar,FreioBrake,TorqueFreio,TorqFreio;
//ve se o botao de acelerar esta apertado
public void Acelerar(bool ac){
TAcelerar = ac;
}
//ve se o botao de freio esta apertado
public void Freiar(bool br){
FreioBrake = br;
}
// motor
void MotorControl (bool acel,bool brak) {
Vector3 pos;
Quaternion rot;
TorqAcelerar = acel;
TorqFreio = brak;
for (int n = 0; n < wc.Length; n++) {
////////////////////////////////Acelerador//////////////////////////
if (TorqAcelerar) {
wc [n].motorTorque = Marcha * torque;
} else {
wc [n].motorTorque = 0;
}
///////////////////////////////Freio e Friccao////////////////////////////////
if (TorqFreio) {
wc [n].brakeTorque = freio;
}
else if(TorqFreio && TorqAcelerar == false){
wc[n].brakeTorque = friccao;
}
else{
wc [n].brakeTorque = 0;
}
//////////////Volante////////////////
if (n < 2)
wc [n].steerAngle = Mathf.Lerp (wc [n].steerAngle, CrossPlatformInputManager.GetAxis ("Horizontal") * volante, Time.deltaTime * 4);
///////////////Passar o valor das posicoes para a mesh///////////////////////////////////////////////
wc [n].GetWorldPose (out pos, out rot);
rodas [n].position = pos;
rodas[n].rotation = rot;
}
}
// pegar o valor do slider(que vai retornar a marcha) e setar o valor das variaveis para mandar como parametro para a void MotorControl
void Update () {
Marcha = slide.value;
TorqueFreio = FreioBrake;
TorqueAcelerar = TAcelerar;
MotorControl (TorqueAcelerar,TorqueFreio);
}
}
zKilleD- Iniciante
- PONTOS : 2447
REPUTAÇÃO : 0
Idade : 26
Áreas de atuação : Programador Python e C#
Respeito as regras :
Tópicos semelhantes
» Wheel Colider
» (Ajuda) Wheel Colider
» Unity Remote para mobile, problema com depuração usb
» Problema com Wheel Collider
» Wheel joint 2d e problema com limite de velocidade
» (Ajuda) Wheel Colider
» Unity Remote para mobile, problema com depuração usb
» Problema com Wheel Collider
» Wheel joint 2d e problema com limite de velocidade
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos