Noticias

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

spawn script

Iniciado por chirilino, Noviembre 02, 2015, 11:20:01 PM

Tema anterior - Siguiente tema
Noviembre 02, 2015, 11:20:01 PM Ultima modificación: Enero 01, 1970, 01:00:00 AM por chirilino
Hola,Tengo un  problema, estoy intentando crear un script que cada vez que suba mi personaje con la camara, me vaya generando un prefab aleatoriamente y que se genere cada cierta distancia, no tiempoAlgo como en la imagen:He puesto este script:using UnityEngine;
using System.Collections;public class SpawnerScript : MonoBehaviour {    public GameObject[] itemsToSpawn;    // Use this for initialization
    void Start () {
        Spawn();    }    // Update is called once per frame
    void Update() {
    }
    
    void Spawn()
    {
        Instantiate(itemsToSpawn[ Random.Range(0, itemsToSpawn.Length)],
            new Vector3(Random.Range(0, 0), this.transform.position.y),
            Quaternion.identity );
    }
} Pero no me genera, se queda paradoQue puedo hacer?Saludos y gracias 

Principalmente el método Spawn es llamado únicamente una vez, deberías usar Time.deltaTime o Iteradores.
Luego si quieres instanciar cada x unidades de distancia con un Random.Range(0,0) siempre te va a dar 0, en este caso almacena la ultima posición generada y la incrementas para que no se superponga con la anterior. Y ademas utiliza Vector2.

Según el código, debería ejecutarse una sola vez al Start() y luego si lo llamas con Spawn. El Vector3 del Instantiate es un poco raro, ya que siempre se posicionará en x = 0, position.del objeto spawn. Supongo que tu altura debería ser la y, así que el random.range debería ir en la y. Además, recuerda que no sumas ni restas la posición.y del jugador, por tanto, si no está en el mismo gameobject el spawn, no se posicionará a cierta distancia de éste.

Noviembre 03, 2015, 12:06:04 AM #3 Ultima modificación: Enero 01, 1970, 01:00:00 AM por chirilino
Hola,gracias por contestar la verdad es que soy muy novato y aun me cuesta muchoentonces como tendria que quedar el script? Saludos

Etiquetas: