Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 15,00€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
RubenV

Duda configuracion Arrays y Variables

Recommended Posts

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#

  • Definir 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?)
  • Definir una variable A, que contenga la lista de imágenes del array.
  • Definir una variable B que tambien contenga la lista del array.
  • Crear un metodo que:
    • De la variable A, elije una imagen al azar.
    • Esa imagen se coloca en unas coordenadas
    • Esa imagen se resta de la lista A.
  • Crear otro metodo que:
    •  De la variable B elija 2 imágenes al azar.
    •  Esas imágenes las coloca en otras coordenadas
    •  Esas imágenes se restan de la lista B
      • Cuando la lista B se queda vacia se reinicia de nuevo el contenido de la lista B.

 

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.

Edited by pioj
formatear el texto correctamente facilita su lectura.

Share this post


Link to post
Share on other sites
49 minutes ago, RubenV said:

Definir 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]

Quote

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

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

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

 

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

 

Share this post


Link to post
Share on other sites

×
×
  • Create New...