2016-05-03 1 views
0

Salut, je fais un jeu de tir multijoueur dans l'unité et im en utilisant des tableaux et ont besoin d'aideComment faire pour configurer des tableaux dans d'autres scripts

Ma situation est que je veux faire un système unboxing qui choisit un réseau aléatoire, puis réglez-le la liste de la liste de tableau de classes aide svp. Se il vous plaît dites-moi si cela choisirait un tableau aléatoire: Classes [aléatoire]; et aussi je besoin de savoir comment définir un tableau à partir d'un autre script

using UnityEngine; 
using System.Collections; 

public class SpawnNew : MonoBehaviour 
{ 
    public GameObject[] Classes; 
    public GameObject player; 
    public Transform[] spawnPoints; 
    public Camera spawnCam; 
    public AudioListener spawnListener; 
    public bool spawned = false; 


    void ClassList(){ 

     Classes = new GameObject[10]; 
    } 

    void OnGUI() 
    { 
     if (Network.isServer || Network.isClient) 
     { 
      if (!spawned) 
      { 
       if (GUI.Button(new Rect(Screen.width/10 - 50, Screen.height/10 - 25, 100, 50), "Spawn")) 
       { 
        SpawnPlayer(); 
       } 
      } 
     } 
    } 

    void SpawnPlayer() 
    { 
     spawned = true; 
     int random = Random.Range(0, spawnPoints.Length); 
     Network.Instantiate(player, spawnPoints[random].position, spawnPoints[random].rotation, 0); 
     spawned = true; 
     spawnCam.enabled = false; 
     spawnListener.enabled = false; 
     spawned = true; 
    } 

    public void Die() 
    { 
     Screen.lockCursor = false; 
     spawned = false; 
     spawnCam.enabled = true; 
     spawnListener.enabled = true; 
    } 
} 
+0

désolé je ne comprenais pas ce que vous voulez –

+0

vous utilisez rarement/jamais des tableaux dans l'unité pour une raison quelconque. Utilisez la liste <> – Fattie

Répondre

0

tout d'abord votre tableau n'est pas initialisé. Vous devez vous assurer que le tableau est rempli avant d'appeler la méthode SpawnPlayer, sinon cela se fera via une exception NullReferenceException.
Oui, ce int random = Random.Range(0, yourArray.Length); vous donnerait un index aléatoire dans votre tableau. Vous pouvez accéder à votre tableau/méthode à partir d'un autre script comme celui-ci

GameObject yourObject = GameObject.Find("GameObjectNameThatHasYourScriptAttachedToIt"); 
if(yourObject !=null){ 
    yourObject.GetComponent<SpawnNew>().Classes = someOtherArray; 
    // or if you want to access the method 
    // yourObject.GetComponent<SpawnNew>().SpawnPlayer(); 
} 
+1

mb il les a initialisés dans l'éditeur – LumbusterTick

+0

c'est possible, mais ça ne fait jamais mal de s'assurer qu'il est bien réglé :) –

+0

Je ne comprends pas pourquoi le down-vote ... y a t-il quelque chose de mal à ça Solution? –