Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Objetos de inventario por zonas

Iniciado por rabinali, Octubre 18, 2015, 09:01:56 PM

Tema anterior - Siguiente tema
Buenas para mi proyecto necesito saber si se pueden poner objetos que aparezcan en diferentes posiciones por una zona a establecer o por coliders/triggers o de alguna otra forma, o seria mejor poner muchos spawpoints a los puntos donde podrian aparecer, no se si conoceis algun tutorial sobre esto, seian objetos que se les pudiera poner un tiempo determinado para que aparezcan dependiendo del valor del item... ¿algun alma caritativa no tiene nada que hacer estos dias y quiere hacer un bien social...en forma de scrips, o colaborar, orientar, etc?.

Yo creo que son cosas distintas. Por spawPoints serían aquellos no dependientes del player que realizaran spawn cada cierto tiempo y los colliders por donde pasara éste.La primera sería un update/coroutine y la segunda pues un OnCollider/OnTrigger dependiendo de lo que necesites.El tutorial del Survival Shooter utiliza spawnPoints:https://unity3d.com/es/learn/tutorials/projects/survival-shooter/more-enemies" rel="external nofollow">https://unity3d.com/es/learn/tutorials/projects/survival-shooter/more-enemies 

Si es que no son enemigos, serian items por eso lo decia,no se funcionaban para los objetos tambien o solo para los jugadores/enemigos

Es lo mismo. El fondo es lo que importa.

Esto busca esos puntos de 0 a todos los numeros de spawn no?
// Find a random index between zero and one less than the number of spawn points.
        int spawnPointIndex = Random.Range (0, spawnPoints.Length);

pero esos puntos los tendria que diseminar por el espacio en cuestion? y el script elige uno de esos puntos entre el 0 y la mayor cantidad de ellos y el iten iria alli? los puntos esos de spawn consumen recursos de algun tipo a sistema? puedes poner un punto de esos por X partes del terreno?

No, genera un numero aleatorio entre un valor minimo y maximo (en tu caso cantidad de puntos), lo cual deberias utilizarlo como "index" en un arreglo/lista que contendrá tus puntos(EmpyObjects) y obtener su posicion(transform) y utilizarlo para instanciar tu inventario.
En cuanto a instanciar un item por su valor, crea un script para añadir a tus "puntos" que contendran su prioridad en cual dependiendo la posicion a tu opinion le das un valor y con ese valor instancias diferentes items de diferentes rangos. No se si entenderas.

Ademas los EmpyObjects no te dan problemas de rendimiento porque no se renderizan y solo contiene el componente Transform, que alguien me corrija si me equivoco.

Si entiendo lo que mas o menos dices, ahora como hacerlo eso ya es otra cosa..he mirado el tutorial ese y es mas como un multiplayer para meter enemigos a diferentes velocidades y lugares, pero creo que no esta a mi nivel de programacion cambiar el script de arriba abajo como creo entenderte 
Instantiate (enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
spwnPoinawtIndex esto lo tendria que quitar te refieres? y enemy por items y el transfor por el rotation?

No, asi esta bien utilizando tu ultimo codigo, solo que no aclararaste tal.
Ademas deberias implementar la no repeticion.

Etiquetas: