verbessertes script zum umschalten der Kamera

Vor wenigen Tagen habe ich ein Tutorial veröffentlicht in dem es um das umschalten und zoomen von Kameras ging. Nachteil bei diesem Script war, dass die Anzahl der Kameras fest vorgegeben war. Wollte man nur zwei anstatt der drei angegebenen Kameras verwenden gab es einen Fehler und man musste das Script umschreiben.

Ich habe dieses Script nochmals grundlegend überarbeitet und optimiert. Jetzt ist es möglich die Anzahl der Kameras im Inspector selber anzugeben. Wenn man also nur eine oder gar keine Kamera angibt dann gibt es auch keinen Fehler weil das Script dann einfach nichts zu tun hat.

Script „CameraToggle.js“

#pragma strict

/***************************************************************************************
  Script zum umschalten zwischen beliebig vielen Kameras                               *
  Dieses Script am besten dem Charakter zuweisen,                                      *
  Hinter "camera List" die Menge der Kameras angeben                                   *
  Alle Kameras die mit dem Script gesteuert werden sollen, aus dem Hierarchy-Fenster   *
  in den Inspector ziehen                                                              *
  Bei "default Camera" die Kamera auswählen die beim Spielstart aktiviert sein soll.   *
***************************************************************************************/

var cameraList   : Camera[];
var defaultCamera : Camera;
private var i : int = 0;

function Start()
{
  if(cameraList && cameraList.Length > 0)
  {
    for (var y = 0; y < cameraList.Length; ++y)
    {
      if(defaultCamera == cameraList[y])
      {
        cameraList[y].enabled = true;
      }
      else
      {
         cameraList[y].enabled = false;
      }
    }
  }
} 

function Update ()
{
  if(cameraList && cameraList.Length > 1) SwitchCamera();
}

function SwitchCamera()
{
  if(Input.GetKeyUp("c"))
  {
    if(i < cameraList.Length - 1) ++i; else i = 0;
    defaultCamera = cameraList[i];
    for (var x = 0; x < cameraList.Length; ++x)
    {
      if(defaultCamera == cameraList[x])
      {
        cameraList[x].enabled = true;
      }
      else
      {
        cameraList[x].enabled = false;
      }
    }
  }
}

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.