ein einfaches Blinklicht in Unity3D erstellen

Unity3D Blinklicht 4-5 Unity3D Blinklicht 4-5 Unity3D Blinklicht 2-5 Unity3D Blinklicht 2-5 Unity3D Blinklicht 1-5

 

In diesem Beitrag zeige ich Ihnen wie man ein Blinklicht in Unity3D erstellen kann.

Praktisch ist das z.B. dann wenn man Lichtquellen für Blinker, Ampelschaltungen und dergleichen in seinem Projekt einsetzen will.
Damit man diese Lichtquellen mehrmals und so einfach wie möglich verwenden kann werde ich daraus ein Prefab erstellen.

Ich werde jetzt für dieses Beispiel kein neues Projekt erstellen da man dies ohne großen Aufwand direkt in sein vorhandenes Projekt einbauen kann.

Anlegen einer Lichtquelle

Fangen wir also damit an, eine Lichtquelle im Projekt zu platzieren, indem wir im Hauptmenü auf „GameObject -> Create Other -> Point Light“ klicken.
Im Inspektor können nun bereits die wichtigsten Einstellungen für das zukünftige Blinklicht vorgenommen werden indem man den auszuleuchtenden Bereich (range) und die Farbe (color) an seine Bedürfnisse anpasst.

 

Schreiben des Blink-Scripts

Die Lichtquelle haben wir, nun wollen wir diese Lichtquelle zum blinken bringen.
Dazu erzeugen wir wieder, falls noch nicht vorhanden, einen neuen Ordner im Projekt-Inspektor und geben diesem den Namen „scripts„.
Im Ordner scripts legen wir eine neue JS-Datei mit einem aussagekräftigen Namen wie, oh welch Wunder,  „blinklight“ an.
Klicken Sie nun doppelt auf diese JS-Datei um den voreingestellten Editor zu öffnen.
Nun brauchen wie einfach den vorhandenen Standardcode durch folgenden Code zu ersetzen bevor die Datei abspeichern.

#pragma strict

/*
  Ein Licht blinken lassen indem die Intensität hoch und runter gedreht wird.
  Dieses Script direkt einem Licht zuweisen
*/

var duration : float = 1.0f;

function Start () {

}

function Update() {
  var phi : float = Time.time / duration * 2 * Mathf.PI;
  var amplitude : float = Mathf.Cos( phi ) * 0.5 + 0.5;

  light.intensity = amplitude;
}

In die funktion Update() könnte man nun noch eine Abfrage einbauen wann genau das Licht blinken soll.

Hier mal ein Beispiel aus einem meiner Experimente, in dem geprüft wird wie oft der Player getroffen wurde. Wenn die Trefferzahl einen bestimmten Wert übersteigt dann soll das Licht, was ich in dem Fall dem Player zugewiesen habe, anfangen zu blinken. Vorher ist das Licht nicht zu sehen. Sozusagen ein Warnsystem dass den Player darüber informiert dass die Lebensenergie gleich aufgebraucht ist.

#pragma strict

/*
  Ein Licht blinken lassen indem die Intensität hoch und runter gedreht wird.
  Dieses Script direkt einem Licht zuweisen
*/

var duration : float = 1.0f;

function Start () {

}

function Update() {
  if((EnemyController.maxTreffer - EnemyController.Treffer) * 0.10 <= 1)
  {
    var phi : float = Time.time / duration * 2 * Mathf.PI;
    var amplitude : float = Mathf.Cos( phi ) * 0.5 + 0.5;

    light.intensity = amplitude;
  }
}

 

Zuordnen des Blink-Scripts zur Lichtquelle

Klicken Sie im Fenster „Hierarchy“ auf Ihre Lichtquelle um diese auszuwählen und ziehen Sie dann das Blink-Script aus dem Projekt-Fenster in das Inspectorfenster.

 

Arbeit erleichtern mit Prefabs

Dieser Punkt ist nicht so wichtig kann einem die Arbeit, gerade bei Einsatz vieler Blinklichter jedoch extrem erleichtern.

Klicken Sie im Objektinspektor mit der rechten Maustaste auf „Assets“ und erstellen Sie, falls noch nicht vorhanden, einen neuen Ordner mit dem Namen „prefabs“. Klicken Sie anschließend mit der rechten Maustaste auf den neu erstellten Ordner und legen Sie ein Prefab an. Geben Sie diesem einen aussagefähigen Namen. Ich habe ihn „blinklight“ genannt. Ziehen Sie nun die Lichtquelle aus dem Fenster Hierarchy auf das gerade erstellte prefab. Dieses sollte nun seine Farbe von grau zu blau ändern. Nun können Sie die Lichtquelle aus dem Fenster Hierarchy löschen und das Prefab „blinklight“ an die gewünschte Stelle im Szene-Fenster ziehen.

Je nach Anwendungsfall (Ampel, Warnleuchte, etc) können Sie nun im Inspektor noch die einzelnen Werte für Farbe, Blinkintervall, etc. anpassen.
An jeder Stelle in Ihrem Projekt, an der Sie nun ein blinkendes Licht benötigen, brauchen Sie jetzt nur noch das Prefab „blinklight“ ziehen und aus einer normalen Lichtquelle wird eine blinkende Lichtquelle.

 

BlinkLight – In Aktion

Hier mal ein kleines Beispiel bei dem ich für jedes Licht eine andere Farbe und einen anderen Blinkintervall eingestellt habe. Der blauen Lichtquelle oben links habe ich zudem noch ein LightFlare zugewiesen.


 

Ich hoffe Ihnen hat dieser Beitrag gefallen und Sie schauen bald mal wieder vorbei.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast. nefilim3006 ist auch bei Google+ vertreten

Kommentare geschlossen.