2017-02-22 20 views
0

Я построил игру с использованием средства спасения Shvuer. Единственное, с чем я сталкиваюсь, заключается в том, что камера следует только за игроком хоста на хост-устройстве, в то время как ни один из игроков не соблюдается в другом клиенте устройства.Unity Multiplayer: Камера Только после одного игрока

камеры Follow

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' не может вести себя хорошо, когда есть несколько объектов, разделяющие этот тег. Я бы рекомендовал вам найти другой способ связать объекты камеры и игрока. – rutter

ответ

1

Не назначайте цель для камеры в его методе Start. Вместо того, чтобы сделать его открытым и назначить его в методе запуска локального игрока, как это:

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

дал ошибку ** UnassignedReferenceException: Целевая переменная CameraFollow не была назначена. Вероятно, вам нужно назначить целевую переменную скрипта CameraFollow в инспекторе. ** –

+0

Я удалил () .enabled = true; который вызывает ошибку. Спасибо за помощь. –

 Смежные вопросы

  • Нет связанных вопросов^_^