Spawn aléatoire objet de jeu?
Mon problème est que je veux que mon obstacle géniteur, qui est à une distance fixe devant le joueur du vaisseau spatial, de sélectionner au hasard à partir d'un ensemble de différentes obstacle préfabriqués à chaque fois qu'il instancie un obstacle. J'ai trouvé beaucoup de discussions sur la façon de rendre aléatoire la position, mais ce n'est pas ce que je cherche. J'ai vu beaucoup de références à des listes et des étiquettes, mais je n'arrive pas à comprendre comment les mettre en œuvre correctement. Je vais poster mon géniteur script ci-dessous avec les commentaires où je "pense" les changements sont censés être faits.
using UnityEngine;
using System.Collections;
public class RandomSpawner : MonoBehaviour
{
public GameObject[] spawnObject; //somehow change this to incorporate multiple gameobject prefabs, will an array support that?
//Would I create public variables for each prefab I want to be randomly chosen from, or would those be contained in the array above?
public float xRange = 1.0f;
public float yRange = 1.0f;
public float minSpawnTime = 1.0f;
public float maxSpawnTime = 10.0f;
void Start()
{
Invoke("SpawnWall", Random.Range(minSpawnTime,maxSpawnTime));
}
void SpawnWall()
{
float xOffset = Random.Range(-xRange, xRange);
float yOffset = Random.Range(-yRange, yRange);
int spawnObjectIndex = Random.Range(0,spawnObject.Length);
//above line will have to change to reflect whatever goes above Start, possibly below as well
Vous y êtes presque. Jetez un oeil à docs.unity3d.com/Documentation/ScriptReference/... pour le frai.
OriginalL'auteur prismspecs | 2013-12-01
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez l'air bien jusqu'à présent. Avoir un tableau public attaché à votre monobehaviour vous permettra de glisser préfabriqués de l'inspecteur que vous pouvez utiliser pour frayer
Dans votre méthode 'SpawnWall()' vous suffit de sélectionner un préfabriqué à partir de votre tableau de
Alors vous devez utiliser
Et faire quelle que soit la position de code que vous souhaitez grâce à sa transformation
Je recommande de renommer votre tableau à quelque chose comme "obstaclePrefabs" comme "spawnObject" n'a pas vraiment décrire une liste des obstacles à frayer.
OriginalL'auteur user819640
Une autre méthode de chargement GameObjects pendant le temps d'exécution est de placer les éléments dans un dossier nommé "Ressources", puis en utilisant l'appel ci-dessous:
si l'élément est à l'intérieur d'un dossier dans le dossier de Ressources, alors il vous suffit d'appeler:
Toutefois être conscients que l'utilisation de cette méthode, il y aura un léger retard dans l'élément de frai alors qu'il est chargé dans le jeu.
OriginalL'auteur Steven Mills
Utiliser un générateur de nombres aléatoires. Attribuez à chaque obstacle une "affaire", et dans chaque cas, lui dire quoi faire. Dans mon script j'ai besoin d'une variété de plates-formes apparaissent au hasard, mais à un intervalle défini.
à l'aide de UnityEngine;
public class Générer : MonoBehaviour
{
public GameObject prefab1;
OriginalL'auteur Marina Markous