Jump to content

Search the Community

Showing results for tags 'interfaces'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
    • Youtube
  • Mesa de ayuda
    • Unity
    • Arte
    • Builds & Dispositivos
    • Otras Especialidades
  • Aportes de la Comunidad
    • Recursos
    • Eventos
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 2 results

  1. A ver si alguien me da una idea por qué no doy con ello. Aunque no he apretado mucho con la teórica de C#, doy por supuesto que se puede crear una lista de interfaces, dado que lo he conseguido en un caso simple, pero no en el segundo doble, a mi parecer idénticos excepto por eso, de ahí mi perplejidad. Aclarar, que he aprendido C# a base de leches, así que a no descartar que se me esté yendo. Bien, al lío. Necesito crear tipos diferentes de Interfaces y tipos diferentes de datos con una o más interfaces, que para eso están, no? O al menos eso creo. Por otro lado deseo guardar listas de los objetos creados con cada uno de las interfaces, por lo que he decido crear un singleton. Bien para hacernos una idea, simplifico al máximo. public class UnoParaGuardarlosATodos : Monobehavior { public static UnoParaGuardarlosATodos miSharedInstance; public List<IMiInterfaceA> misObjetosConInterfaceA = new List<IMiInterfaceA>(); public List<IMiInterfaceB> misObjetosConnIterfaceB = new List<IMiInterfaceB>(); public void f_InstanciaObjetosConInterface(){ ObjetoTipoA miObjetoTipoA = new ObjetoTipoA(); ObjetoTipoB miObjetoTipoB = new ObjetoTipoB(); } } Bien, único objeto que tira de Monobehavior. Luego creo dos Interfaces. public interface IMiInterfaceA { void f_Iregistra(); funcion1(); funcion2(); funcionN(); } y public interface IMiInterfaceB { void f_Iregistra(); funcion1(); funcion2(); funcionN(); } Y dos objetos. public class ObjetoTipoA : IMiInterfaceA { public ObjetoTipoA() { f_Iregistra() } public void f_Iregistra() { UnoParaGuardarlosATodos.miSharedInstance.misObjetosConInterfaceA.add(this); } } Este primero se lo traga sin problema. No tira error. Creo el segundo. public class ObjetoTipoB : IMiInterfaceA, IMiInterfaceB { public ObjetoTipoB() { f_Iregistra() } public void f_Iregistra() { UnoParaGuardarlosATodos.miSharedInstance.misObjetosConInterfaceA.add(this); UnoParaGuardarlosATodos.miSharedInstance.misObjetosConInterfaceB.add(this); } } Con este segundo si me tira error. Para ser más concreto, este: El error me lo tira primero en la función f_Iregistra y después en el constructor. El problema es que me lo tira directamente en el editor, con lo que no puedo debuggearlo, y el único modo de saber que narices le pasa es comentando líneas. Así he llegado a lo que le molesta, que es cualquiera de las dos líneas: Lo curioso es que he copiado y pegado la línea de la clase ObjetoTipoA, por si fuera un error de sintaxis, nada. No puede ser el Singleton, dado que es ese el que crea los objetos de las clases. Mi duda es si al tener dos interfaces con la misma función, pero todo lo que leo (A menos que lo interprete al revés, cosa a no descartar, soy medio así... ) no sólo es que se pueda, sino que es como se DEBE de hacer, para hacer código legible, mantenible y blabla... Pero el caso es que si hago que implemente sólo una de las dos Interfaces (Sea cual sea, la A o la B) si me funciona... Llegados a este punto, ya no sé por dónde tirar... Acepto ideas, sugerencias y tirones de pelo. Muchas gracias a todos.
  2. Crearemos objetos interactivos utilizando Interfaces.Esto nos permitirá crear objetos con los que podamos interactuar y dotarlos de distintos comportamientos.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...