Haber para aclarar un poco mas las cosas pongo el codigo de mi movimiento:
using UnityEngine;100 es mas que suficiente para asegurar que el ray colisione con el terreno, el valor 5 es el layer de las UI y el valor 8 es el layer del terreno, el script funciona bien el movimiento es el que quiero y también cuando doy click sobre alguna UI ya no se mueve mi personaje, el problema es cuando he dado click en algún punto de mi terreno y se setea el destino a mi navmeshagent y el personaje comienza a moverse hacia el lugar, mientras no llegue al lugar ; es decir no este quieto, en este momento al poner el cursor sobre las UI ya no las detecta y me da los datos del terreno, inmediatamente cambia de dirección hacia donde acabo de dar click si es q no habría una UI en ese lugar.Espero haberme dejado entender
using System.Collections;
public class TestRay : MonoBehaviour {
NavMeshAgent mover;
public LayerMask agent;
// Use this for initialization
void Start () {
mover = GetComponent <NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButton(0) && GUIUtility.hotControl ==0)
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 100,agent))
{
if (hit.collider.gameObject.layer ==
{
Vector3 destino = hit.point;
mover.SetDestination (destino);
Debug.Log (hit.collider.name);
}
else if (hit.collider.gameObject.layer == 5)
{
Debug.Log (hit.collider.name);
}
}
}
}
