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 - Tizon

#61
[quote author=Trunex" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35336" data-ipsquote-contentcommentid="127919">En lugar de aplicarle el SetActive a un componente Text se lo tendrías que aplicar al gameobject donde se encuentra dicho componente.[/quote]Gracias por la respuesta, lo he probado. using UnityEngine;
using System.Collections;
using UnityEngine.UI;public class ClsDirectorDeMenus : MonoBehaviour {    public int opcion;    public GameObject panelImagenSelector;
    public GameObject panelImagenPlaneta;    public void botonPulsado(int boton)
    {
        switch (boton)
        {
            case 1:
                if(opcion == 0)
                {
                    opcion = 1;
                    panelImagenPlaneta.SetActive(true);
                }
                break;
        }
    }
}En el inspector lo que hago es arrastrar la imagen desde la gerarquía al public GameObject panelImagenSelector y public GameObject panelImagenPlaneta. Es correcto, no? también he probado a crear un GameObject vacio y hacer depender el Image a él, y y por el mismo método vincular a las variables publicas los gameObject contenedores, pero tampoco funciona.
#62
[quote author=juanma_teso" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35336" data-ipsquote-contentcommentid="127910 date=1457274318]Exacto, enable desactiva el Update() y este tipo de funciones del MonoBehaviour, setactive el objeto entero y los hijos.[/quote]Gracias a ambos por la respuesta. El caso es que cuando lo tecleo no me aparece entre la lista de opciones, y cuando lo meto a mano me da error. Acaso me falta algo?using UnityEngine;
using System.Collections;
using UnityEngine.UI;public class ClsDirectorDeMenus : MonoBehaviour {    public int opcion;    public Image panelImagenSelector;
    public Image panelImagenPlaneta;    public void botonPulsado(int boton)
    {
        switch (boton)
        {
            case 1:
                if(opcion == 0)
                {
                    opcion = 1;
                    panelImagenPlaneta.SetActive(true);
                }
                break;
        }
    }
}Me suelta el siguiente error:Assets/PROYECTO/SCRIPTS/ClsDirectorDeMenus.cs(20,40): error CS1061: Type `UnityEngine.UI.Image' does not contain a definition for `SetActive' and no extension method `SetActive' of type `UnityEngine.UI.Image' could be found (are you missing a using directive or an assembly reference?)Alguna idea? Muchas gracias.
#63
Hola, siento si se ha preguntado miles de veces, lo cierto es que he buscado y no he encontrado, así que nuevamente recurro a vuestra ayuda,En tema es lo siguiente, creo una pantalla de menú con una imagen y unos botones que dependen de la imagen. Al pulsar determinado botón, a de activarse otra imagen que tiene otra serie de botones dependientes. Hasta aquí, bien, pero al tratar de activar la imagen con image,enabled = true, ni caso. Copio el código entero por si afecta alguna otra parte o descuido algo.using UnityEngine;
using System.Collections;
using UnityEngine.UI;public class ClsDirectorDeMenus : MonoBehaviour {    public int opcion;    public Image panelImagenSelector;
    public Image panelImagenPlaneta;    public void botonPulsado(int boton)
    {
        switch (boton)
        {
            case 1:
                if(opcion == 0)
                {
                    opcion = 1;
                    panelImagenPlaneta.enabled = true;
                }
                break;
        }
    }
}Nuevamente, muchas gracias a todos.
#64
General (Antiguo) / Serialización. Listas y objetos
Febrero 16, 2016, 09:25:26 PM
[quote author=juanma_teso" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35157" data-ipsquote-contentcommentid="127173 date=1455575819]Sólo por curiosidad, por qué la serialización? Para guardar los datos de los barcos? Para un juego en red?[/quote]Un poco de todo, pero esencialmente por operativa. El año en que consiga acabarlo, si es que consigo, jejejejejejeje... habrá un plano general en el que será el plano estratégico, dónde habrán miles de barcos moviéndose, agrupados en task forces, combois y flotas. Esta parte será por turnos, y sólo tendré en cuenta agrupaciones, mientras que los combates serán en tiempo real y sólo aparecerán los buques afectados. Pero aparte de eso, considera controlar miles de barcos, teniendo en cuenta las distancias, las armas... Exigiría una bestia de máquina y un montón de operaciones cada vez... Aunque para cuando lo acabe, seguramente será una miseria para las máquinas de entonces, pero bueno. En realidad cuento con calcular una vez la velocidad, carga etc de una agrupación de buques y mover solamente la agrupación, recuperando los buques individuales únicamente cuando haga falta... Sino, pues sería una locura.
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35157" data-ipsquote-contentcommentid="127179 date=1455591542]Yo lo que hago (en una app actualmente) es una bbdd relacional pura, luego recupero los datos desnormalizados (3a forma normal) hasta cierto punto, agrupándolos en entidades independientes. Luego en C# los recupero por JSON, los guardo en una bbdd local de SQLLite que contiene exactamente las mismas entidades recuperadas y creo HashTables que apuntan a las tablas devolviendo IEnumerators. En el código juego con ellos para combinar los datos con LINQ, sobretodo con extensiones prehechas en las mismas clases que las creadas para el SQLLite. A mí me va de muerte.[/quote]Buffff... me falta mucha información, muchos codos y muchas prácticas para llegar a eso... Aunque con tiempo y una caña todo se anda... pero de momento me conformo con ir avanzando cada día un poco más... Aún hay muchas novedades (para mi) que estoy tratando de comprender bien.
#65
General (Antiguo) / Serialización. Listas y objetos
Febrero 15, 2016, 09:29:15 PM
Perfecto, por eso me encanta preguntar. Siempre me descubrís algo nuevo que aprender.Con esas dos cosas ya me has ayudado un montón. Muchas gracias, Braltor.
#66
General (Antiguo) / Serialización. Listas y objetos
Febrero 15, 2016, 09:08:41 PM
Hola,Pues sigo aprendiendo y practicando. Esencialmente me gustaría preguntar si alguien conoce un buen manual o tutorial sobre serialización, especialmente dirigido hacia la parte de listas y referencias a objetos, que es dónde la estoy liando bonita. Me gustaría que fuera más práctico y por conceptos, más que nada para saber cuando y como es coherente serializar, ya que creo que tengo malas costumbres del C++ y estoy dando cosas por supuestas erróneamente. He pegado una vuelta a las ayudas de microsoft y las cosas que salen a bote pronto googleando, pero lo que me sale no profundiza mucho y no me resuelve mis dudas de fondo.Y ya que estoy, aprovecho para preguntar una de mis dudas. Cuando creo un objeto y lo añado con un add a una lista, entiendo que no se crea una copia del objeto a la lista, sino una referencia al objeto original. Alguien puede confirmármelo?Y siguiendo con mis dudas, si no es abusar, planteo el caso que me atormenta ahora mismo. Para que os situéis es un juego de estrategia naval. Creo una clase arma, dónde figuran tiempos de recarga, cadencia de disparo, consumo de munición, alcance máximo etc. Para poner un ejemplo, un antiaeréo de 20mm. Para calcular su impacto, creo otra clase dónde se marca distancia, probabilidad, penetración... Siguiendo con el ejemplo, a 500 metros tiene una probabilidad de un 5% de acertar y atraviesa 20mm de blindaje, a 1000 un 2% y atraviesa sólo 5mm. Esto lo añado al arma con una lista. Después creo una clase torreta, dónde según el tipo de arma podrá tener montajes simples, dobles, triples, cuadruples, sextuples, octuples. Esto tiene sentido sobre todo al pensar en montajes antiareos complejos o en las piezas principales, ya que tienen blindaje, velocidad de rotación y recarga más lentos, pero incrementa las posibilidades de impacto. Más si luego que pensamos que cada torre tendrá una ubicación y la de proa podrá disparar a proa, estribor y babor, pero una pieza en estribor sólo a proa estribor y popa, que una torreta montada más atrasada sobre otra sufrirá una penalización en velocidad de rotación y en efectividad o que una batería secundaria puesta al lado de una mayor sólo podrá abrir fuego defensivo por ejemplo a proa y estribor... Bien, me lío. El caso es que a la clase torreta sólo le añado una referencia al objeto arma, ya que tenga una, dos, tres u ocho piezas, siempre serán del mismo tipo. Hasta aquí bien. Luego creo una clase contenedora (Una mala costumbre del C++, hecho de menos el main) donde creo las tres listas de objetos de armas, puntería y torretas, y asigno a cada arma sus tablas de puntería, y a cada torreta la arma que le corresponde. Y serializo. Y ahí es dónde me lía el pitosfio. Al ver la serialización tengo toda la tabla de puntería, luego toda la tabla de armas y toda la tabla de torretas. Ahora bien, al abrir las armas, veo que también me ha serializado en su interior toda la tabla de puntería. Bueno, eso no es muy grave, podría cargarme la tabla que las agrupa todas las punterías, ya que pensando, resulta redundante. Ahora, el trauma me viene con las torretas, no sólo me guarda la referencia, sino el objeto entero, es decir, el arma y todas las tablas de puntería del arma. Y aquí la primera de mis cuestiones. Entiendo que al deserializar, no me crearía un objeto arma, como tengo en origen, sino un objeto arma por cada tipo de torreta, lo cual es un desperdicio de memoria en objetos duplicados, cuadriplicados e incluso más. Lo ideal sería que existiera un comando que indicara que sólo es una referencia, no un objeto en si (He buscado, pero o no existe o no he sabido encontrarlo). Se me ocurren dos soluciones, a no ser que alguien más experimentado me apunte una tercera. La primera sería serializar sólo las colecciones enteras sin las referencias entre objetos, añadiéndoles un ID y reconstruyendo después las referencias a través por ejemplo de LINQ (Entiendo que Unity lo implementa, una solución muy SQL, lo reconozco). La segunda cambiar la jerarquía y hacer que las torretas dependan del arma (Es decir, una lista en el propio arma) ya que un arma podrá estar montada en diferentes tipos de torretas, en cambio una torreta sólo tendrá una o más armas siempre del mismo tipo, pero como concepto me choca. A vosotros que os parece mejor solución?En fin, que pregunto más cuestiones de concepto que de implementación. Perdón si pregunto burradas, pero es que lo encuentro googleando se centra más en la implementación que en los conceptos, que seguramente es dónde más fallo.Perdón por el tocho y gracias nuevamente a todos.
#67
General (Antiguo) / Problema 3dText y LookAt
Febrero 07, 2016, 10:09:08 PM
Si!!! Muchas gracias!!!
#68
General (Antiguo) / Problema 3dText y LookAt
Febrero 07, 2016, 08:45:05 PM
Bueno, el problema es bastante absurdo, pero me estoy dejando la salud mental.Estoy con un juego de estrategia, así que rotulo determinados objetos con un 3dText, de modo que el jugador no se pierda teniendo que buscar las cosas. Evidentemente al desplazar la cámara los textos salen orientados tal como marqué en diseño, de tal modo que según como se pone la cámara no se ve nás, cosa que apaño añadiendo al Update del rótulo el LookAt, lo divertido del tema, es que ahora haga lo que haga, mueva la cámara como la mueva, me aparecen los textos al revés, rotados 180º, vamos, con lo cual no sé que estoy haciendo mal.Adjunto la función Update, que como veis no tiene gran cosa.    void Update () {
        this.transform.LookAt(camara.transform);
    }estaré muy agradecido si alguien aporta alguna idea o si estoy haciendo algo mal.Muchas gracias.
#69
General (Antiguo) / Problema debuger Visual Estudio
Diciembre 06, 2015, 12:04:35 AM
Perfecto. Me ha ido estupendo. Muchas gracias a ambos!!!
#70
General (Antiguo) / Pregunta retórica
Diciembre 05, 2015, 08:48:15 PM
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34502" data-ipsquote-contentcommentid="124385">https://www.assetstore.unity3d.com/en/#!/content/391">https://www.assetstore.unity3d.com/en/#!/content/391Hay muchas maneras de integrarlo sin problemas [/quote]Pues perfecto, entonces. Ya sé a qué voy a dedicar estos 4 días... :D
#71
General (Antiguo) / Pregunta retórica
Diciembre 01, 2015, 01:36:07 PM
[quote author=iRobb date=1448932153" data-ipsquote="" data-cite="iRobb">Hoy en día ya solo se destilan los lenguajes de desarrollo "managed" para evitar problemas en la gestión de la memoria o malintencionados que provoquen overflows.Yo también provengo de C++ y verás que con C# te vas a sentir muy cómodo. Ha ido evolucionando mucho en los últimos años. Eso sí, olvídate de punteros, memcpy's, herencia múltiple (solamente si es una Clase + Interface) o de tener que asignar memoria (o instanciar) antes de copiar una cadena [/quote]Si la verdad es que en principio uno se adapta bien, es todo como más intuitivo y haces las cosas de un modo más directo. Luego cuando profundizas, es cuando te surgen las dudas tontas como la que preguntaré ahora, que es tan básica que no entiendo como se me ha pasado... Seguro que he leído sobre ello o he visto algún ejemplo pero lo he dado por sobreentendido o algo, que ahora que necesito hacerlo, no tengo idea, ya no de como hacerlo, sino siquiera de por dónde buscar. Creo un nuevo hilo para esta consulta, que así seguro que servirá para alguien más que provenga de C+ o algún lenguaje similar y le sirva la respuesta... Espero no hacer el tonto preguntando algo absurdo... :)
#72
General (Antiguo) / Pregunta retórica
Noviembre 30, 2015, 08:01:52 PM
Gracias @iRobb Tiene buena pinta, le pegaré un ojo, pero C++, no es compatible con Unity, no? 
#73
General (Antiguo) / Problema debuger Visual Estudio
Noviembre 30, 2015, 07:49:17 PM
Doble post... Sorry.
#74
General (Antiguo) / Problema debuger Visual Estudio
Noviembre 30, 2015, 07:48:17 PM
Muchas gracias por la respuesta. Por ahí van los tiros, si... Lo he leído en el trabajo y he pensado tiene toda pinta, si señor, pero al llegar a casa pruebo y no tengo la opción...Por ahí le anda la cosa, pero falta un algo para que coja que está con Unity... He mirado por todos lados, pero no encuentro el modo... Algo desde Unity quizá?
#75
General (Antiguo) / Pregunta retórica
Noviembre 25, 2015, 08:19:16 PM
[quote author=kaito" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34502" data-ipsquote-contentcommentid="124049 date=1448394828]Y crea un objeto.Es como si serializaras una clase y la guardaras en un archivo de texto.Pero al guardar varios tipo de objetos, especifica el nombre del objeto y de sus miembros, por ejemplo el objeto character_event, esta formado por las variables id, days y tooltip. Y a su vez, character_event forma parte de otro objeto(clase).[/quote]Uopsssss... Pues es verdad... Lo estudiaré desde esa perspectiva... Muy bien visto. Así veré más claro como hacer algo similar. Muchas gracias!!!
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34502" data-ipsquote-contentcommentid="124052">Creo que hablas del scripting del The Clausewitz Engine del Crusader Kings II?Se cambia para realizar modding. Tienes todas las referencias al código en:http://www.ckiiwiki.com/Event_modding date=1448397225]http://www.ckiiwiki.com/Event_modding[/quote]Exacto, Muy bien visto. Se que es un motor particular de Paradox, Yo quiero hacer un producto similar en cuanto a enfoque (No en cuanto a calidad y extensión, que más quisiera, quizá algún día muy muy lejano, me queda mucho por aprender) pero he visto que muchas otras compañías usan sistemas similares, y mi pregunta es, ya que estoy encarando esta parte, igual que he descubierto la serialización que antes era algo que teníamos que hacer a mano, si hubiera alguna facilidad que desconozco que permitiera hacer algo ligeramente similar, sin tener que programar en la clase todas y cada una de las posibles relaciones, variables, etc... Me parece mucho más eficiente como lo hacen ellos y mucho más flexible y dinámico. Quiero decir, desde estos archivos puedes crear nuevas provincias, naciones, eventos, personajes, unidades militares, tipos de edificios, y todo ello puedes programar que dependa de otros elementos, si están activos o no, su nivel, y a su vez que activen otros elementos o flags de otras clases... Si tienes que prever todo eso en el diseño de la clase, tienes que añadir docenas de variables, que seguramente en la mayoría de los casos no usarás. Si puedes invocar un código, un trigger, un msgmap o similar, es mucho más flexible y te evitas esas variables que sólo servirán para unos pocos objetos de esa clase... Y lo que no quiero es programar un motor, jajajajajajajaja... 
[quote author=francoe1" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34502" data-ipsquote-contentcommentid="124054">Creo que el quiere algo como, una clase genérica fruta, que tengas métodos como cortar, explotar, pero dependiendo de que fruta los métodos tengan diferentes comportamientos, a lo que yo decanto por utilizar métodos virtuales.creas un clase fruta, con los parámetros de toda fruta y luego los métodos virtuales que quieres sobrescribir 
 
public class{
    private int Diametro;
     
    public virtual void Cortar()
    {
        Debug.log("Fruta Cortada");
    }
}
para poder sobrescribir el método Cortar, entonces deberías utilizar la palabra reservada override.Creamos una Clase Manzana, que herede de Fruta y Sobrescribimos el método Cortar.
public class Manzana:fruta
{
    public override void Cortar()
    {
        Debug.log("Se Corto la Manzana");
        //Si quieres llamar el metodo que se encuentra dentro de fruta usas Base
        Base.Cortar();
    }
}
Espero te sirva.. PD: lo escribí todo en el foro pueden existir errores, Suerte![/quote]Si, había pensado en algo similar, pero eso me obligaría a convertir lo que he considerado como objetos en clases heredadas, de esa forma perdería la flexibilidad que el sistema de Paradox o Ageod tienen. Nada, sólo era curiosidad, como con cada cosa que aprendo de Unity descubro que hay tres o cuatro más que ignoro, pensé que quizá habría una forma de meter código y que después fuera interpretado o alguna cosa similar... Gracias a todos por vuestras respuestas!!!