Rotação continua de objeto 3D
3 participantes
Página 1 de 1
Rotação continua de objeto 3D
Boa noite,
estou tentando fazer com que um objeto 3D rotacione de forma continua, infinita, usando Quaternion, mas não estou encontrando a forma correta.
eu tinha tentado com transform.Rotate(Vector2.left * speed * Time.deltaTime); mas o objeto rotaciona não em torno de si, mas como se fosse em torno de outra coisa no espaço, dando uma volta.
esse objeto já tem um movimento da direita para esquerda com o transform.Translate(Vector2.left * speed * Time.deltaTime);
como faço para rotacionar objeto em torno do proprio eixo, de forma continua? a rotação não vai parar, tipo ir de uma rotação inicial até outra final, tem ser de forma infinita.
estou tentando fazer com que um objeto 3D rotacione de forma continua, infinita, usando Quaternion, mas não estou encontrando a forma correta.
eu tinha tentado com transform.Rotate(Vector2.left * speed * Time.deltaTime); mas o objeto rotaciona não em torno de si, mas como se fosse em torno de outra coisa no espaço, dando uma volta.
esse objeto já tem um movimento da direita para esquerda com o transform.Translate(Vector2.left * speed * Time.deltaTime);
como faço para rotacionar objeto em torno do proprio eixo, de forma continua? a rotação não vai parar, tipo ir de uma rotação inicial até outra final, tem ser de forma infinita.
Marc7- Mestre
- PONTOS : 3421
REPUTAÇÃO : 28
Respeito as regras :
Re: Rotação continua de objeto 3D
É com o Rotate cara, ex:
você está errando é na parte do movimento, e está referenciando ele a rotação do objeto e não a posição do mundo.
O seu jogo é 2D ou 3D? Especifique mais... mas a princípio, o Rotate é o correto nessa situação.
- Código:
using UnityEngine;
using System.Collections;
public class Rodar : MonoBehaviour {
public float velocidade = 20;
void Update () {
transform.Rotate (1*Time.deltaTime*velocidade, 0, 0);
}
}
você está errando é na parte do movimento, e está referenciando ele a rotação do objeto e não a posição do mundo.
O seu jogo é 2D ou 3D? Especifique mais... mas a princípio, o Rotate é o correto nessa situação.
Re: Rotação continua de objeto 3D
Ok Marcos com o Rotate mesmo funcionou!
A rotação somente em X, como vc escreveu, funcionou, mas quando altero para rotacionar em Y ou Z, o objeto ao invés de girar em torno do seu proprio eixo Y ou Z ele dá um loop no ar, por que está acontecendo isso?
O valor 1 que vc setou o que significa?
A rotação somente em X, como vc escreveu, funcionou, mas quando altero para rotacionar em Y ou Z, o objeto ao invés de girar em torno do seu proprio eixo Y ou Z ele dá um loop no ar, por que está acontecendo isso?
O valor 1 que vc setou o que significa?
Marc7- Mestre
- PONTOS : 3421
REPUTAÇÃO : 28
Respeito as regras :
Re: Rotação continua de objeto 3D
O valor 1 não significa nada... acabei colocando ali sei la por que, kkkkk
Quanto ao loop, é por que você está fazendo o translate de maneira errada no seu objeto. Provavelmente você está se referenciando a algum parâmetro do próprio objeto, como forward, left, etc, para fazer o movimento do Translate.
Tem como postar o código contendo o rotate e o translate?
Quanto ao loop, é por que você está fazendo o translate de maneira errada no seu objeto. Provavelmente você está se referenciando a algum parâmetro do próprio objeto, como forward, left, etc, para fazer o movimento do Translate.
Tem como postar o código contendo o rotate e o translate?
Re: Rotação continua de objeto 3D
Ok Marcos vamos lá, o script da rotação é esse:
falando sobre o numero 1, acho que ele é um multiplicador porque se eu mexo só nesse numero 1 para aumentar a velocidade da rotação, com poucos acrescimos, tipo de 1 para 10, a rotação já aumenta; por outro lado se altero a speedRot, tenho que setar uns 50 para ficar igual à rotação mexendo no numero 1. então penso que é mais facil alterar o 1 do que mudar a velocidade
- Código:
public float speed;
public float speedRot;
void Start () {
}
void Update () {
transform.Translate(Vector2.left * speed * Time.deltaTime);
transform.Rotate(10 * Time.deltaTime * speedRot, 0, 0);
}
falando sobre o numero 1, acho que ele é um multiplicador porque se eu mexo só nesse numero 1 para aumentar a velocidade da rotação, com poucos acrescimos, tipo de 1 para 10, a rotação já aumenta; por outro lado se altero a speedRot, tenho que setar uns 50 para ficar igual à rotação mexendo no numero 1. então penso que é mais facil alterar o 1 do que mudar a velocidade
Marc7- Mestre
- PONTOS : 3421
REPUTAÇÃO : 28
Respeito as regras :
Re: Rotação continua de objeto 3D
O que você quer fazer com este script exatamente?
Do jeito que está, você está fazendo um Translate errado, você está pegando o Vector2.left, ou seja, para a esquerda do mundo, mas se o objeto gira a referência muda.
Você poderia especificar bem certo o que está tentando fazer com este script?
Do jeito que está, você está fazendo um Translate errado, você está pegando o Vector2.left, ou seja, para a esquerda do mundo, mas se o objeto gira a referência muda.
Você poderia especificar bem certo o que está tentando fazer com este script?
Re: Rotação continua de objeto 3D
Marcos, esse video abaixo mostra o que estou fazendo, é o giro do asteroide:
do jeito que está até agora ele está girando em torno do proprio eixo X. mas veja que o asteroide segue linha reta e não dá volta no mundo em torno de outra coisa.
aí sim se eu mudo para rodar em Y ou Z é que acontece isso.
nesse caso o que posso fazer para corrigir e girar correto no proprio Y ou Z?
do jeito que está até agora ele está girando em torno do proprio eixo X. mas veja que o asteroide segue linha reta e não dá volta no mundo em torno de outra coisa.
aí sim se eu mudo para rodar em Y ou Z é que acontece isso.
nesse caso o que posso fazer para corrigir e girar correto no proprio Y ou Z?
Marc7- Mestre
- PONTOS : 3421
REPUTAÇÃO : 28
Respeito as regras :
Re: Rotação continua de objeto 3D
MarcosSHultz, o que vc sugere para o asteroide rotacionar em torno do seu proprio eixo y ou z somente?
realmente ainda não consegui consertar isso, agradeço ajuda!
realmente ainda não consegui consertar isso, agradeço ajuda!
Marc7- Mestre
- PONTOS : 3421
REPUTAÇÃO : 28
Respeito as regras :
Re: Rotação continua de objeto 3D
Vídeo muito antigo meu, mas espero que lhe ajude.
https://www.youtube.com/watch?v=wbMLwJDLUWw
https://www.youtube.com/watch?v=wbMLwJDLUWw
George Lucas Vieira- Avançado
- PONTOS : 3369
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Tópicos semelhantes
» Como mudar rotacao de um objeto em relacao a posicao do outro objeto
» Objeto não continua associado
» Erro com rotacao de objeto
» Copiar a Rotação do objeto em apenas um eixo.
» Problema com rotação de objeto
» Objeto não continua associado
» Erro com rotacao de objeto
» Copiar a Rotação do objeto em apenas um eixo.
» Problema com rotação de objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos