Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
2 participantes
Página 1 de 1
Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
O código:
Como eu faço pra ele virar o lado usando o Transform.Scale.X
eu fiz uma função flip e crie uma rotina pros inimigos, mas nesse caso, não sei o que fazer.
- Código:
public class folow : MonoBehaviour {
public Transform target;//set target from inspector instead of looking in Update
public float speed = 3f;
private Transform myTransform;
void Start()
{
myTransform = this.GetComponent<Transform>();
}
void Update()
{
//rotate to look at the player
transform.LookAt(target.position);
transform.Rotate(new Vector3(0, -90, 0), Space.Self);//correcting the original rotation
myTransform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
Como eu faço pra ele virar o lado usando o Transform.Scale.X
eu fiz uma função flip e crie uma rotina pros inimigos, mas nesse caso, não sei o que fazer.
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Desculpa, não entendi, você quer ajeitar a escala ou rotação do personagem? E é um jogo 2D, né?
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Isso, é um jogo 2D. Quero que o inimigo vire para o personagem usando o Scale.x, para ficar de frente pro personagem. Nessa situação, o inimigo vira usando o Rotation.y, aí, quando ele vai virar, ele vira de ponta cabeça.
Tentei arrumar tirando esse comando :
- ransform.LookAt(target.position);
- transform.Rotate(new Vector3(0, -90, 0), Space.Self);
E tentei isso:
Coloquei dentro do Update: ai o inimigo virou um peão. Criei 2 boleanos pra arrumar isso, mas gerou outros problemas. Aí não sei mais o que fazer, e achei esse forum.
Tentei arrumar tirando esse comando :
- ransform.LookAt(target.position);
- transform.Rotate(new Vector3(0, -90, 0), Space.Self);
E tentei isso:
Coloquei dentro do Update: ai o inimigo virou um peão. Criei 2 boleanos pra arrumar isso, mas gerou outros problemas. Aí não sei mais o que fazer, e achei esse forum.
- Código:
if (a == false)
{
if (personagem.transform.position.x > target.transform.position.x){
flip();
a = true;
b = false;
}
}
if (b == false)
{
if (personagem.transform.position.x < target.transform.position.x)
{
flip();
a = false;
b = true;
}
}
void flip()
{
lookLeft = !lookLeft;
float x = transform.localScale.x;
x *= -1;
transform.localScale = new Vector3(x, transform.localScale.y, transform.localScale.z);
}
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Desculpa, não ter descrito a situação muito bem, ainda não sei usar o fórum direito.
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Ok Vinicius! Sem problemas!
Por favor, leia nossas regras antes: https://www.schultzgames.com/t603-____regras-do-forum____
Em suma, procure mandar seus códigos C# usando o campo de script, pra ficar mais legível hehe (Editei a sua mensagem pra arrumar ela!).
Vamos lá!
Primeiro precisamos definir a lógica aqui, pra que eu possa te ajudar melhor. Você está usando o Scale pra virar o inimigo? Não seria melhor simplesmente rotaciona-lo mexendo no eixo Y do seu Transform?
Por favor, leia nossas regras antes: https://www.schultzgames.com/t603-____regras-do-forum____
Em suma, procure mandar seus códigos C# usando o campo de script, pra ficar mais legível hehe (Editei a sua mensagem pra arrumar ela!).
Vamos lá!
Primeiro precisamos definir a lógica aqui, pra que eu possa te ajudar melhor. Você está usando o Scale pra virar o inimigo? Não seria melhor simplesmente rotaciona-lo mexendo no eixo Y do seu Transform?
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Como eu arrumo isso no primeiro exemplo ?
Eu aprendi a fazer isso desse jeito, todos os outros personagens, fiz eles virarem usando o transform.localScale.x.
Estou aprendendo a programar e a mexer na unity.
Eu aprendi a fazer isso desse jeito, todos os outros personagens, fiz eles virarem usando o transform.localScale.x.
Estou aprendendo a programar e a mexer na unity.
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Você pode rotacionar qualquer GameObject mexendo nos eixos deles, atráves do Transform. Creio que você se dará melhor modificando os eixos do que a escala. Veja o exemplo abaixo
Fazendo isso, estarei rotacionando o eixo Y do meu GameObject (que antes era 0) para 180, que o fará dar uma volta ao redor de si mesmo, resultando num flip. Você pode testar, verá que é mais eficiente dessa forma! Além de ainda poder fazer uma suavização com o Quaternion.Lerp.
(Quaternion.Lerp é uma função que suaviza a rotação)
- Código:
personagem.transform.rotation = Quaternion.Euler(new Vector3(0, 180, 0));
Fazendo isso, estarei rotacionando o eixo Y do meu GameObject (que antes era 0) para 180, que o fará dar uma volta ao redor de si mesmo, resultando num flip. Você pode testar, verá que é mais eficiente dessa forma! Além de ainda poder fazer uma suavização com o Quaternion.Lerp.
(Quaternion.Lerp é uma função que suaviza a rotação)
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Entendi, mas como eu faço pra ele virar pro lado direito quando o personagem estiver do lado direito, e virar pro lado esquerdo quando o personagem virar pro lado esquerdo ?
Não gostei muito do jeito que eu usei no segundo exemplo. Quais outros jeitos que posso fazer isso ? ( escreve o codigo, iria ajudar muito )
Não gostei muito do jeito que eu usei no segundo exemplo. Quais outros jeitos que posso fazer isso ? ( escreve o codigo, iria ajudar muito )
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Personagem <(inimigo)
(inimigo) > Personagem
(inimigo) > Personagem
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Ok! O problema é que eu estou no trabalho agora, por isso não tenho acesso a Unity pra escrever o código, mas posso te passar a lógica e você pode procurar aprender mais sobre.
Existem vários métodos pra fazer isso. O mais limpo que encontrei foi o seguinte
Bom, no seu inimigo, coloque dois Raycasts nele. Um mirando para a esquerda e outro para a direita. Quando o raycast (esquerda) do inimigo colidir com o player, o inimigo vira pra esquerda, quando o raycast (direita) colidir com o player, o inimigo vira pra direita! Simples!
Aprenda sobre como usar os raycasts
(São para 3D, mas você consegue adaptar).
- Existem outras maneiras, mas essa é a mais limpa que consegui pensar. Também tem como fazer isso usando colliders, aí fica a seu critério.
Existem vários métodos pra fazer isso. O mais limpo que encontrei foi o seguinte
Bom, no seu inimigo, coloque dois Raycasts nele. Um mirando para a esquerda e outro para a direita. Quando o raycast (esquerda) do inimigo colidir com o player, o inimigo vira pra esquerda, quando o raycast (direita) colidir com o player, o inimigo vira pra direita! Simples!
Aprenda sobre como usar os raycasts
(São para 3D, mas você consegue adaptar).
- Existem outras maneiras, mas essa é a mais limpa que consegui pensar. Também tem como fazer isso usando colliders, aí fica a seu critério.
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Obrigado por procurar sobre, e por ajudar. Coloquei os dois no update, do jeito que vc falou, ai ele fica parado e não vira ( o update fica chamando os dois, ai ele não vira ). Se eu coloco só um, ele vira um peão. Coloquei dois boleanos pra resolver, ai acabei quase que na mesma situação.
Fiz um curso que comprei na udemy sobre a unity, fiz 150 aulas( duas vezes ), mas ainda me sinto um noob. Sinto que coloquei um esforço de forma errada.
Qual a melhor forma de eu aprender mais ? tem alguns tutorias que você recomenda ? Algum bom material que me ajude a me tornar um bom desenvolvedor nessa plataforma.
Pretendo seguir esse caminho profissional, gosto muito disso, mas não sei pra onde ir.
Fiz um curso que comprei na udemy sobre a unity, fiz 150 aulas( duas vezes ), mas ainda me sinto um noob. Sinto que coloquei um esforço de forma errada.
Qual a melhor forma de eu aprender mais ? tem alguns tutorias que você recomenda ? Algum bom material que me ajude a me tornar um bom desenvolvedor nessa plataforma.
Pretendo seguir esse caminho profissional, gosto muito disso, mas não sei pra onde ir.
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Ok mano! Cheguei do trabalho, vou preparar um asset rápido pra você poder estudar! Um momento!
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
O foda, é que surgem dúvidas especificas, e não sei como procurar as respostas. Mas sinto que todo dia estou um pouquinho melhor.
ViniciusFolim- Iniciante
- PONTOS : 2138
REPUTAÇÃO : 0
Respeito as regras :
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
EStou construindo o exemplo pra você ver! Porém, uso a Unity 2019.1.0a13. Você talvez precise baixar esta versão pra tar vendo o meu exemplo.
Re: Fiz o personagem seguir o player, mas ele vira usando o rotation.z. Não sei como arrumar
Oi Vinicius! Já criei um asset de exemplo. Você pode baixa-lo no link abaixo, basta baixa-lo, e o importar para seu Projeto. Em seguida, abra a cena "Main" e dê play, então você vai pode estudar o script! Obs: Talvez seja necessário que você esteja usando a Unity 2019.1.0a13 ou superior, pois usei esta versão para criar o arquivo de asset.
https://www.mediafire.com/file/m41gl9ay5j66gji/exemplo-look-at.unitypackage/file
No asset eu criei o Sonic, e o deixei no meio de uma plataforma. então coloquei um robozinho que fica andando da direita pela esquerda, e ele se virá de acordo com a direção do Sonic, somente usando uma lógica simples com Raycast2D!
https://www.mediafire.com/file/m41gl9ay5j66gji/exemplo-look-at.unitypackage/file
No asset eu criei o Sonic, e o deixei no meio de uma plataforma. então coloquei um robozinho que fica andando da direita pela esquerda, e ele se virá de acordo com a direção do Sonic, somente usando uma lógica simples com Raycast2D!
Tópicos semelhantes
» como fazer um objeto seguir o player 2D
» como fazer o braço do personagem seguir a camera
» [RESOLVIDO] Como fazer o collider seguir a mao do personagem
» Como fazer Escudo seguir a movimentação do Player?
» root transform rotation (usa saga para orientar um personagem)
» como fazer o braço do personagem seguir a camera
» [RESOLVIDO] Como fazer o collider seguir a mao do personagem
» Como fazer Escudo seguir a movimentação do Player?
» root transform rotation (usa saga para orientar um personagem)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos