1
resposta

Problema com rotação na mira

Saudações não estou conseguindo rotacionar o personagem para mira nos inimigos

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Walk : MonoBehaviour
{
    public float Velocidade;
    public Animator animacao;
    Vector3 direcao;
    public LayerMask MascaraChao;

    // Update is called once per frame
    public void Update()
    {
        float Horizontal = Input.GetAxis("Horizontal");
        float Vertical = Input.GetAxis("Vertical");

        direcao = new Vector3(Horizontal, 0, Vertical);



        if (direcao != Vector3.zero)
        {
            GetComponent<Animator>().SetBool("Run", true);
        }
        else
        {
            GetComponent<Animator>().SetBool("Run", false);
        }
    }

    private void FixedUpdate()
    {
        GetComponent<Rigidbody>().MovePosition
            (GetComponent<Rigidbody>().position + 
            (direcao * Velocidade * Time.deltaTime));

        Ray raio = Camera.main.ScreenPointToRay(Input.mousePosition);
        Debug.DrawRay(raio.origin, raio.direction * 100, Color.red);

        RaycastHit impacto;

        if(Physics.Raycast(raio, out impacto, 100, MascaraChao))
        {
            Vector3 posicaoMiraJogar = impacto.point - transform.position;

            posicaoMiraJogar.y = transform.position.y;

            Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraJogar);

            GetComponent<Rigidbody>().MoveRotation(novaRotacao);
        }
    }
}
1 resposta

Oi, Eduardo, tudo bem?

Aparece algum erro na janela de Window > Console?

Quando você troca essa linha:

 if(Physics.Raycast(raio, out impacto, 100, MascaraChao))

por:

 if(Physics.Raycast(raio, out impacto, 100))

a rotação funciona?

Porque talvez seja o valor da mascara que não está definido.