Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: RubenV en Octubre 27, 2018, 05:43:17 PM

Título: Duda configuracion Arrays y Variables
Publicado por: RubenV en Octubre 27, 2018, 05:43:17 PM
Buenas tardes,
 
Primero quiero pedir perdón por registrarme y en vez de contribuir echando un cable, empezar pidiendo ayuda.
Bueno al lio...
 
Tengo un problema de planteamiento de estructura, os pongo un ejemplo, que no se como transformarlo a C#
 

 
 
Cuando lo leo en Español, no parece muy complicado, al menos la expresión. Pero cuando quiero pasarlo a c#.... ya es harina de otro costal....
 
Muchas gracias de antemano por la ayuda.
Título: Duda configuracion Arrays y Variables
Publicado por: lightbug en Octubre 27, 2018, 07:29:21 PM
Cita de: RubenV date=1540654997Definir un array con unas imágenes (Creo que con una funcion public y añadiendola a un objeto, puedo adjuntarle todas las imágenes, no?)                    [Array/List]
   
   
      -Definir una variable A, que contenga la lista de imágenes del array.                           [Array/List]
   
   
      -Definir una variable B que tambien contenga la lista del array.                                    [Array/List]
   




   
      -Crear un metodo que:
   
   
               De la variable A, elije una imagen al azar.                      [Random.Range]
   
   
               Esa imagen se coloca en unas coordenadas               [Array/List]
   
   
               Esa imagen se resta de la lista A.                                    [Array/List]
   
   
      -Crear otro metodo que:
   
   
               De la variable B elija 2 imágenes al azar.                     [Random.Range]
   
   
               Esas imágenes las coloca en otras coordenadas      [Array/List]

               Esas imágenes se restan de la lista B                          [Array/List]
   

[/quote]



   
               Cuando la lista B se queda vacia se reinicia de nuevo el contenido de la lista B. 
   

[/quote]
 
Por ejemplo cuando decís que querés un "array con imágenes", por "Imagen" a que te referís? a un Sprite, una Image, una RawImage, una Texture, una Texture2D ?.
 
Quizás para resolver muchos de los puntos te recomendaría que investigues contenedores, principalmente los array de C# y las List (de System.Collections).
 
Array : http://www.tutorialsteacher.com/csharp/array-csharp (http://www.tutorialsteacher.com/csharp/array-csharp)
 
List: http://www.tutorialsteacher.com/csharp/csharp-list (http://www.tutorialsteacher.com/csharp/csharp-list)
 
 
 
-> La página tiene info/ejemplos muy buenos de C# en general (además de otros lenguajes)
 
 
 
Para la parte aleatoria necesitas revisar la clase Random de Unity, quizás Random.Range haga el truco.
 
Random Range: https://docs.unity3d.com/ScriptReference/Random.Range.html (https://docs.unity3d.com/ScriptReference/Random.Range.html)
 
 
 
Podés hacer dos cosas:
 


  •    tener dos contenedores, uno es el que vas a modificar y el otro el original (de donde vas a reponer los elementos) , los contenedores contienen referencias al gameObject o recurso, entonces jugá con ellos, por ejemplo en uno guardas el original y en el otro los vas removiendo a medida que los vas usando.


  •    o quizás tener el original más un contenedor donde vas a ir agregando los índices disponibles (int por ej) y en base a estos índices elegís tus imagenes (típico caso de probabilidades y el bolillero con X bolillas), por ejemplo:




  1.    Tenés tu contenedor con tus (por ejemplo) 6 imágenes


  2.    Tenés una Lista de int's con los 6 índices   ->   { 0 , 1 , 2 , 3 , 4 , 5 }


  3.    Elegís una imagen haciendo un Random.Range a este contenedor anterior


  4.    Salió la imagen 3 y hacés lo que quieras con ella


  5.    Removés del contenedor el índice 3 ->   { 0 , 1 , 2  , 4 , 5 }


  6.    Elegís una nueva imagen


  7.    Salió la imagen 2 y hacés lo que quieras con ella


  8.    Removés del contenedor el índice 3 ->   { 0 , 1  , 4 , 5 }


  9.    ...


  10.    Si el contenedor está vacío lo rellenás (sería el "se resetea la lista X" que pusiste)


Un truco, sí además colocás multiples valores repetidos podés incrementar la probabilidad de ocurrencia, y obviamente a la hora de remover los índices tenés que remover todos los correspondientes.
 
 
 
Saludos