Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

mensagens de erro no console

Assets\Modelos3D\Personagens\ControlPlayer.cs(40,28): error CS1503: Argument 1: cannot convert from 'UnityEngine.Ray' to 'UnityEngine.Vector3'

Assets\Modelos3D\Personagens\ControlPlayer.cs(40,34): error CS1503: Argument 2: cannot convert from 'UnityEngine.RaycastHit' to 'UnityEngine.Vector3'

Assets\Modelos3D\Personagens\ControlPlayer.cs(40,34): error CS0165: Use of unassigned local variable 'impacto'

alem disso, o 'MascaraChao' nao esta aparecendo no inspetor

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

public class ControlPlayer : MonoBehaviour {

    public float Velocidade = 10;
Vector3 direcao;
public LayerMask MascaraChao;

    void Update () {

        float eixoX = Input.GetAxis("Horizontal");
        float eixoZ = Input.GetAxis("Vertical");

         direcao = new Vector3(eixoX, 0, eixoZ);


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

    }
      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, Color.red);

        RaycastHit impacto;

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

           Vector3 posicaoMiraMyriah = impacto.point - transform.position;

            posicaoMiraMyriah.y = transform.position.y;
              Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraMyriah);

            GetComponent<Rigidbody>().MoveRotation(novaRotacao);

        }
      }
}


1 resposta
solução

Olá, tudo bem?

A mascara não irá aparecer até não ter mais erros no console. Eu deixaria ela pra daqui a pouco quando resolvermos tudo. O ideal é você ir escrevendo o código e testando pra saber se está tudo certo :)

Nessa parte aqui acho que a palavra out no argumento do impacto.

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

RaycastHit impacto;

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software