Schnelltipp So codieren Sie einen einfachen Zeichennamengenerator

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.


Richten Sie die Schnittstelle ein

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.


Erstellen Sie den Vornamen

Fügen Sie einige Silben hinzu

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!

Setze den Vornamen zusammen

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:

  • Zagmonshi
  • Izenzag
  • Shifay
  • Rashblarg

Dieser Namensgenerator ist jedoch recht einfach. Multiplizieren Sie unsere Ergebnisse mit den Nachnamen.


Erstellen Sie den Nachnamen

Fügen Sie einige Silben hinzu

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!

Alles zusammenfügen

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:

  • Blargshiizen Maloabokor
  • Zagblarg Maloson
  • Rashzag Wonkli
  • Shifay Abomalo

Fügen Sie am Ende des Namens ein Suffix hinzu

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.


Fazit

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:

  • Mittlere Namen
  • Weitere Namenssuffixe (III, OBE usw.)
  • Präfixe (Sir, Lady, Count und dergleichen)
  • Andere Ergänzungen ("Glagnarr der Zerstörer")

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!


Verweise

  • Bildnachweis: Identifikation von Rémy Médard aus dem Noun-Projekt