Jump to content
Unity Insider Forum

Photon Third Person Problem


ffghts

Recommended Posts

Hey Leute, ich bin Felix und neu hier im Forum und in der grossen Unity Welt :D . Ich beschaeftige mich nun seit ein paar Wochen mit Unity und bisher hat alles gut geklappt.

Ich bin nun seit einigen Tagen dabei ein kleines Spiel mit der Photon Cloud zu erstellen. Da ich die Steuerung mit einer Third Person Camera realisieren wollte, habe ich mich durch das 3D Buzz tutorial gearbeitet und ein Third Person Controller, Camera und Motor erstellt. Das funktioniert auch alles prima. Auch das Spawnen auf meinen erstellten Spawnpunkten funktioniert. Mein Problem ist nun nur, dass wenn ich mit einem zweiten Spieler Spawne, dass die Camera vom ersten Spieler verschwindet und auf den zweiten Spieler uebergeht. Nur Steuer ich weiterhin den ersten Spieler. Darum habe ich versucht den Camera Code auf die Photon Cloud anzupassen.

 

 

Das ist mein Third Person Controller, den ich in meinem PlayerPrefab habe.

void Awake ()
{
  if (GetComponent<PhotonView>().isMine == true)
  {
Transform targetLookAtTransform = transform.FindChild ("targetLookAt");
characterController = GetComponent ("CharacterController") as CharacterController;
Instance = this;
TP_Camera.UseExistingOrCreateNewMainCamera (targetLookAtTransform);
  }
  else
enabled = false;
}		

 

 

Das ist meine Third Person Camera, die auf meiner MainCamera ist.

public static void UseExistingOrCreateNewMainCamera(Transform targetLookAtTransform)
{
 GameObject tempCamera;
 TP_Camera myCamera;

 if(Camera.main != null)
 {
 tempCamera = Camera.main.gameObject;
 }
 else
 {
 tempCamera = new GameObject("Main Camera");
 tempCamera.AddComponent <Camera>();
 tempCamera.tag = "MainCamera";
 }

 tempCamera.AddComponent<TP_Camera>();
 myCamera = tempCamera.GetComponent ("TP_Camera") as TP_Camera;
 myCamera.TargetLookAt = targetLookAtTransform;
}

 

Nur leider funktioniert es trotzdem nicht. Und Google konnte mir leider auch nicht zu einer Loesung helfen.

 

Hoffe nun, dass ihr mir vielleicht helfen koennt. :)

 

Gruesse Felix.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Sascha,

 

danke fuer deine Antwort. Ich verstehe zwar was du meinst, aber ich weiss nicht genau, wie ich es umsetzen soll.

Jetzt sieht das Problem wie folgt aus: Spieler 1 kommt ins Spiel und ist normal Steuerbar.

Spieler 2 kommt ins Spiel und ist dann normal steuerbar.

Spieler 1 hingegen kann man nun zwar noch bewegen, aber die Kamera kann man nun nur noch um ihn herum drehen und ihn damit nicht mehr lenken. Und Spieler 2 dreht sich immer mit, dass man ihn nur von einer Seite sieht.

 

Langsam weiss ich echt nicht mehr weiter.

 

Gruesse Felix.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe leider nie mit Photon gearbeitet. Beim Unity-Networking packst du eine Komponente namens "NetworkView" auf jedes GameObject, das synchronisiert werden soll. Die Kamera würde dann kein NetworkView bekommen.

 

Des Weiteren gibt es NetworkView.isMine, mit dem du dann im Script fragen kannst, ob das Objekt dem Client gehört, auf dem das Skript gerade läuft. Damit unterscheidet man dann, ob die Maus die Figur jetzt dreht oder nicht.

 

Ich denke mal, Photon hat da irgendetwas ähnliches für.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Sascha,

 

danke erstmal wieder fuer deine Antwort.

 

Ich habe auf meinen PlayerPrefab ein PhotonView, was wenn ich mich nicht irre, wohl das selbe darstellt wie das NetworkView.

Und in meinem TP_Controller Script habe ich in der Awake() Funktion ein PhotonView.isMine drin, was genau so behandelt werden soll, wie das NetworkView.

Auf meiner Kamera habe ich nichts weiter. Mein TP_Camera Script wird beim starten des Spiels auf die Kamera gesetzt und die Sucht dann nach dem GameObject 'targetLookAt', dass auf meinem PlayerPrefab ist und die verfolgt dann dieses.

 

Funktioniert so nur leider nicht.

 

Gruesse Felix.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...