a rotacao do player esta errada!
Página 1 de 1
a rotacao do player esta errada!
eu fiz um sistema para quando o player andar para os lados e para trás ele girar, mas quando eu tento usar ele gira de forma errada
- Código:
void Update()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(transform.forward * (Time.deltaTime * speed));
transform.eulerAngles = new Vector3(0f, 0f, 0f);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(-transform.forward * (Time.deltaTime * speed));
transform.eulerAngles = new Vector3(0f, 180f, 0f);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(transform.right * (Time.deltaTime * speed));
transform.eulerAngles = new Vector3(0f, -90f, 0f);
}
if (Input.GetKey(KeyCode.A))
{
transform.Translate(-transform.right * (Time.deltaTime * speed));
transform.eulerAngles = new Vector3(0f, 90f, 0f);
Sasuke rei- Membro
- PONTOS : 88
REPUTAÇÃO : 10
Respeito as regras :
Re: a rotacao do player esta errada!
Seu player é filho de algum objeto? se for tente assim:
- Código:
void Update()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(transform.forward * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 0f, 0f);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(-transform.forward * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 180f, 0f);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(transform.right * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, -90f, 0f);
}
if (Input.GetKey(KeyCode.A))
{
transform.Translate(-transform.right * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 90f, 0f);
Pokedlg- Programador
-
PONTOS : 542
REPUTAÇÃO : 56
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras :
Re: a rotacao do player esta errada!
agora eu tentei assim mas tambem nao foi, quando eu aperto para ir para a direita ele vira para a direita mas vai para a esquerda e vice versa
Sasuke rei- Membro
- PONTOS : 88
REPUTAÇÃO : 10
Respeito as regras :
Re: a rotacao do player esta errada!
- Código:
void Update()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(transform.forward * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 0f, 0f);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(-transform.forward * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 180f, 0f);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(-transform.right * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, -90f, 0f);
}
if (Input.GetKey(KeyCode.A))
{
transform.Translate(transform.right * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 90f, 0f);
Entao tente assim
Pokedlg- Programador
-
PONTOS : 542
REPUTAÇÃO : 56
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras :
Re: a rotacao do player esta errada!
ele continua fazendo a mesma coisa
Sasuke rei- Membro
- PONTOS : 88
REPUTAÇÃO : 10
Respeito as regras :
Re: a rotacao do player esta errada!
mas ele começa a andar para o lado oposto? Mas quem é responsavel por fazer o player andar é o transform.Translate
Pokedlg- Programador
-
PONTOS : 542
REPUTAÇÃO : 56
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras :
Re: a rotacao do player esta errada!
do ultimo jeito que voce falou ele esta indo para a direcao certa, mas ele vira para o lado errado, desculpe, eu nao tinha reparado que ele tinha mudado@Pokedlg escreveu:mas ele começa a andar para o lado oposto? Mas quem é responsavel por fazer o player andar é o transform.Translate
Sasuke rei- Membro
- PONTOS : 88
REPUTAÇÃO : 10
Respeito as regras :
Re: a rotacao do player esta errada!
O que está acontecendo é que as direções estão invertidas, a direita e a esquerda, entao teria que trocar, tente assim:
- Código:
void Update()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(transform.forward * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 0f, 0f);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(-transform.forward * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 180f, 0f);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(-transform.right * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, 90f, 0f);
}
if (Input.GetKey(KeyCode.A))
{
transform.Translate(transform.right * (Time.deltaTime * speed));
transform.localEulerAngles = new Vector3(0f, -90f, 0f);
Última edição por Pokedlg em Seg Jan 25, 2021 9:56 am, editado 1 vez(es)
Pokedlg- Programador
-
PONTOS : 542
REPUTAÇÃO : 56
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras :
Sasuke rei- Membro
- PONTOS : 88
REPUTAÇÃO : 10
Respeito as regras :
Pokedlg- Programador
-
PONTOS : 542
REPUTAÇÃO : 56
Áreas de atuação :
Iniciante(C#.NET, Animação, ShaderLab)
Intermediário(Unity, Shader Graph)
Respeito as regras :
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum