[Resolvido] Limitar rotação em tantos graus
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[Resolvido] Limitar rotação em tantos graus
seguinte, estou com uma duvida em como limitar uma rotação em por exemplo 40º no eixo Z para mais ou para menos
tentei com uma variavel que ela ia adicionando +1 por segundo, então quando chegava a determinado numero ele parava, funcionava, mas quando eu ficava segurando o botão de virar por muito tempo ele dava uma volta completa
pois o que eu quero fazer é igual eu apertar o botão pra virar ele vira até determinado angulo e quando eu soltar o botão ele volta para o angulo 0
como se fosse um avião, tentei tambem com eulerangles (não sei mexer com isso direito) mas tambem não esta dando muito certo
alguem saberia um jeito melhor de fazer isso??
ou um que funcione :D
grato desde já
tentei com uma variavel que ela ia adicionando +1 por segundo, então quando chegava a determinado numero ele parava, funcionava, mas quando eu ficava segurando o botão de virar por muito tempo ele dava uma volta completa
pois o que eu quero fazer é igual eu apertar o botão pra virar ele vira até determinado angulo e quando eu soltar o botão ele volta para o angulo 0
como se fosse um avião, tentei tambem com eulerangles (não sei mexer com isso direito) mas tambem não esta dando muito certo
alguem saberia um jeito melhor de fazer isso??
ou um que funcione :D
grato desde já
Última edição por Édipo em Qua Out 26, 2016 7:35 pm, editado 2 vez(es)
Édipo- MembroAvançado
- PONTOS : 4007
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [Resolvido] Limitar rotação em tantos graus
- Código:
if (Input.GetKey("a"))
{
transform.eulerAngles = Vector3.Lerp (transform.eulerAngles, new Vector3 (0, 0, 60), Time.deltaTime);
}
else
{
transform.eulerAngles = Vector3.Lerp (transform.eulerAngles, RotacaoInicial, Time.deltaTime);
}
if (Input.GetKey("d"))
{
transform.eulerAngles = Vector3.Lerp (transform.eulerAngles, new Vector3 (0, 0, -60), Time.deltaTime);
}
else
{
transform.eulerAngles = Vector3.Lerp (transform.eulerAngles, RotacaoInicial, Time.deltaTime);
}
estou usando o seguinte script, para virar pra esquerda ta tudo blz, agora pra direita eu não sei que valor colocar, ja tentei negativo, 320, mas nada da
Édipo- MembroAvançado
- PONTOS : 4007
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [Resolvido] Limitar rotação em tantos graus
Da uma olhada nestes 2 tutoriais... em ambos eu utilizo métodos para fazer um clamp nos algulos.
No primeiro, eu uso um clamp simples para 2D:
https://www.schultzgames.com/t1742-tutorial-lookat-em-2d-para-o-mouse-com-clamplimite-para-angulos-maximos-e-minimos
Neste segundo, eu uso um outro clamp para fazer os limites de giro ajustáveis da camera:
https://www.schultzgames.com/t1685-tutorial-camera-interna-de-veiculos-estilo-euro-truck?highlight=euro+truck
No primeiro, eu uso um clamp simples para 2D:
https://www.schultzgames.com/t1742-tutorial-lookat-em-2d-para-o-mouse-com-clamplimite-para-angulos-maximos-e-minimos
Neste segundo, eu uso um outro clamp para fazer os limites de giro ajustáveis da camera:
https://www.schultzgames.com/t1685-tutorial-camera-interna-de-veiculos-estilo-euro-truck?highlight=euro+truck
Re: [Resolvido] Limitar rotação em tantos graus
hummm
muito obrigado, deu certo mais ou menos aqui, mas e vou rachar a cabeca ate dar :D
mais uma duvida pra aproveitar o topico...
como coloco para o objeto ir rotacionando com um lerp para a posicao 0 no eixo z assim que eu parar de apertar os botoes??
eu estou tentando com isso, mas nada de dar certo =\
if ((joystickImg.transform.localPosition.x == 0) && (joystickImg.transform.localPosition.y == 0)) {
player.transform.eulerAngles.z = Vector3.Lerp (transform.eulerAngles, 0, Time.deltaTime);
}
vc sabe o que eu posso estar fazendo errado???
muito obrigado, deu certo mais ou menos aqui, mas e vou rachar a cabeca ate dar :D
mais uma duvida pra aproveitar o topico...
como coloco para o objeto ir rotacionando com um lerp para a posicao 0 no eixo z assim que eu parar de apertar os botoes??
eu estou tentando com isso, mas nada de dar certo =\
if ((joystickImg.transform.localPosition.x == 0) && (joystickImg.transform.localPosition.y == 0)) {
player.transform.eulerAngles.z = Vector3.Lerp (transform.eulerAngles, 0, Time.deltaTime);
}
vc sabe o que eu posso estar fazendo errado???
Édipo- MembroAvançado
- PONTOS : 4007
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [Resolvido] Limitar rotação em tantos graus
você tem que passar um vector3 no lerp, e você está passando só um número, o número 0, e a unity está pedindo 3 coordedadas, uma em x, uma em y e uma em z
Re: [Resolvido] Limitar rotação em tantos graus
cara pelo amor de Deus, tem como vc me ajudar, estou a dias quebrando a cabeça com isso, eu coloco vector3 e passo as cordenadas mas continua dando erro, eu quero que o player. voltei para a cordenada 0 somente no eixo z e nada da certo
Édipo- MembroAvançado
- PONTOS : 4007
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: [Resolvido] Limitar rotação em tantos graus
Só tem um problema... você vai conseguir fazer um Quaternion.Lerp ou algo do tipo quando a rotação nos seus outros eixos (X e Z) estiver em um valor fixo, como por exemplo 0, 90, 180 ou 270. Já se estiver em algum valor quebrado, estes outros eixos INEVITAVELMENTE vão girar também... não tem como girar apenas um eixo sem girar os outros em algumas situações.
Tudo depende do que você quer fazer e de como você pode adaptar o Lerp nisto.
Re: [Resolvido] Limitar rotação em tantos graus
humm
muito obrigado, ajudou bastante, então envez de deixar os comandos como no acecombat 2 eu vou deixar como o 3 bem melhor :D
vlw mesmo
muito obrigado, ajudou bastante, então envez de deixar os comandos como no acecombat 2 eu vou deixar como o 3 bem melhor :D
vlw mesmo
Édipo- MembroAvançado
- PONTOS : 4007
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Limitar rotação no eixo x
» [RESOLVIDO] Limitar a rotação da câmera entre dois ângulos
» Como limitar a rotação no RotateAround?
» [RESOLVIDO] Rotação do objeto
» Como limitar o angulo de rotação de um objeto?
» [RESOLVIDO] Limitar a rotação da câmera entre dois ângulos
» Como limitar a rotação no RotateAround?
» [RESOLVIDO] Rotação do objeto
» Como limitar o angulo de rotação de um objeto?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos