Jump to content
UnitySpain

Search the Community

Showing results for tags 'array'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Blogs

  • byGui
  • El Blog de Pioj

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 14 results

  1. 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.
  2. Saludos compañeros, el otro día vi en un script algo como lo siguiente: y me queda una gran duda como se iguala o se compara myArray[i, 5] == 0, como se puede comparar por ejemplo a myArray[i, 5] == -1 ó myArray[i, 5] == 1, no entiendo como realiza esa comparación (dos números contra uno). Muchas gracias por su ayuda he buscado por varios sitios y no encuentro la respuesta
  3. Hola gente, como estan?. Bueno nose si mis preguntas son medias boludas y basicas, pero ahora tengo un problema con creacion de varias variables diferentes del mismo tipo, para despues utilizarlas(no hace falta utilizar las variables creadas en otra clase, podria usarlas en una misma clase o metodo). Bueno, mi duda principal es como hago para crear muchas variables mixtas del mismo tipo(GameObject en este caso) tal y como dice el titulo huehue. Supongamos que necesito crear variables conforme valla agregando objetos en una lista que adentro tiene un array, bueno eso se obtiene facilongo, con un for bastante basico: //necesito obtener variables GameObject que se llamen "plate"+(i+1) eso //Ejemplo: GameObject plate1 = blabla for (int i = ; i < PlateList.Capacity; i++) { Debug.Log ("plate"+(i+1)); //Aca puedo crear cada variable GameObject, pero nose como nombrarlas //Ejemplo: GameObject "plate"(i+1); ---> en la primer vuelta va a crear GameObject plate1; } //necesito obtener variables GameObject que se llamen "floor"+(z+1)+"_p"+(i+1) eso //Ejemplo: GameObject floor2_p1 = blabla for (int i = ; i < PlateList.Capacity; i++) { for (int z = ; z < PlateList [i].Floor.Length; z++) { Debug.Log ("floor" + (z + 1) + "_p" + (i + 1)); //Aca puedo crear cada variable GameObject, pero nose como nombrarlas //Ejemplo: GameObject "floor"+(z+1)+"_p"+(i+1); ---> en la primer vuelta va a crear GameObject floor1_p1; } } //y yo poder usar aca por ejemplo: // floor2_p1.transform.position = Vector3.Lerp (floor1_p1.transform.position, new Vector3 (5.0f, 2.75f, 1.0f), timePlataform / speedPlataform); ESOS EJEMPLOS ADENTRO DEL FOR NO SUCEDEN, ESTA MAL LA SINTAXIS, FUE SOLO UN EJEMPLO PARA QUE VEAN LO QUE NECESITO. Algo bastante sencillito aunque no paresca, pero me esta costando mucho, pense en crear un string para dsp insertarlo en el nombre de la variable GameObject, pero no se puede, seguro va por ahi la mano pero nose que hacer, o sino convertir un string en GameObject lo cual se me acaba de ocurrir mientras escribo esto jajaja, de todas formas nose como convertir un string a GameObject, pero va por ahi la mano segurisimo. Si hay otra forma mas sencilla avisenme. Tambien algo que tengo mucha intriga, si logro crear dichos GameObject en cada iteracion del for.... Cada iteracion siguiente, hace desaparecer el anterior?? creo que no, no tendria por que pasar... hmmm Espero que se haya etendido(nunca supe escribir bien alla,halla,haya,(conosco aya nomas que es el mas facil)) Una abrazo, espero soluciones. PD: de todas formas no se puede hacer asi por que lo que cree adentro de el for, no lo puedo usar en otro lado... alguna solucion?? u.u
  4. buenas a todos, a ver si me pueden orientar que no consigo que me funcione. Estoy intentando hacer una lista o diccionario en el que he introducido 4 propiedades de tipo string. esto es una: public class listaMesclas { public string nombre; public string compBase; public string compExtra; public string catalizador; public listaMesclas(string newNombre, string newBase, string newExtra, string newCata){ nombre = newNombre; compBase = newBase; compExtra = newExtra; catalizador = newCata; } } luego en otro script por otro lado hago las entradas,(solo pongo tres ahora tengo unas 20 y la idea es ir ampliando): List<listaMesclas> Mezcla = new List<listaMesclas>(); Mezcla.Add (new listaMesclas("semillaPlanta1","Azufre", "Carbon", "pocion1" )); Mezcla.Add (new listaMesclas("semillaPlanta2","Azufre", "Plata", "pocion2" )); Mezcla.Add (new listaMesclas("semillaPlanta3","Carbon", "Plata", "pocion3" )); hasta aquí creo que bien. lo que intento conseguir es poder comprobar si en un trigger tengo tres objetos con los nombre de la lista, por ejemplo Azufre, carbon, y pocion1, que me devuelva la posición o el nombre del primer valor, semillaPlanat1 en este caso, o la posición 0. el trigger lo tengo, no se como hacer las consultas en el diccionario y dar validez a una posición si se cumplen los tres parámetros. he estado buscando pero en tema List y Dictionary soy muy principiante, si conocen un sistema mejor también lo agradecería gracias de antemano por la atención . p.d. si necesitan el script entero lo pasaría.
  5. Veamos, esta vez traigo el propio ejemplo de docs, Unity3D..... Me salta este error, a pesar de que lo he copiado exactamente igual: Se supone que debería funcionar pero parece que no detecta el array como array, sino como un gameobject único ¿o me equivoco? ¿A alguien se le ocurre algo? 1 // Find the name of the closest enemy 2 function FindClosestEnemy () : GameObject { 3 // Find all game objects with tag Enemy 4 var gos : GameObject[]; 5 gos = GameObject.FindGameObjectsWithTag("Enemy"); 6 var closest : GameObject; 7 var distance = Mathf.Infinity; 8 var position = transform.position; 9 // Iterate through them and find the closest one 10 for (var go : GameObject in gos) { 11 var diff = (go.transform.position - position); 12 var curDistance = diff.sqrMagnitude; 13 if (curDistance < distance) { 14 closest = go; 15 distance = curDistance; 16 } 17 } 18 return closest; 19 }
  6. int cantidadEnemis = 10; int[] verficadorNum = new int[26]; int numPosAleatorea = 0; for (int i = 0 ; i < cantidadEnemis; ) { numPosAleatorea = Random.Range(0, posicion.Length); verficadorNum = new int[i+1]; //este verifica que no se repita en la misma posicion for (int AuxO = 0; AuxO < verficadorNum.Length; AuxO++) { // Debug.Log(AuxO); if (numPosAleatorea == verficadorNum[AuxO]) { // Debug.Log("hola "); break; } } /*if (salir == true) { // Debug.Log("salir"); salir = false; return; }*/ verficadorNum[i] = numPosAleatorea; Instantiate(enemigo, posicion[verficadorNum[i]].position, Quaternion.identity); Debug.Log("posicion ="+verficadorNum[i]); ++i; } el problema es tratado varias formas pero este metodo no discrimina y repite numeros varias veces.
  7. buenas, estoy intentando crear un array con 5 gameobjects dentro que luego utilizo para instancias 1 atreves de un random, algo así: vale, ahora necesito que esta lista de gameobjects, pueda cambiar sin afectar al aleatorio, me refiero a que por ejemplo tener una variable tipo boleado que active o desactive uno de los objetos y se quite de la lista o vuelva. gracias. voy un poco perdido, agradecería cualquier guía.
  8. Buenas gente,queria postear un poco de mi codigo a ver si alguien me puede ayudar,tengo problemas con los arrays,el tema es el siguiente,estoy tratando de hacer un juego tipo pong pero con muchas pelotas,meti las pelotas en un array y ahora quiero controlar la ia del enemigo en referencia al array de pelotas,aca estan mis codigos. el primero es el spawneador de pelotas donde esta el array: var ball:GameObject; static var ballArray:GameObject[]; var timeToSpawn:int=10; function Start(){ ballArray= GameObject.FindGameObjectsWithTag("Ball"); } function Update(){ timeToSpawn-=Time.deltaTime; ballArray= new GameObject[10]; for(var i:int;i<ballArray.Length;i++){ if(timeToSpawn==0){ var clone=Instantiate(ball,Vector3.zero,Quaternion.identity); timeToSpawn=500; } ballArray[i]=clone; } } function Awake () { }y aca esta el controlador de la ia enemiga: #pragma strict var speed:float =10; var ball:GameObject; //var ballCon=spawnBallController; function Update () { if(spawnBallController.ballArray.transform.position.y>transform.position.y){ transform.position = new Vector3(transform.position.x,transform.position.y+0.2,0); transform.position.y = Mathf.Clamp(transform.position.y,-3.4,3.92); } if(spawnBallController.ballArray.transform.position.y<transform.position.y){ transform.position = new Vector3(transform.position.x,transform.position.y-0.2,0); transform.position.y = Mathf.Clamp(transform.position.y,-3.4,3.92); } }el error que me tira en unity es el siguiente: en la linea: if(spawnBallController.ballArray.transform.position.y>transform.position.y){ "transform" is not a member of unityengine.gameObject[]; si no me explique bien avisen y por favor si alguien me puede dar una mano se lo voy a agadecer
  9. hola, buen día! Estoy programando un juego en el que los números no se debe repetir una vez que la función Random.range los haya escogido, sin embargo ya realice luchas formas y no funciona, o cuando creo q va a funcionar "Unity deja de responder" y tengo q reiniciar el programa. Les dejo el código que utilizo, agradecería mucho su ayuda, saludos. function generarAleatorios(){ Debug.Log("long usados" + usados.length); if (usados.length==0){ elegido=Random.Range(0,4); //no seria voz.length-1?? usados.push(elegido); }else{ elegido=Random.Range(0,4); //no seria voz.length-1?? for (var i=0; i<=usados.length-1; i++){ if(usados == elegido){ indicador=true; } } if(indicador){ generarAleatorios(); }else{ usados.push(elegido); Debug.Log("Usados: "+usados); Debug.Log("long usados" + usados.length); } } }
  10. Hola chicos. ¿Hay alguna manera de almacenar los argumentos de una clase dentro de un array, para poder cargarlos despues mediante un bucle de manera sistematizada? En mi ejemplo son sólo 4 argumentos pero podrían ser 40. Tengo una clase de objeto, "objeto_class" para mi inventario de mi juego. Esta clase contiene los argumentos y el construcctor necesario para generar cualquier objeto. Como veis, tengo 4 argumentos en mi clase "objeto_class" public class objeto_class{ public int id; //1º argumento public string nombre;//2º argumento public string descripcion;//3º argumento public int cantidad;//4º argumento public objeto_class(int idd,string nom,string desc,int cant){ id = idd; nombre = nom; descripcion = desc; cantidad = cant; } }Los "objetos_class" los tengo almacenados dentro de una array de objeto_class llamada "array_objeto_class". Las casillas de mi inventario estan creadas con un prefab con un UI objeto que contiene 4 hijos, el cual lo instancio con un "for" 16 veces, dándome 16 casillas. casilla_prefab-------tiene 4 hijos donde quiero que carguen los argumentos > 1º hijo TEXTO ID del objeto (esto cargaría el valor del argumento int id) >2º hijo TEXTO Nombre del objeto (esto cargaría el valor del argumento string nombre ) >3º hijo TEXTO Descripcion del objeto (esto cargaría el valor del argumento string descripcion) >4º hijo TEXTO Cantidad del objeto (esto cargaría el valor del argumento cantidad ) Su tag es "casilla_estadisticas" Las casillas las busco con sus TAGs y las meto dentro de un array de GameObject. GameObject[] array_cas = GameObject.FindGameObjectsWithTag("casilla_estadisticas");// Busco todas las casillas con el mismo tag, y las meto en un array de GameObject for(int i = 0; i < array_cas.Length; i++){ //con este for quiero poner valor a los hijos de las casillas que leen esos valores de los argumentos de las clases objeto_class almacenadas en array_object_class array_cas[i].transform.GetChild(uno de los 4 hijos).GetComponent<Text>().text = array_objeto_class[i].ARGUMENTO ; //<<---¿como puedo acceder a los argumentos de manera ciclica?, ya que no puedo poner "ARGUMENTO[i]" }; Gracias por todo.
  11. Hola a todos. He hecho un array GameObjects para colocar varios objetos de la escena, y para cuando un evento suceda activar algunos elementos del array. Como son muchos, demasiados, es demasiado hacer linea por linea ArrayObjetos[0].SetActive(true); ArrayObjetos[1].SetActive(true);...... Me gustaria poder en una linea llamar a los que necesito y activarlos, pero no encuentro información y no se si sea posible. Gracias por ayuda.
  12. Hola. Paso a contarles. Tengo mi juego de carrera y la idea es que corra un cronometro por cada vuelta, es decir: Empieza en cero, cuando pasa la meta ese cronometro se para, empieza el segundo hasta que pasa la meta, este se para y luego se suman todos los valores para tener un resultado. Bueno, hice los cronometro en float con array, cada uno con su respectivo bool array para saber cuando estan funcionando. La cosa es que pude hacer que el primer cronometro empiece con la carrera, una vez cruzada la meta con un OnColliderEnter hago que el primer cronometro termine y con un if en el Update, si el cronometro 1 termino y el cronometro 2 esta en false, arranca el 2... Ahí surgio el problema, si en el OnColliderEnter pongo otro if, el segundo cronometro no arranca. Entonces pense hacerlo de nuevo con Array pero no anda. Paso el codigo y espero haberme explicado bien :S :S La idea es hacer un array aqui: void OnCollisionEnter(Collision[] coll = new Collision[2]){ if (coll[0].gameObject.name == "Auto") { Debug.Log ("Completaste la primer vuelta"); checkpoint[0] = true; } } Es posible hacer esto o hay alguna otra forma? Desde ya muchas gracias.
  13. hola a todos tengo un problema con un script, soy algo nuevo en unity, ya estoy casi por terminar un juego pero me eh atorado en una parte y quisera ver si me pueden ayudar, el problema es el siguiente. eh puesto 8 gameobjects en un array pero nesecito que los gameobject se activen o desactiven dependiendo de una variable que se llama "divesInside" que se encuentra en otra clase, bueno todo asta aqui va de maravilla cuando pongo los gameobject en el array, pero nesecito que estos gameobject dentro de el array de activen o desactiven dependiendo de la cantidad de "divesInside", el codigo funciona pero al momento de hacer SetActive a un objeto de el array solo me activa el que esta en la posicion [0] y no los demas, aun si pongo en update fuera de el "for" a otro objeto de el array siempre me activara el de la posicion [0] y no los otros. este el el codigo. using UnityEngine; using System.Collections; public class DivesInsideDisplay : MonoBehaviour { public GameObject divesDisplay; public Transform location; private GameObject[] divesDisplayArray = new GameObject[8]; public float spaceBetween; private float space =0; // Use this for initialization void Start () { for (int i = 0; i < divesDisplayArray.Length; i++) { divesDisplayArray[i] = divesDisplay; Instantiate(divesDisplayArray[i], location.position + new Vector3(space , 0, 0),location.localRotation); space += spaceBetween; divesDisplayArray[i].SetActive(false); } } void Update () { for (int i = 0; i < GameRules.divesInside; i++) { divesDisplayArray[i].SetActive(true); } } }
  14. Buenas: Tengo varios scripts con números de población (scripts clonados - prefabs) de diferentes paises. Intento recuperarlos todos en un script central. pero cuando intento hacer un foreach accediendo a la variable que quiero de "Country" no me deja hacer-lo que entiendo que debería ser algo parecido a: evidentemenente, si population = GetComponent<Country>(); retorna un null reference... estoy un poco perdido... normalmente no tengo problemas para acceder a la variable de un solo script, pero esto de acceder a una variable de un script de GO no determinado (o determinado a traves de un .FindGameObjectsWithTag, según se vea ) me tiene un poco despistado. Llevo tres días buscando como resolver el enigma, pero sin resultados... ¿Qué puedo hacer (o dónde puedo encontrar información para resolver algo tan específico)? Mil gracias!! PD: ya podéis ir preparando la factura, que a día de hoy sois mis mejores profesores! Un saludazo y reitero mi agradecimiento!!!
×
×
  • Create New...