Olá! Estou tendo um problema com o projeto. O player não está rotacionando. Verifiquei o script várias vezes mas não estou conseguindo encontrar o erro. Se puderem me ajudar, ficarei muito grata!
Olá! Estou tendo um problema com o projeto. O player não está rotacionando. Verifiquei o script várias vezes mas não estou conseguindo encontrar o erro. Se puderem me ajudar, ficarei muito grata!
Oi, Caroline, tudo bem?
Acho que o problema pode não ser no script, você configurou a mascara Floor
? Tem que selecionar a camada do chão lá no Inspector senão o raio não tem com o que colidir.
Depois se quiser evoluir esse comportamento eu deixei uma dica nesse tópico
Configurei sim a mascara. O estacionamento esta na layer ”Floor” e no inspector do Player tambem adicionei essa camada na variavel que foi criada (public LayerMask Floor;). Tentei adicionar um plano, como tem no topico que voce sugeriu, mas tambem nao deu certo. Sera que por conta da posicao da camera? Esta assim:
A posição da camera não deveria influenciar não. Conseguindo ver o chão e batendo com ele tá tudo bem.
Vamo testar a colisão dentro do if do Raycast coloca algo como:
Debug.Log(impacto.collider.gameObject.name);
Assim vai aparecer na janela de console (se não tiver aberto aperte ctrl + shift + c) o nome do objeto com o qual o raio esta colidindo e dê pra identificar algum problema.
Sobre o plano o código, acho que ele vai ficar mais claro um pouco a frente do curso quando você fizer a parte de atirar, mas fazendo uma adaptação ficaria algo assim dentro do FixedUpdate:
Ray raio = Camera.main.ScreenPointToRay(Input.mousePosition);
// colocar isso numa variável privada quando aprendermos sobre isso no curso 2 :)
Plane plano = new Plane(Vector3.up, transform.position);
float distanciaColisao;
if (plano.Raycast(ray, out distanciaColisao))
{
Vector3 localColisao = raio.GetPoint(distanciaColisao);
localColisao.y = 0; // zerando rotações em Y
//direcao para onde vamos olhar baseado onde estamos
Vector3 posicaoParaOlhar = localColisao - transform.position;
Quaternion novaRotacao = Quaternion.LookRotation(posicaoParaOlhar);
GetComponent<Rigidbody>().MoveRotation(novaRotacao);
}
Esse agora deve funcionar, mas acho que fazermos o antigo funcionar antes de evoluir é melhor, mas guarda ele pra que você possa estudar no futuro.
Localizei onde esta o problema, mas nao achei o erro. Minha verificação não está funcionando. O debug dentro do if não está rodando. Fiz o teste também de apenas printar uma frase, dentro da verificação também não funcionou, mas fora dela sim. Tentei refazer todo o codigo, mas ainda acontece o mesmo.
A movimentação está normal? E se tirar a mascara muda algo?
if(Physics.Raycast(raio, out impactor, 100))
Sim, de resto esta tudo normal... No inicio testei sem a mascara, ele virava as vezes e de forma bem brusca, agora com a mascara ele nao rotaciona nada.
Se quiser subir seu a pasta do seu projeto num arquivo .zip e colocar num Google Drive, Dropbox, ou algo assim, eu consigo dar uma olhada
Só lembra de colocar o compartilhamento como publico e esse link aqui :)
Beleza! Aqui o link:
https://drive.google.com/drive/folders/16pzp7jJM6-iKygLlUtz5yJZQUtLqY_OF?usp=sharing
Oi, Caroline, tudo bem?
Conferi o projeto e o chão do estacionamento não tem um colisor, por isso que o raio não consegue colidir com ele. Se você adicionar um box collider deve funcionar, inclusive a parte das camadas :)
Bons estudos!
Nossa, nao acredito que deixei isso passar HAHAH
Muito obrigada pela ajuda e pela paciência!!