In diesem Tutorial zeige ich Ihnen, wie Sie einen einfachen Zufallsnamengenerator erstellen, mit dem Sie zufälligen NPCs eine Vielzahl einzigartiger Namen geben oder einem Spielernamen Vorschläge machen können, wenn Sie auf klicken Neuer Name Taste.
Das Basissystem ist ziemlich einfach und kann in nahezu jeder verfügbaren Programmiersprache und Umgebung installiert werden. Wir werden es in Unity aufbauen, was relativ einfach einzurichten ist. Wenn Sie den Code direkt auschecken möchten, können Sie die Projektdateien von GitHub herunterladen.
Bereit? Lasst uns anfangen.
Erstellen Sie eine neue JavaScript-Datei in Unity und rufen Sie sie auf nameGenerator
. Fügen Sie den folgenden Code ein:
var currentName: String = "Alex"; Funktion OnGUI () if (GUI.Button (Rect (10,10,100,50)), "Neuer Name")) CreateNewName (); GUI.Box (Rect (120,10,200,50), currentName); Funktion CreateNewName ()
Fügen Sie dieses Skript dann einem hinzu gameObject
in der Szene (das Einsetzen der Hauptkamera reicht aus).
Dadurch wird eine einfache Schnittstelle erstellt, die den Namen anzeigt, der erstellt wird. Wenn Sie es ausprobieren, macht der Button momentan nichts.
Um einen neuen Vornamen zu generieren, erstellen wir zuerst eine Liste von Silben, aus denen der Name zusammengestellt wird. Fügen Sie diesen Code hinzu:
var firstNameSyllables: Array; function Start () firstNameSyllables = neues Array (); firstNameSyllables.Push ("mon"); firstNameSyllables.Push ("fay"); firstNameSyllables.Push ("shi"); firstNameSyllables.Push ("zag"); firstNameSyllables.Push ("blarg"); firstNameSyllables.Push ("Ausschlag"); firstNameSyllables.Push ("izen");
Sie möchten noch mehr selbst hinzufügen; das ist bei weitem nicht genug!
Um tatsächlich einen Namen zu wählen, passen Sie das an CreateNewName ()
funktionieren so:
function CreateNewName () // Erzeugt einen Vornamen mit 2-3 Silben. var firstName: String = ""; var numberOfSyllablesInFirstName: int = Random.Range (2, 4); für (var i: int = 0; i < numberOfSyllablesInFirstName; i++) firstName += firstNameSyllables[Random.Range(0, firstNameSyllables.length)]; var firstNameLetter: String = ""; firstNameLetter = firstName.Substring(0,1); firstName = firstName.Remove(0,1); firstNameLetter = firstNameLetter.ToUpper(); firstName = firstNameLetter + firstName;
Dieser Code wird zwei oder drei Mal zufällig Silben aus der Liste auswählen und aneinander reihen. Dann wird der erste Buchstabe entfernt, großgeschrieben und wieder vor den Namen gesetzt.
Wenn Sie jetzt die Taste drücken, erhalten Sie einen zufällig zusammengestellten Namen aus der Liste! Sie können es in diesem Build ausprobieren:
Hier sind einige der generierten Namen:
Dieser Namensgenerator ist jedoch recht einfach. Multiplizieren Sie unsere Ergebnisse mit den Nachnamen.
Fügen wir eine neue Liste von Silben hinzu, die nur im Nachnamen verwendet werden. Der neue Code sieht folgendermaßen aus:
var lastNameSyllables: Array; function Start () lastNameSyllables = neues Array (); lastNameSyllables.Push ("malo"); lastNameSyllables.Push ("zak"); lastNameSyllables.Push ("abo"); lastNameSyllables.Push ("wonk");
Nach wie vor sollen Sie damit beginnen. Fügen Sie mehr Silben hinzu, um es abwechslungsreicher zu gestalten!
Als nächstes passen Sie das an CreateNewName ()
Funktion auf diese Weise:
function CreateNewName () // Erzeugt einen Vornamen mit 2-3 Silben. var firstName: String = ""; var numberOfSyllablesInFirstName: int = Random.Range (2, 4); für (var i: int = 0; i < numberOfSyllablesInFirstName; i++) firstName += firstNameSyllables[Random.Range(0, firstNameSyllables.length)]; var firstNameLetter: String = ""; firstNameLetter = firstName.Substring(0,1); firstName = firstName.Remove(0,1); firstNameLetter = firstNameLetter.ToUpper(); firstName = firstNameLetter + firstName; //Creates a last name with 1-2 syllables var lastName: String = ""; var numberOfSyllablesInLastName: int = Random.Range(1, 3); for (var j: int = 0; j < numberOfSyllablesInLastName; j++) lastName += lastNameSyllables[Random.Range(0, lastNameSyllables.length)]; var lastNameLetter: String = ""; lastNameLetter = lastName.Substring(0,1); lastName = lastName.Remove(0,1); lastNameLetter = lastNameLetter.ToUpper(); lastName = lastNameLetter + lastName; //assembles the newly-created name currentName = firstName + " " + lastName;
Anstatt nur einen Namen aus der Liste zu erhalten, erstellt der Generator einen Vornamen, setzt ein Leerzeichen und erstellt dann einen Nachnamen.
Sie können es in diesem Build hier ausprobieren:
Hier sind einige der generierten Namen:
Als letztes Detail fügen wir ein Suffix hinzu, das am Ende des Nachnamens erscheint. Fügen Sie diesen Code am Anfang von ein nameGenerator
Skript:
var nameSuffixes: Array; function Start () nameSuffixes = neues Array (); nameSuffixes.Push ("Sohn"); nameSuffixes.Push ("li"); nameSuffixes.Push ("ssen"); nameSuffixes.Push ("kor");
Fügen Sie als Nächstes Folgendes hinzu CreateNewName ()
, bevor der Name am Ende zusammengestellt wird:
// fügt dem Nachnamen ein Suffix hinzu mit einer Chance von 50% if (Random.Range (0,100) < 50) lastName += nameSuffixes[Random.Range(0, nameSuffixes.length)];
Nun besteht eine Chance von 50%, dass ein generierter Name ein typisches Namensende erhält.
In diesem Tutorial habe ich Ihnen den grundlegenden Code zum Erstellen eines Namensgenerators gezeigt. Sie können dies mit zusätzlichen Variablen und Funktionen erweitern. Versuchen Sie Folgendes hinzuzufügen:
Sie können diese Idee auch für andere Zwecke verwenden: Geben Sie den Raumschiffen zufällige Namen oder erstellen Sie zufällige Artikelbeschreibungen. Dreh durch!