"Itemspawnsystem"

Saturday, January 18, 2014

"Itemspawnsystem"

Wie kommen die Items eigentlich ins Spiel?


Dazu habe ich mir ein eigenes Spawnsystem einfallen lassen, welches den zuvor Item-Variablen, wie z.B. bombeMe aus den vorherhigen Posts, die Werte wahr oder falsch gibt.
Für dieses System erstellte ich mehrere Punkte / leere GameObjects mit einem großen Trigger in meinem Level, in welchen Items erscheinen können. Dort erscheinen sie jedoch nur, wenn der Spieler sich nicht in diesem Trigger befindet:

// Item 01
if(noCharInItem.charInItem01==false)
{
    if(charScreenManager.enemyIn==false)
    {
         if(spawnPositionBesetzt01==false)
  {   
      if(networkView.isMine)
      {
   networkView.RPC("setRandomTime",
                 uLink.RPCMode.Server); 
   StartCoroutine(waitingForSec01()); 
   spawnPositionBesetzt01=true; 
      }  
  }        
  if(waiting01==false)
  {
      if(networkView.isMine)
      {
   networkView.RPC("setRandomValue",
                 uLink.RPCMode.Server); 
   itemSpawn();
   itemPosition01 = uLink.Network.Instantiate(
                 itemToSpawn,spawnPointItem01.transform.position, 
                 transform.rotation,0); 
   waiting01=true;
             }
  }
    }
}
Erklärung:
Das Spawnsystem läuft nur auf Client 1 aufgrund der Abfrage if(charScreenManager.enemyIn==false), da sonst mehrere Items auf einer Position gespawnt werden würden. 
Nachdem sicher gestellt wurde, dass das Item gespawnt werden kann,wird eine zufällige Zahl auf dem Server erstellt, die festlegt nach wie vielen Sekunden das Item erscheinen wird. 
In der Funktion waitingForSec01(); wird dann gewartet und später die Variable waiting01 auf true gesetzt. Somit kann die nächste Abfrage durchgeführt werden, welche einen zufälligen Wert erstellt, welcher das zufällige Item bestimmt. Nun kann endlich das Item auf itemPosition01 instanziiert werden.


No comments:

Post a Comment