Problema ao rotacionar valores negativos.
3 participantes
Página 1 de 1
Problema ao rotacionar valores negativos.
Boa tarde/noite, Estou tendo um problema para rotacionar meu objeto a -90 º via script, porém não está funcionando. O objeto fica rotacionando infinitamente. OBS: É necessário que este meu objeto rotacione de forma negativa. Não poderei usar o animator para esta ação, pois vai me prejudicar no futuro.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PortaBus : MonoBehaviour {
[Header("Powered by Wesley")]
public Transform SuportePorta;
public Transform Porta3D;
public bool PortaAberta_ou_Fechada;
public Vector3 SuporteAberto;
public Vector3 SuporteFechado;
public Vector3 PortaAberta;
public Vector3 PortaFechada;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.KeypadDivide)) {
PortaAberta_ou_Fechada = !PortaAberta_ou_Fechada;
}
if (PortaAberta_ou_Fechada == true)
{
SuportePorta.transform.localEulerAngles = Vector3.Lerp(SuportePorta.transform.localEulerAngles, SuporteAberto, Time.deltaTime);
Porta3D.transform.localEulerAngles = Vector3.Lerp(Porta3D.transform.localEulerAngles, PortaAberta, Time.deltaTime);
}
else if (PortaAberta_ou_Fechada == false) {
SuportePorta.transform.localEulerAngles = Vector3.Lerp(SuportePorta.transform.localEulerAngles, SuporteFechado, Time.deltaTime);
Porta3D.transform.localEulerAngles = Vector3.Lerp(Porta3D.transform.localEulerAngles, PortaFechada, Time.deltaTime);
}
}
}
WesleyLemosLeal- Membro
- PONTOS : 3004
REPUTAÇÃO : 4
Idade : 23
Respeito as regras :
Re: Problema ao rotacionar valores negativos.
Use o Quaternion.Lerp
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Teste : MonoBehaviour {
[Header("Powered by Wesley")]
public Transform SuportePorta;
public Transform Porta3D;
public bool PortaAberta_ou_Fechada;
public Vector3 SuporteAberto;
public Vector3 SuporteFechado;
public Vector3 PortaAberta;
public Vector3 PortaFechada;
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.KeypadDivide))
{
PortaAberta_ou_Fechada = !PortaAberta_ou_Fechada;
}
if (PortaAberta_ou_Fechada == true)
{
SuportePorta.transform.rotation = Quaternion.Lerp(SuportePorta.transform.rotation, Quaternion.Euler( SuporteAberto), Time.deltaTime);
Porta3D.transform.rotation = Quaternion.Lerp(Porta3D.transform.rotation, Quaternion.Euler(PortaAberta), Time.deltaTime);
}
else if (PortaAberta_ou_Fechada == false)
{
SuportePorta.transform.rotation = Quaternion.Lerp(SuportePorta.transform.rotation, Quaternion.Euler(SuporteFechado), Time.deltaTime);
Porta3D.transform.rotation = Quaternion.Lerp(Porta3D.transform.rotation, Quaternion.Euler(PortaFechada), Time.deltaTime);
}
}
}
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Problema ao rotacionar valores negativos.
vc deve usar o Mathf.Clamp (valor atual, valor minimo, valor maximo) com ele vc trava a rotaçao onde vc querWesleyLemosLeal escreveu:Boa tarde/noite, Estou tendo um problema para rotacionar meu objeto a -90 º via script, porém não está funcionando. O objeto fica rotacionando infinitamente. OBS: É necessário que este meu objeto rotacione de forma negativa. Não poderei usar o animator para esta ação, pois vai me prejudicar no futuro.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PortaBus : MonoBehaviour {
[Header("Powered by Wesley")]
public Transform SuportePorta;
public Transform Porta3D;
public bool PortaAberta_ou_Fechada;
public Vector3 SuporteAberto;
public Vector3 SuporteFechado;
public Vector3 PortaAberta;
public Vector3 PortaFechada;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.KeypadDivide)) {
PortaAberta_ou_Fechada = !PortaAberta_ou_Fechada;
}
if (PortaAberta_ou_Fechada == true)
{
SuportePorta.transform.localEulerAngles = Vector3.Lerp(SuportePorta.transform.localEulerAngles, SuporteAberto, Time.deltaTime);
Porta3D.transform.localEulerAngles = Vector3.Lerp(Porta3D.transform.localEulerAngles, PortaAberta, Time.deltaTime);
}
else if (PortaAberta_ou_Fechada == false) {
SuportePorta.transform.localEulerAngles = Vector3.Lerp(SuportePorta.transform.localEulerAngles, SuporteFechado, Time.deltaTime);
Porta3D.transform.localEulerAngles = Vector3.Lerp(Porta3D.transform.localEulerAngles, PortaFechada, Time.deltaTime);
}
}
}
diegopds- Mestre
- PONTOS : 3420
REPUTAÇÃO : 52
Idade : 26
Respeito as regras :
Tópicos semelhantes
» Problema com retorno de valores em script
» Int de dinheiro fica com numeros negativos em vez de travar no "0"
» sistema de valores com mensagem por faixa
» (Duvida) Reproduzir valores em texto 3D
» Colocando valores
» Int de dinheiro fica com numeros negativos em vez de travar no "0"
» sistema de valores com mensagem por faixa
» (Duvida) Reproduzir valores em texto 3D
» Colocando valores
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos