Problema com giro de objeto
3 participantes
Página 1 de 1
Problema com giro de objeto
Galera, estou fazendo esse giro do inimigo em relação ao jogador, mas a face do inimigo não está de frente para o jogador postei um video p mostrar
achei esse script em um site e me serviu , estou usando no inimigo
o script funciona mas como falei o inimigo nao vira de frente, fica só de lado. como faço p ficar sempre de frente para o jogoador?
achei esse script em um site e me serviu , estou usando no inimigo
- Código:
public float moveSpeed;
private Transform pl;
void Start() {
pl = GameObject.FindGameObjectWithTag("Player").transform;
}
void Update() {
transform.position = Vector3.MoveTowards(transform.position, pl.position, moveSpeed * Time.deltaTime);
// Rotaciona
var direcao = pl.transform.position - transform.position;
var rotacao = Quaternion.LookRotation(direcao, transform.TransformDirection(Vector3.up));
transform.rotation = new Quaternion(0, 0, rotacao.z, rotacao.w);
}
o script funciona mas como falei o inimigo nao vira de frente, fica só de lado. como faço p ficar sempre de frente para o jogoador?
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Problema com giro de objeto
Tente criar um objeto vazio jogar o inimigo dentro e o script do inimigo no objeto que criou.
Zecandy- Mestre
- PONTOS : 3506
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Re: Problema com giro de objeto
Zecandy escreveu:Tente criar um objeto vazio jogar o inimigo dentro e o script do inimigo no objeto que criou.
Zecandy continua do mesmo jeito..
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Problema com giro de objeto
Ve assim
- Código:
public float moveSpeed,velocidadeRotacao;
private Transform pl;
Vector3 direcao;
void Start()
{
pl = GameObject.FindGameObjectWithTag("Player").transform;
}
void Update() {
transform.position = Vector3.MoveTowards(transform.position, pl.position, moveSpeed * Time.deltaTime);
// Rotaciona
direcao = pl.transform.position - transform.position;
transform.rotation = Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(direcao),velocidadeRotacao*Time.deltaTime);
}
Zecandy- Mestre
- PONTOS : 3506
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Re: Problema com giro de objeto
Tambem nao funcionou
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Zecandy- Mestre
- PONTOS : 3506
REPUTAÇÃO : 155
Idade : 42
Respeito as regras :
Re: Problema com giro de objeto
Zecandy escreveu:Os eixos do inimigo devem estar invertidos;
descobri que Vector3.up é o mesmo que Vector3(0,1,0)
ele tava rodando no eixo Y entao eu escrevi (0,0,1) aí agora consertou
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Problema com giro de objeto
Tome cuidado... Vector3.up(down, right, left, ou outros do tipo Vector2 também), são Vetores globais, de acordo com o lado... Preste bem atenção e veja quando deve ser utilizado o eixo global ou local, do transform(transform.down, right, left ou whatever).
Re: Problema com giro de objeto
recagonlei escreveu:Tome cuidado... Vector3.up(down, right, left, ou outros do tipo Vector2 também), são Vetores globais, de acordo com o lado... Preste bem atenção e veja quando deve ser utilizado o eixo global ou local, do transform(transform.down, right, left ou whatever).
é isso que eu nao entendo ainda, quando é eixo global e eixo local.
quando que se usa um e outro?
se puder postar exemplos de uso fica melhor!
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Problema com giro de objeto
É meio que auto explicativo... Os eixos dos transforms(transform.forward, transform.up, etc), são orientados de acordo com o Transform em que se está chamando e é modificado de acordo com a rotação do mesmo e o Vector3.up(Vector.forward, etc), são eixos estáticos do mundo, eles não mudam de acordo com algum objeto ou algo do tipo. Se o objeto estiver com o eixo Z para frente e chamar o transform.forward, ele mostrará o mesmo que o Vector.forward, agora se rotaciona-lo ele mostrará de acordo com o objeto e seu valor será diferente do eixo global z(forward e back).
Tópicos semelhantes
» problema com giro na realidade aumentada
» Problema com a velocidade do objeto
» Problema na rotaçao do objeto
» Problema ao tornar personagem filho de outro objeto
» [DUVIDA] Problema com colisão de terreno e objeto 3D
» Problema com a velocidade do objeto
» Problema na rotaçao do objeto
» Problema ao tornar personagem filho de outro objeto
» [DUVIDA] Problema com colisão de terreno e objeto 3D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos