Jump to content
UnitySpain

arjmaj

Fosiles
  • Content Count

    15
  • Joined

  • Last visited

  • Days Won

    2

arjmaj last won the day on September 3 2013

arjmaj had the most liked content!

Community Reputation

29 Excellent

About arjmaj

  • Rank
    Iniciado

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Buenas, estoy pensando en un proyecto y ya tengo algo medio decidido, de a poco voy armando y metiendo las ideas buenas, y las malas descartándolas. La cuestión esta en 2 o 3 cosas, en principio, no soy diseñador, nunca lo aprendí, y para ser sincero, aunque la programación es algo que se me hace facil, el diseño es algo que me trae de los pelos, ya que nunca entendí los programas de modelado. Ahora bien: el proyecto es una mezcla de 2D y 3D, aun no me he puesto ni a programar, básicamente estoy organizando todo en una serie de carpetas y documentos como podrán ver abajo (siempre fui un desorganizado, y entiendo muy bien que un juego necesita SI o SI ser organizado, por lo que antes de hacer nada prefiero prepararlo todo asi). Entonces: ¿Assets de modelos 3D de unidades estilo militares? ¿Assets de interiores 3D --los de la aplicación que uso son un poco limitados--? ¿Assets de "Aliens" o "unidades sobrenaturales" en 3D?, para las construcciones tengo un programita GPL que me permite hacerlas sin ser conocedor de nada (les dejo el link al final, esta muy bueno la verdad, y permite usarlo para ganar dinero asi que tambien vale), exportar e importar con sus texturas y todo, asi que esta bastante bien, al menos para mi. La cuestión es que, no tengo internet (estoy subiendo esto mediante los datos de mi celular), y no me puedo permitir una búsqueda a gran escala de assets para unity gratuitos (hasta que no vengan a instalarme internet, unas 3 semanas hasta que me lo pongan). Muchisimas gracias. LINK: http://www.sweethome3d.com/es/ (pruebenlo, de verdad, es una joya!)
  2. Jajaja... no se que onda, el mono develop no me abre, sera por el visual studio? o el visual studio es el mono develop?... ese es el que usaba eones atras con la version 3 de unity!!!
  3. Muchisismas gracias, antaño solo podias usar OnGUI y no estaba seguro de como hacerlo, ahora me pongo con ello. Aigato! jajaja
  4. De nada, lo hice en el aire, asi que probalo y me decis que tal! jaja...
  5. No es mas facil algo asi? var espera : boolean; function Start(){ espera = false; } function Update(){ if(espera == false){ Disparar(); espera = true; } } function Disparar(){ //haces todo tu codigo de disparo //Al final del codigo pones esto yield WaitForSeconds(2); espera = false; } asi, comprobas siempre si espera es falso, si lo es, te vas a la funcion disparar, mientras tanto, pones espera en verdadero, haces todo tu codigo de disparo, cuando terminas, le decis que espere 2 segundos y al finalizar pones espera en falso de nuevo, para que vuelva a realizar el disparo... Tambien podes cambiar el 2 por una variable y decirle que espera tanto tiempo como diga la variable --> yield WaitForSeconds(variable); <-- No se, es otra idea, y te ahorras todo el procesamiento de andar sumando y contando tiempo...
  6. Yo volvi a unity hace poco (desde el 3 que no lo usaba) y me pasaba lo mismo... La unica solucion que le encontre fue utilizar las "//" como comentario de linea, en vez de comentarlo todo en una sola lista... No se que puede ser el problema, pero asi parece que se soluciona, aunque es un tedio hacerlo de esa manera. Creo que tiene que ver con el microsoft visual studio, por alguna razon a veces carga y a veces no, como dijo IGOR, aparte de eso, las dobles barras... en fin... a ver si es un bug de unity o problema de visual studio mezclado con unity... jaja
  7. Bueno, es simple la pregunta (aclaro que uso Java de momento, estoy aprendiendo C# pero no quiero mezclar las cosas). ¿Un punto de mira como en los shooter, lo hago con un OnGUI o lo meto en un Update, Awake, Start (en principio una vez que esta puesto no hay que sacarlo ni nada por el estilo, simplemente se quede ahi en el centro de la pantalla). Gracias de antemano y perdon por ser tan molesto con algo tan simple.
  8. Jajaja. Digo, se hablaba de tener problemas de temblores (clipping creo que es), sobre por ejemplo, objetos hijos muy lejos del objeto padre. Por ende, en vez de hacer ambos objetos hijo-padre, donde el hijo reacciona al movimiento del padre, porque no implementar ambos por separado, luego un script en el "padre" que tome sus valores, luego hacer un script en el "hijo" que dependiendo del movimiento del "padre", segun un calculo, el "hijo" se mueva en consecuencia. Ejemplo: tengo un objeto que rota 1 grado, en el supuesto hijo, tomamos el valor de movimientos del padre, al rotar ese grado, en la distancia, significa que el supuesto hijo deberia mover su posicion, digamos, 100 metros, entonces mediante un calculo podemos decir en que lugar deberia estar el objeto, sin necesidad de dejar que unity haga dicho calculo por sus limitaciones en lo que se viene hablando de los float. No se, me parece interesante probarlo, aunque no conozco mucho para poder hacer la prueba. Y si, concuerdo con lo de "pre hecho"... pero... bueno a veces cuando todo lo que sabes lo aprendiste por tu cuenta, cuesta mucho ir a aprender de nuevo desde cero, por lo que a veces uno prefiere seguir de la manera vieja, y ahi es cuando las cosas no salen bien, por eso aunque sea para aprender que hace cada script y que hace cada linea viene bien, despues, la forma de implementarlo va por cuenta de cada uno.
  9. Y la parte de hacer scripts mellizos?, vamos, que estaba un poco mas abajo. Tomar valores de uno para calcular las posiciones del otro, asi evitas ese tipo de saltos. Nunca lo he intentado, de hecho he vuelto a unity hace muy poquito. La verdad me he encontrado con cosas muy interesantes, como por ejemplo, para juegos 2D hay MUCHO ya pre hecho, lo cual soluciona varias cosas, yyyyyyy se aprende si te pones a leer los codigos... Por cierto, algun tutorial de C# en unity para la version 5 por algun lado?, siempre use java, y nunca me puse a aprender C#, aparte, los que he encontrado, no me sirven, los de unity V3 no sirven... muy desactualizados...
  10. Otra consulta: Basandome en lo que dicen, y suponiendo que lo haya entendido (cosa que dudo), ¿No es mas facil en ese caso, cuando se esta alejado del centro, indicar que todos los objetos que se renderizan en la distancia desactiven todas sus funciones?, me explico, un script generico para cuando el player esta a mas de X distancia, todos los objetos "pierdan" las colisiones, sistemas de sombras, etc. y que pasada distancia directamente no se renderice nada de eso (si objetos, pero no sombras ni particulas, ni luces dinamicas ni nada), el objeto con su textura y punto. Desde la posicion de player no se notaria nada, y asi te ahorras tener una cantidad ingente de calculos al pedo, lo que tambien haria facil uno de los ejemplos que lei, sobre un cubo y un hijo y hacer uno a 1millon global y el otro a menos 1millon local hijo del otro... simplemente hace un script doble que los emparente, olvidate un hijo de un padre a esas distancias, sincroniza 2 scripts y ambos obtienen los mismos valores, si hablas de angulo podes tomar el angulo del "supuesto padre" y hacer la operacion matematica en el "hijo" para moverlo, obviamente es un calculo algo complejo, 1 grado en un punto, a la distancia puede ser movimientos de cientos de metros, pero con un script doble no seria problema, si un poco mas de laburo, pero te ahorras lo de mover el mundo entero (lo cual de momento es una idea tan nueva para mi que me asusta de pensarlo nomas)
  11. Graciela, ahora corrijo y quito todo lo que no sirva del medio =D
  12. Pregunta.... ¿Y si usas varios float para sacar de la ecuacion el problema de mover un mundo entero? ¿No se puede calcular las posiciones usando float adicionales?, es decir, concatenar float tras float en un string, y despues convertirlo en un float de nuevo, o mismo usar ese string como un numero, osea, asignar dicho string a la posicion para mantener la exactitud, aunque no se si lo permitiria el unity... no se... nunca lo intente y no soy tan conocedor como para intentarlo jaja
  13. Hola, que tal?, muy buenas. Hacia mucho que no venia por estos lares (años), pero ahora que me quede sin trabajo y que ando de novio, para hacer algo especial por nuestro aniversario, volvi a las andadas con unity. Primero, esto me costo entenderlo ya que desde la version 3 de unity que no lo usaba (por dios, cambiaron tantas cosas...). Pero vamos al lio. Aclaración: no soy experto, seguramente haya mas maneras de hacer esto mismo, y mas prolijo. Pero por ahora me doy por satisfecho. Bien, vamos con el primero codigo (explicacion en el mismo): #pragma strict //Declaro las variables (En este codigo solo hay 3 funciones, PLAY, STOP y SIGUIENTE-este ultimo es automatico al darle stop-) public var sereproduce : boolean; //Para reproducir var objeto : GameObject; //para un raycast, en este objeto se encuentra un plano que reproduce el video var daleplay : Video.VideoPlayer; //Plano, este lo asigno en esta variable mediante el inspector var clips : Video.VideoClip[]; //Array de todos los clips de video que se van a reproducir en el plano var clips2 : Video.VideoClip; //Segunda variable, Video no permite "slide", no se que es pero sin esta no funciona var siguiente : int; //Subindice para nuesto array de clips function Start () { sereproduce = false; clips = Resources.LoadAll.<Video.VideoClip>("Videos"); //Levanto toidos los videos que se encuentren en la carpeta "Assets/Resources/Videos" for(var i=; i < clips.length; i++){ print(clips[i].name); //Bastante simple, para saber que levantó y asignó a nuestro array todos los videos } siguiente = ; } function Update () { if(siguiente >= clips.length){ //Nuestro subindice para el array siguiente = ; } if (Input.GetButtonDown("Usar")) { var hit : RaycastHit; var ray = Camera.main.ScreenPointToRay(Input.mousePosition); } if (Physics.Raycast(ray,hit)) { if (hit.collider.name == objeto.name && sereproduce == false) { //Si golpea con un objeto con el mismo nombre que el objeto que asigne al gameobject Y si no se reproduce nada... clips2 = clips[siguiente]; //Aca asigno nuestro primer clip de video del array a nuestra segunda variable daleplay.clip = clips2; //Aca a nuesto VideoPlayer daleplay.Play(); //Comienza a reproducir print(daleplay.clip.name); //Por si las moscas, un poco de debug no viene mal sereproduce = true; } else if (hit.collider.name == objeto.name && sereproduce == true){ daleplay.Stop(); sereproduce = false; siguiente ++; } } } //Se puede hacer con isPlaying, cambiando la variable "sereproduce", pero me daba algunos problemas, tal vez por mi codigo, no soy experto, pero bueno, asi quedo andando. Bueno, no se asusten, el segundo es mas facil... Here we go again! #pragma strict //Creamos nuestras variables señores ///NOTA: esto esta muy bueno para adaptarlo a algun sistema de inventario de algun juego, aunque yo no llego a tanto var texturas : Texture2D[]; //Un hermoso array de texturas 2D var imagenes : GameObject; //Nuestro "plano-cubo-esfera" o lo que quieran, que vayan a asignarle texturas var ingresarespera : boolean; //Nuesto limitador a la hora de hacer los cambios de textura automaticos var subindice : int; //Como dice, subindice de nuestro array function Start () { texturas = Resources.LoadAll.<Texture2D>("Fotos"); //Mismo que el de arriba, tomamos el array, y le asignamos todo lo que se encuentre en la carpeta FOTOS, que sea del tipo TEXTURA 2D for(var i=; i < texturas.length; i++){ print(texturas[i].name); } ingresarespera = true; subindice = ; print(ingresarespera); print(subindice); } function Update () { if(ingresarespera == true){ ingresarespera = false; print(subindice); Espera(); } } function Espera(){ if(subindice < texturas.length){ imagenes.GetComponent.<Renderer>().material.mainTexture = texturas[subindice]; //obtenemos el componente para renderizar, con su material original, le asignamos la nueva textura subindice ++; yield WaitForSeconds (5); ingresarespera = true; //Lo ponemos a True, para el siguiente conteo =D } else{ //Si no es menor el subindice... osea, si el subindice es igual o mayor que el largo de nuestro array (siempre asi, sino el OutOfRange de los huevos) subindice = ; //Ponemos el subindice a cero para repetir todo de nuevo yield WaitForSeconds (5); ingresarespera = true; //Volvemos a repetir } } Tal vez a alguien le sirva, la guia y el manual de unity no dan a entender nada y fueron HORAS de intentar. En fin. Que esta bien y todo, pero si esto nisiquiera esta explicado en el scripting manual de unity, que te dice "es la funcion inherente a esta otra funcion" y vas en circulos todo el rato. Ya veo en 8bit de tanto darle vueltas... Suerte y hasta la proxima! =D EDIT: por un comentario de otro usuario cambie los comentarios del script, en todo caso, si asi esta mas entendible y "limpio" haganmelo saber.
  14. Buenas, hacia bastante que no entraba por aqui, de hecho hace ya 2 años que no me siento a utilizar unity (ha cambiado bastante he de decir y estoy reaprendiendo cosas que antes estaban en otros lugares y cosas nuevas que nunca habia visto), debido a que he conseguido trabajo y estoy cortisimo de tiempo. Al tajo: Hace poco hemos decidido con mi pareja casarnos, y en la fiesta queremos utilizar los celulares y tablets que tenemos (de mi epoca en la que programaba, 5 tablets y 3 celulares para probar lo que hacia). La cuestion es que buscando en la ayuda de unity he encontrado un comando llamado "WebCam", de mas esta decir que utilizo javascript, nunca me he puesto con C#. A estas alturas ya abrán adivinado, queremos utilizar las camaras de los dispositivos, aunque aun falta para el casorio (burdamente dicho, jaja), quiero ir armandolo para tenerlo todo listo. Obviamente las camaras deben poder sacar fotos y grabar, conectandolas a un servidor mediante wifi (mi laptop). El problema no es conectarlas, sino utilizar las camaras. Tambien (pese a mis esfuerzos) no he podido encontrar alguna manera de poder enviar a imprimir imagenes desde los dispositivos, aunque ya tienen instalado el servicio de impresion de epson para android, el cual funciona de maravilla, pero necesito controlarlo desde la app. Vale decir que no es un juego, y que deberia utilizar otro programa para esto, pero en unity se me hace la vida mas facil, al ya conocer ciertos aspectos que tendria que aprender desde cero en otro lenguaje o programa. Desde ya les agradezco cualquier ayuda. Salu2!
  15. Mmmm, podrias hacer algo como esto (no se en que programas pero yo lo hago en UnityScript (Javascript)): var movimiento : int; function Start () { movimiento = Random.Range(0,4); print(movimiento); } function Update(){ if (movimiento == 0){ transform.Translate(Vector3.forward * 5 * Time.deltaTime); } else if (movimiento == 1){ transform.Translate(Vector3.back * 5 * Time.deltaTime); } else if (movimiento == 2){ transform.Translate(Vector3.up * 5 * Time.deltaTime); } else if (movimiento == 3){ transform.Translate(Vector3.down * 5 * Time.deltaTime); } } En la funcion Start() tiro un random para dedicir hacia que lado se va a mover, y luego en el update pregunto que numero es, y lo muevo en dicha direccion, es algo muy simple. En el Start() fijate que puse un print, es para que en la consola se muestre el numero, asi se que tal numero, corresponde a tal movimiento dentro del scripts, ya despues es modificarlo para quitar los que no te sirvan. Es algo muy sencillo, asi que no esperes milagros de ese codigo. Un saludo. EDIT: fijate que el Random.Range esta entre 0 y 4, esto es porque al colocarlo asi, genera numeros enteros en vez de coma flotante, por lo que en numero enteros, deja el ultimo numero fuera, si queres randomizar entre 1 y 10, tendrias que poner Random.Range(1,11), ya que el primer numero es inclusivo, y el segundo exclusivo, osea, no lo va a tirar nunca. En el caso de que quieras con coma flotante, seria Random.Range(1.0,10.0), ya que en las variables Float (o coma flotante), es "inclusivo, inclusivo", lo que significa que si queres hacer un random entre 1 y 10 con coma flotante, seria lo que ya escribi antes. Ahora si. Un saludo!.
×
×
  • Create New...