2017-02-22 5 views
0

Ich baute ein Spiel mit Survival Shooter Asset der Einheit. Das Problem ich Gesicht ist, dass die Kamera nur den Host-Player im Host-Gerät folgt, während keiner der Spieler im anderen Client gefolgt wird Geräte.Unity Multiplayer: Kamera Nur nach einem Spieler

Kamera Folgen

public class CameraFollow : MonoBehaviour 
{ 

    Transform target;   // The position that that camera will be following. 
    public float smoothing = 5f;  // The speed with which the camera will be following. 

    Vector3 offset;      // The initial offset from the target. 

    void Start() 
    { 
     target = GameObject.FindGameObjectWithTag ("Player").transform; 
     offset = transform.position - target.position; 
    } 

    void FixedUpdate() 
    { 

     // Create a postion the camera is aiming for based on the offset from the target. 
     Vector3 targetCamPos = target.position + offset; 

     // Smoothly interpolate between the camera's current position and it's target position. 
     transform.position = Vector3.Lerp (transform.position, targetCamPos, smoothing * Time.deltaTime); 
    } 

} 

LocalPlayerSetup Script

public class LocalPlayerSetup : NetworkBehaviour 
{ 

    void Start() 
    { 
    GameObject.FindGameObjectWithTag ("EnemyManager").SetActiveRecursively (true); 

    if (isLocalPlayer) { 
     GameObject.FindGameObjectWithTag ("MainCamera").GetComponent<CameraFollow>().enabled = true; 
     GetComponent<PlayerMovement>().enabled = true; 
     GetComponentInChildren<PlayerShooting>().enabled = true; 
    } 

} 
+0

'FindGameObjectWithTag' kann nicht gut verhalten, wenn es mehrere Objekte sind mit diesem Tag zu teilen. Ich würde empfehlen, dass Sie eine andere Möglichkeit zum Verknüpfen der Kamera- und Player-Objekte finden. – rutter

Antwort

1

Sie das Ziel für die Kamera in seiner Start-Methode nicht zuordnen. machen es öffentlich und weisen Sie stattdessen in der Startmethode des lokalen Spieler wie folgt aus:

if (isLocalPlayer) { 
    ("MainCamera").GetComponent<CameraFollow>().target = transform; 
} 
+0

gab einen Fehler ** UnassignedReferenceException: Das variable Ziel von CameraFollow wurde nicht zugewiesen. Wahrscheinlich müssen Sie im Inspector die Zielvariable des CameraFollow-Skripts zuweisen. ** –

+0

Ich habe die () .enabled = true; was den Fehler verursacht hat. Danke für die Hilfe –

Verwandte Themen