2017-07-27 2 views
0

Ich habe versucht, meine eigene Klasse mit C# in Unity zu erstellen, aber ich bin auf ein kleines Problem gestoßen. Innerhalb meiner PlayerClass Konstrukt Ich möchte eine Zeichenfolge sechs Zufallszahlen mit Random.Range (0, 9) als Referenznummer verwenden. Derzeit bin mit der Zeile Code ich, dies zu tun, sieht wie folgt aus:Unity - Kann keine Zufallszahl innerhalb eines Klassenkonstrukts erzeugen

refNum = Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9) + Random.Range (0, 9); 

ich geschaffen habe, die Variable RefNum außerhalb des Konstrukts an der Spitze der Klasse. Jedes Mal, wenn ich mein Spiel starte, bekomme ich eine Fehlermeldung, dass ich keine Zufallszahlen innerhalb eines Klassenkonstrukts erzeugen kann. Kennt jemand einen Weg um dies?

Vielen Dank,

Tommy

+0

Nicht wirklich eine Lösung, aber sind Sie nur 6 Summieren zufällige Zahlen? Als Ergebnis haben Sie eine max. 2-stellige Nummer. Siehe https://Stackoverflow.com/a/36104497/384674 auch ;-) – Betlista

+0

Ist das ein Monobehavior an ein Objekt angehängt? Wenn dies der Fall ist, verwenden Sie stattdessen 'Start()' oder 'Awake()'. – Draco18s

+0

@ Betlista sechs Würfel gerollt und summiert haben keine einheitliche Verteilung. Dies kann für den Fragesteller wichtig sein. – Draco18s

Antwort

1

Um einen String mit sechs zufälligen Ziffern (0-9) Sie zuerst sicher sein müssen, von denen Random Klasse, die Sie (die eine von UnityEngine oder von System verwenden möchten). Wenn Sie die eine von UnityEngine verwenden, sollten Sie etwas tun:

string randomString = Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString() + Random.Range(0, 9).ToString(); 

Oder vielleicht ein eleganter Weg, es zu tun:

string randomString = ""; 
    for (int i = 0; i < 6; i++) 
     randomString += Random.Range(0, 9).ToString(); 
+0

Ich habe eine separate Funktion in meiner PlayerClass erstellt, die Ihre zweite Möglichkeit zum Generieren einer Zufallszahl enthält. Es funktioniert, aber ich kann es nicht über meinen Konstruktor aufrufen. Gibt es trotzdem, dass ich diese Funktion jedes Mal aufrufen kann, wenn ich eine neue Variable vom Typ PlayerClass aus einem anderen Skript erstelle? –

+0

Ich habe das, was Sie beschrieben haben, ohne Fehler reproduziert. Hast du sichergestellt, dass du in der Datei, in der du deine 'PlayerClass' schreibst,' 'UnityEngine;' 'deklarierst? – Lui

+0

Ja, ich verwende definitiv UnityEngine –

Verwandte Themen