Jump to content

Igor

Registrados
  • Content Count

    833
  • Joined

  • Last visited

  • Days Won

    63

Everything posted by Igor

  1. habria que saber mas... habria que saber que cambios quieres hacer, habria que ver los scripts... y el proyecto entero casi
  2. hola a mi la xp-pen artist esa me parece buena, y esta bien de precio. acaban de dejarme una wacom cintiq 13hd para probarla... la verdad que dibujando soy muy malo, pero es mucho mejor dibujar en una tableta que usar el raton... aunque hace tiempo me dejaron un ipad, y ahi se dibujaba tambien muy bien... y tenia la ventaja de que no requiere conectarlo a un PC, por lo que podias dibujar en el sofa, en la cama, o en cualquier lado... el inconveniente del ipad es que es mas pequeño y es mas caro. por lo demas la experiencia de dibujar me parece buena tanto en ipad como en tableta "cintiq" o similar
  3. primero deverias buscar el problema. por que tiene bajo rendimiento? - es por culpa de los scripts? trata de simplificar cosas, igual alguna cosa se puede hacer en coroutines a la largo de varios frames en vez? almacena variables que vallas a utilizar varias veces en vez de buscarlas, calcularlas, o cogerlas con getComponent.... y hay muchas mas formas de "optimizar" el codigo... - es por culpa de los graficos? reduce el tamaño de algunas texturas (en movil es mejor que ninguna supere los 512*512). optimiza los mesh (si los hay) siempre se puede borrar poligonos que no se ven, porejemplo los que dan cara al suelo... utiliza shaders mas simples que le cueste menos de calcular.... y, igual que con los scripts, hay mas formas de optimizar los graficos... - ...o puedes ser cosa de las physics, del garbage collector... o incluso de la version de unity que utilices (en algunas los builds para movil tienen mejor rendimiento que en otras) como dice @iRobb es una pregunta muy compleja, habria que tener acceso al proyecto entero y tirarte mucho rato para ver como optimizarlo bien...
  4. hola existe la funcion Resources.Load tienes que crear una carpeta dentro de assets que se llame "Resources" y meter las cosas ahi... (puedes hacer carpetas dentro de esa carpeta para tener las cosas ordenadas) si es solo texto lo que quieres cargar te recomiendo que lo hagas en un "xml" y leas el texto desde el. ...de todas formas poner 300 prefabs en el inspector si se puede hacer. puede poner un array de gameObjects (public GameObject[] prefabs;) y poner ahi todos los que quieras.
  5. en este foro obedecemos las leyes de la termodinamica!!!
  6. Igor

    ANSWERED muros

    yo tampoco entiendo muy bien lo que quieres
  7. hola classified. un material se ve asi en unity cuando el shader tiene algun error o no funciona, ...o cuando se pierde la relacion shader-material. revisa los materiales y vuelve a asignarles el shader correcto... y quizas tambien la textura.
  8. los sistemas de particulas tienen muchas variables diferentes y si simplemente añades el componente luego tendria que ajustar via script todas la variables para que las particulas sean como deseas... creo que es mejor que crees un Prefab.... creas un sistema de particulas, lo ajustas como quieres que sea, y creas un prefab (arrastras el objeto a donde los assets) luego en el script cuando quieras crearlo lo instancias (Instantiate(objeto, posicion, rotacion))
  9. dependera de como quieras que sea el escenario (la imagen) si va ha haber cosas repetidas (arboles, rocas, cachos de camino, secciones con hierva, o secciones de tierra... repetidas) pues sera mejor que sean "mosaicos"... en cambio si todo va a ser diferente y no va a haber nada repetido y todo a a ser diferente, o va a haber muy pocas cosas repetidas en esa imagen de 4000*4000 pues adelante, entonces esta bien.... aunque en ese caso tambien podrias "partirla" en 16 (4*4) imagenes de 1000*1000 y seria mucho mas optimo que una sola imagen de 4000*4000 otra cosa: es mejor que los tamaños sean exponencial de 2... (2, 4, 8, 16, 32, 64, 128, 256...) ..es decir, imagenes de 512*512, 1024*1024, 2048*2048, etc
  10. puedes numerar las partes del cero (base) al siete (cabeza) luego hacer un movimiento que se base en el seno y el coseno de un angulo que valla aumentando todo el rato (dando vueltas) multiplicas ese seno cantidad fija y le coseno por otra... y ambos los multiplicas por el numero de objeto (la base como es el cero no se movera, la siguiente, el uno, se movera un poco mas... y la cabeza, el siete, se movera la que mas) usas el resultado para posicionar las partes.... puedes hacer un "Lerp" entre la posicion vieja y la nueva para que quede mas suave.... si el player esta mas cerca de cierta distancia de la planta puedes hacer que entre en funcionamiento otra animacion parecida (con seno y coseno pero mas rapida y con mas movimiento en el eje X... osea: hacer como que se lance hacia el player).... puedes hacer que si el player esta a un lado o al otro se invierta la animacion y la orientacion de los sprites para que la planta mire hacia el lado en el que esta el player
  11. dependera de como quieres que se mueva. si quieres que simplemente unos segmentos sigan a los anteriores puedes hacer un array guardando la posicion del primer segmento (la cabeza), un array grande, en el que cada frame pasas los valores de un elemento al siguiente, recorriendo el array en sentido inverso. si tenes 10 segmentos contando la cabeza, porejemplo haciendo un segmento cada 12 elementos del array.... aunque xreo quebtendria que seras elementos.... porque cada elemento contaria por un frame... seria algo asi: for (int i=119; i>0; i--) { segmentPos[i] = segmentPos[i-1];//pasar valores } segmentPos[O] = segmento[O].position;//coger posicion de la cabeza segmento[1].position = segmentPos[12];//poner segmentos en posicion segmento[2].position = segmentPos[24]; segmento[3].position = segmentPos[36]; //y sigues asi..... ...pero hay mas maneras de hacerlo... ademas si la cabeza se queda parada todos los segmentos se amontonaran ahi... osea que tendrias que "parar" tambien la recolocacion de los segmentos... y hay mas cosas en tener en cuenta... porejemplo si quieres que la cabeza se mueva mas rapido en unos momentos y mas despacio en otros tendrias que hacerlo diferente... porque sino cuando se mueve despacio se amontonaran y cuando se mueva rapido se separaran demasiado... ....luego tbien tendras que hacer que los segmentos se "orienten" bien (miren hacia el segmento anterior). pero eso ya es mas facil
  12. si quieres que se mueva 7 unidades al segundo seria asi: float speed = 7; transform.position += direccionDeMovimiento * speed * Time.deltaTime; y asi se movera 7 unidades cada segundo hacia la direccion indicada recuerda que "direccionDeMovimiento" tiene que estar normalizado (medir 1) para eso puede hacer direccionDeMovimiento.Normalize();
  13. no se si te servira bien. la verdad no suelo usar mucho el rigidbody. tambien puedes hacer el movimiento "manualmente", con el transform, y dejar el rigidbody para las fuerzas externas, expllsiones, colisiones, etc..
  14. hola puedes probar algo asi Vector3 moveForce = (transform.forward * Input.GetAxisRaw("Vertical")) + (transform.right * Input.GetAxisRaw("Horizontal")); rb.AddForce(moveForce - rb.Velocity); asi si tu mueves con fuerza 10 hacia la derecha pero la velocity ya es 10 hacia la derecha, al restarse se anulan y estas añadiendo fuerza 0 hacia la derecha. igual tienes que multiplicar "moveForce" por algun valor para que la velocidad sea la que quieres porque igual se mueve muy despacio, o muy rapido. quizas la aceleracion quede muy suave... puedes hacelo con un valor Exponencial de velocity para que sea mas "fuerte" Vector3 moveForce = (transform.forward * Input.GetAxisRaw("Vertical")) + (transform.right * Input.GetAxisRaw("Horizontal")); Vector3 veloci = rb.velocity.normalized; veloci = new Vector3(veloci.x*veloci.x, veloci.y*veloci.y, veloci.z*veloci.z) * rb.velocity.magnitude; rb.AddForce(moveForce - veloci); ... claro que esto tambien frenaria tu fuerza de la explosion... entonces, en vez de lo que te he puesto, simplemente tendrias que comprobar si tu velocity es mas larga (magnitude) que tu "moveForce" y en ese caso NO añadir tu moveForce
  15. estas cambiando directamente la velocity del rigidBody, osea que si una fuerza afecta al rigidBody y cbia su velocity.... tu luego haces que el rigidBody la ignore porque sobreescribes su velocity. en vez de sobreescribir la velocity deverias usar AdForce que te valdria tanto como para moverlo como para añadirle la fuerza de una explosion. adForce modifica "internamente" la velocity de RB
  16. Igor

    switch error

    hola, en el "switch" deberias incluir un caso "default" por si el numero que compruebas de "currentHealth" no esta especificado en los casos.... switch (currentHealth) { case 1: //haces algo break; case 2: //haces otra cosa break; default: //haces otra cosa diferente break; } asi evitaras errores el codigo del "default" se ejecutara cuando el valor de "currentHealth" no aparezca especificado en los "case" te recomiendo que siempre incluyas un default en los "switch" si quieres lo puedes dejar vacio switch (numero) { case 1: //algo break; case 2: //algo break; default: break; }
  17. es mu facil... porejemplo si tu array se llama "miArray" y es un array de variables "string" y quieres eliminar una... y el numero del elemento que quieres eliminar esta en una variable "int" que se llama "elementoQueQuieroEliminar"... seria asi: string[] nuevoArray = new string[miArray.Length-1]; //crear un array nuevo con un hueco menos que el original for (int i=0; i<miArray.Length; i++) { //crear un bucle que recorre todos los elementos del array if (i < elementoQueQuieroEliminar) { nuevoArray[i] = miArray[i]; //si el numero es menor pongo el mismo elemento } if (i > elementoQueQuieroEliminar) { nuevoArray[i-1] = miArray[i]; //si es mayor pongo el elemento del original en una posicion menos } // y si es el mismo numero (el que quieres eliminar) pues no lo pongo // y asi ya esta. } miArray = nuevoArray; //asigno el nuevo array en mi array
  18. Igor

    [GAME] StarCrash

    gracias. poco a poco lo voy mejorando. de momento es para PC. practicamente me falta solo hacer las "cinematicas", que van a ser tipo comic, imagenes estaticas con texto.... pero va a haber varias secuencias, casi una antes de cada pantalla, donde se explicaran con flashBacks fragmentos de la vida del protagonista, explicando como llego a la situacion en la que se encuentra
  19. Igor

    [GAME] StarCrash

    hola a todos. acabo de subir un nuevo trailer a Youtube
  20. puedes crear un nuevo array sin esa posicion y reemplazar el anterior. puedes usar una "List" en vez de un array.
  21. vector3.Lerp lo usarias para eulerAngles, pero te va a dar problemas... porejemplo si el objeto esta en -10 grados (350 grados) va a dar toda la vuelta por el otro lado, recorriendo 350 grados en vez de ir por el lado corto rexorriendo 10 grados. tambien te dara problemas si el angulo Z es diferente de 0.... mejor usa Quaternion.Lerp. Quaternion rotActual = transform.rotation; transform.eulerAngles = new Vector3(0,0,0);//rotacion deseada transform.rotation = Quaternion.Lerp(rotActual, transform.rotation, 0.1f); //0.1f seria la "velocidad" a la que va hacia la rotacion deseada
  22. 1 millon de poligonos? te sobran 999.990 poligonos como dice @zelleGames seria mucho mejor usar un plano (dos lados, cuatro triangulos) con una textura. y para las maderas usar un cubo (6 lados, 12 triangulos)
  23. tambien puedes invokar una funcion con retraso Invoke("miFuncion", retrasoEnSegundos)
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...