Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Caesar

#31
General (Antiguo) / UI y Raycast para movimiento
Marzo 23, 2016, 11:21:09 PM
Haber para aclarar un poco mas las cosas pongo el codigo de mi movimiento:
using UnityEngine;
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 == 8)
         {
            Vector3 destino = hit.point;
            mover.SetDestination (destino);
            Debug.Log (hit.collider.name);
         }
         else if (hit.collider.gameObject.layer == 5)
         {
            
            Debug.Log (hit.collider.name);
         }
      }
   }
}
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
#32
General (Antiguo) / UI y Raycast para movimiento
Marzo 23, 2016, 10:57:17 PM
Una layermask publica y en el inspector le doy las layer UI y la q le creo para el terreno de esa forma no me preocupo de q mi script de movimiento tenga problemas con otros gameobject que pueden ponerse en el camino de la camara al terreno, y muy bien detecta como dije en las fisicas, pero el mismo problema pasa cuando el personaje ya esta en movimiento, durante ese trayecto es como si el editor ignorara que se rendea o algo asi las UI
#33
General (Antiguo) / UI y Raycast para movimiento
Marzo 23, 2016, 09:23:09 PM
Muchos utilizan el movimiento "Click to Move" generalmente usado en juegos rpg, etc. En el cual el personaje se maneja con el mouse; haciendo un click en el terreno donde queremos que el personaje se situé. Yo utilizo un ray "disparado" desde la cámara en el lugar donde se encuentra el mouse, buscando que choque con el terreno para obtener el vector3, que sera mi destino, el cual se lo paso a el NavMeshAgent que cuenta mi personaje.Esto funciona bien, ahora estoy colocando UI para la interfaces (botones de acceso, ventanas, etc), y pasa que el personaje se mueve atras de mis UI, por ejemplo en mi inventario le doy click a mis items y por detrás el personaje esta calculando el movimiento en el terreno, entonces lo que yo quiero; y estoy trabajando en eso, es que cuando aya algún tipo de UI el mouse no calcule el movimiento, mientras no de directamente click en mi terreno no quiero que se mueva.Bueno es lo que quiero a trazos grandes; pero hay mas, yo ya he hecho mi parte y lo que he conseguido es lo siguiente:Primero con EventTrigger, he colocado un bool que condiciona el movimiento mediante raycast y el bool se activa cuando el mouse entra en el area del UI mediante PointerEnter y desactiva con PointerExit.También probé dándole un boxcollider a las UI y detener el ray q colisiona con este tipo de tag(usando render mode del canvas en Camera).En ambos caso funciona parcialmente bien, ya que mientras el personaje esta quieto funciona correctamente, pero cuando doy click en un lugar y el personaje esta en el proceso de desplazamiento a ese lugar, las UI dejan de calcular tanto el eventtrigger como las fisicas de colisiones.Sigo probando haber que mas encuentro pero mientras quisera saber si ya se toparon con este problema, y puedan orientarme en lo que debo hacer
#34
En la linea 21 la palabra "void" que se usa para los métodos, donde el editor detecta que deberia haber un clase estructura o interfaces, podría decir que tal vez hay una llave de mas o falta una y por eso esta pensando que has salido de la clase conversacion2, busca bien en la linea 21 o antes o después de esta osea la 20 o 22.
#35
Lo que necesitas es GetComponent busca sobre eso.
#36
Que buena pregunta man; de la misma manera, yo quisiera tener un referente al respecto, siempre ando trabajando con Unity pero nunca eh tenido mucho cuidado con esto, por la respuesta de iRobb; que se agradece, parece ser que esto esta en función de dispositivo al que esta direccionado tu juego, pero seria bueno al mas de información, para diferentes tipos de dispositivos (PC, Consolas, Tables, etc) e incluso dentro de estos hay objetos de diferentes tamaños no solo UI chicos como botones que tal ventanas, iconos de ítems, fondos de menú, etc 
#37
General (Antiguo) / Identificar BOX de la GUI
Diciembre 10, 2015, 08:48:10 PM
Prueba este script tambien es una opcion.
public class Inventario : MonoBehaviour {

int seleccionado;

void Update () {
   if (Input.GetKeyDown (KeyCode.A))
   {
      seleccionado--;
   }
   if (Input.GetKeyDown (KeyCode.D))
   {
      seleccionado++;
   }
   if (seleccionado > 4)
      seleccionado = 0;
   else if (seleccionado < 0)
      seleccionado = 4;
}

void OnGUI ()
{
   int numeroBox = 5;
   for (int contador = 0; contador < numeroBox; contador++)
   {

      if (seleccionado != contador)
      {
         GUI.Box (new Rect (100 + 50 * contador,100,30,30), "");

      }
      else
      {
         GUI.Box (new Rect (100 + 50 * seleccionado - 5,100 - 5,40,40), "");
      }
   }


}
 
#38
General (Antiguo) / Identificar BOX de la GUI
Diciembre 10, 2015, 04:42:24 PM
Claro, antes que saliera la version 4.6 todo era con las GUI y ese tipo de cosas eran frecuentes; para responderte una forma podria ser crear una variable (int por ejemplo), y controlar esta en el Update () para que aumente en 1 o disminuya en 1 segun corresponda, al presionar la tecla que le asignes, luego con "if" en OnGUI () por cada valor muestras la box en la posicion que deseas.Espero te sirva
#39
var target : Transform;

function Update(){

transform.position = new Vector3(target.position.x,0,target.position.z);

}
#40
General (Antiguo) / Lista de prefabs
Junio 07, 2015, 08:07:26 PM
Por lo general cuando instancias un UI tienes q darle seguido un Vector2 su posicion deberias probar con eso.
#41
General (Antiguo) / UI Button rotar GameObject
Mayo 29, 2015, 06:37:39 AM
Gracias Kaito
 
Efectivamente estube buscando acerca del tema, que se puede realizar mediante la GUI con el ButtonRepeat, que al parecer no hay todabia un elemento que se le asemeje en la nueva UI de Unity, como bien dices la respuesta mas practica vendria hacer lo de la booleana y tener en el Update la accion que quiero al oprimir el botom mientras tenga este pulsado, pero como estoy tratando de tener menos codigo en el update para no sobrecargar tanto este, finalmente reemplace la rotacion del Objeto; que tenia pensado mediante botones (izquierda y derecha), con un movimiento mediante click del mouse y que haga como si lo jalara bien hacia izquierda o hacia la derecha, y me quedo bien.
 
Tambien encontre; en el caso de los botones, utilizando la clase EventSystem del namespace UnityEngine.EventSystem, algunas ideas para conseguir la accion que queria con el mouse; o al menos pense que por ahi va la cosa, ya que lo deje al resolver cambiar mover mi objeto con el drag del mouse y que este finalmente me gustara mas.
#42
General (Antiguo) / UI Button rotar GameObject
Mayo 27, 2015, 08:38:49 PM
Tengo en mi menu en el cual se observa un GameObject que verdria a ser el personaje, y hay un par de botones al pie del objeto; que sirven para hacerlo girar, bueno actualmente funciona pero no como quisiera porque al darle click solo ejecuta el codigo que le he asignado al boton una sola vez y nada mas, yo lo que quisiera es que al darle click y mantener pulsado el boton el objeto siga girando.
 
He intentado agregarle un Event Trigger component, y una funcion de PointClick, PointDown, PointUp, y en cualquier caso consigo el mismo resultado, he incluso intente comenzar una coroutine al presionar el boton pero no consigo lo q explico, haber espero que me puedan ayudar gracias.
#43
General (Antiguo) / acvtivar y desactivar escenas
Mayo 23, 2015, 02:40:56 AM
Application.LoadLevel ():
http://docs.unity3d.com/ScriptReference/Application.LoadLevel.html" rel="external nofollow">http://docs.unity3d.com/ScriptReference/Application.LoadLevel.html
Application.LoadLevelAddictive ():
http://docs.unity3d.com/ScriptReference/Application.LoadLevelAdditive.html" rel="external nofollow">http://docs.unity3d.com/ScriptReference/Application.LoadLevelAdditive.html
 
Como explica la referencia el LoadLevelAdditive () carga la escena sin destruir los elementos de la escena anterior si esa no es tu intencion usa LoadLevel ()