como faço para volta a posiçao inicial
4 participantes
Página 1 de 1
como faço para volta a posiçao inicial
galera tenho esse script de movimentaçao de carro tá virando direitinho só que quando eu solto o botao não volta a rotação 0,0,0 como faço para depois que eu solto o botao a rotação fica em 0,0,0
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*][RequireComponent(typeof(Rigidbody))]
[*]public class VeiculoSimples : MonoBehaviour {
[*] public int acelerar;
[*] public int virar;
[*] public Transform[] MeshRodas;
[*] public WheelCollider[] ColisorRodas;
[*] public float torque = 1000, pesoVeiculo = 1500;
[*] private float angulo, direcao;
[*] private Rigidbody corpoRigido;
[*] void Start () {
[*] corpoRigido = GetComponent<Rigidbody> ();
[*] corpoRigido.mass = pesoVeiculo;
[*] }
[*] public void fazerAndar(int aceleraOuRe){
[*] acelerar=aceleraOuRe;
[*] }
[*] public void fazerVirar(int esquerdaOuDireita){
[*] virar=esquerdaOuDireita;
[*] }
[*] void Update () {
[*] direcao = virar;
[*] if ( virar > 0.7f || virar < -0.7f) {
[*] angulo = Mathf.Lerp (angulo, direcao, Time.deltaTime * 4);
[*] } else {
[*] angulo = Mathf.Lerp (angulo, direcao, Time.deltaTime * 2);
[*] }
[*] }
[*] void FixedUpdate(){
[*] ColisorRodas [0].steerAngle = angulo * 40;
[*] ColisorRodas [1].steerAngle = angulo * 40;
[*] //
[*] ColisorRodas [2].motorTorque = acelerar*torque;
[*] ColisorRodas [3].motorTorque = acelerar*torque;
[*] 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;
[*] }
[*] }
[*]}
[/list]
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*][RequireComponent(typeof(Rigidbody))]
[*]public class VeiculoSimples : MonoBehaviour {
[*] public int acelerar;
[*] public int virar;
[*] public Transform[] MeshRodas;
[*] public WheelCollider[] ColisorRodas;
[*] public float torque = 1000, pesoVeiculo = 1500;
[*] private float angulo, direcao;
[*] private Rigidbody corpoRigido;
[*] void Start () {
[*] corpoRigido = GetComponent<Rigidbody> ();
[*] corpoRigido.mass = pesoVeiculo;
[*] }
[*] public void fazerAndar(int aceleraOuRe){
[*] acelerar=aceleraOuRe;
[*] }
[*] public void fazerVirar(int esquerdaOuDireita){
[*] virar=esquerdaOuDireita;
[*] }
[*] void Update () {
[*] direcao = virar;
[*] if ( virar > 0.7f || virar < -0.7f) {
[*] angulo = Mathf.Lerp (angulo, direcao, Time.deltaTime * 4);
[*] } else {
[*] angulo = Mathf.Lerp (angulo, direcao, Time.deltaTime * 2);
[*] }
[*] }
[*] void FixedUpdate(){
[*] ColisorRodas [0].steerAngle = angulo * 40;
[*] ColisorRodas [1].steerAngle = angulo * 40;
[*] //
[*] ColisorRodas [2].motorTorque = acelerar*torque;
[*] ColisorRodas [3].motorTorque = acelerar*torque;
[*] 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;
[*] }
[*] }
[*]}
[/list]
Última edição por karllus250 em Dom Jul 17, 2016 1:14 am, editado 2 vez(es) (Motivo da edição : erro na explicaçao)
karllus250- Avançado
-
PONTOS : 3184
REPUTAÇÃO : 0
Respeito as regras :
Re: como faço para volta a posiçao inicial
Usa a caixa de código do fórum pro script não perder componente.
Não entendi bem a sua duvida, tem como explicar melhor?
Não entendi bem a sua duvida, tem como explicar melhor?
Re: como faço para volta a posiçao inicial
entao esse script é de fazer o carro movimenta,dai so esta virando nao volta a posiçao
karllus250- Avançado
-
PONTOS : 3184
REPUTAÇÃO : 0
Respeito as regras :
Re: como faço para volta a posiçao inicial
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class VeiculoSimples : MonoBehaviour {
public int acelerar;
public int virar;
public Transform[] MeshRodas;
public WheelCollider[] ColisorRodas;
public float torque = 1000, pesoVeiculo = 1500;
private float angulo, direcao;
private Rigidbody corpoRigido;
void Start () {
corpoRigido = GetComponent<Rigidbody> ();
corpoRigido.mass = pesoVeiculo;
}
public void fazerAndar(int aceleraOuRe){
acelerar=aceleraOuRe;
}
public void fazerVirar(int esquerdaOuDireita){
virar=esquerdaOuDireita;
}
void Update () {
direcao = virar;
if ( virar > 0.7f || virar < -0.7f) {
angulo = Mathf.Lerp (angulo, direcao, Time.deltaTime * 4);
} else {
angulo = Mathf.Lerp (angulo, direcao, Time.deltaTime * 2);
}
}
void FixedUpdate(){
ColisorRodas [0].steerAngle = angulo * 40;
ColisorRodas [1].steerAngle = angulo * 40;
//
ColisorRodas [2].motorTorque = acelerar*torque;
ColisorRodas [3].motorTorque = acelerar*torque;
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;
}
}
}
karllus250- Avançado
-
PONTOS : 3184
REPUTAÇÃO : 0
Respeito as regras :
Re: como faço para volta a posiçao inicial
![como faço para volta a posiçao inicial 2qb7pn8](https://2img.net/h/oi66.tinypic.com/2qb7pn8.png)
![como faço para volta a posiçao inicial 25ztht1](https://2img.net/h/oi63.tinypic.com/25ztht1.png)
karllus250- Avançado
-
PONTOS : 3184
REPUTAÇÃO : 0
Respeito as regras :
Re: como faço para volta a posiçao inicial
Um Quaternion.Lerp deve servir ou um eulerAngles
https://www.schultzgames.com/t1018-duvida-voltar-rotacao-de-um-objeto-suavemente-depois-de-solta-lo?highlight=voltar
https://www.schultzgames.com/t1097-rotacionar-90
https://www.schultzgames.com/t1018-duvida-voltar-rotacao-de-um-objeto-suavemente-depois-de-solta-lo?highlight=voltar
https://www.schultzgames.com/t1097-rotacionar-90
JohnRambo- Moderador
-
PONTOS : 5100
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: como faço para volta a posiçao inicial
Especifiquei o tópico melhor
karllus250- Avançado
-
PONTOS : 3184
REPUTAÇÃO : 0
Respeito as regras :
Re: como faço para volta a posiçao inicial
Não tem como saber o que está acontecendo pois eu não sei o que você faz ou como você chama esta void:
- Código:
public void fazerVirar(int esquerdaOuDireita){
virar=esquerdaOuDireita;
}
Re: como faço para volta a posiçao inicial
botao UI cara
karllus250- Avançado
-
PONTOS : 3184
REPUTAÇÃO : 0
Respeito as regras :
![-](https://2img.net/i/empty.gif)
» Como faço para variável voltar para o valor inicial
» Como Voltar um Objeto para a Posição Inicial?
» Como faço para mudar a posição de um objeto para perto de outro.
» Como que faço para rotacionar um objeto na posição do player como o cenario
» Como faço para alinhar uma textura na posição absoluta do mundo no shader
» Como Voltar um Objeto para a Posição Inicial?
» Como faço para mudar a posição de um objeto para perto de outro.
» Como que faço para rotacionar um objeto na posição do player como o cenario
» Como faço para alinhar uma textura na posição absoluta do mundo no shader
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos