2016-09-01 52 views
0

因此,我在Unity5中进行FPS游戏,几天前我开始在Unity的官方网站上寻找multiplayer tutorials网络游戏主机相机无法正常工作

但是,我改变了一些适合FPS的代码,但是我在开始这样做时遇到了问题。客户的相机移动得很好,但主持人的相机没有:它使用客户端的相机看,但他的球员移动,有点第三人称视角。

所有玩家都有相同的密码,并且摄像机的网络身份与本地玩家权限开启。此外,它有这个C#脚本:

using UnityEngine; 
using System.Collections; 
using UnityEngine.Networking; 

public class VisionControl : NetworkBehaviour { 

void Start() { 

    Cursor.lockState = CursorLockMode.Locked; 
} 

void Update() { 
    if(!isLocalPlayer){ 
     return; 
     } 
    transform.Rotate (new Vector3 (-Input.GetAxis ("Mouse Y")*5.0f,0.0f,0.0f)); 
} 
} 

回答

0

固定!我删除了VisionControl脚本和推杆这一个玩家的动作脚本:

public override void OnStartLocalPlayer() 
{ 
    if (isLocalPlayer) { 
     FindObjectOfType<Camera>().gameObject.transform.position = this.transform.position+new Vector3(0f,0.5f,0f); 
     FindObjectOfType<Camera>().gameObject.transform.SetParent (this.transform); 
    } 
} 
0

您的相机不应具有网络身份。 它仅供当地客户使用,以获得游戏世界的视角,因此它们不需要联网。 每台摄像机仅存在于当前客户端。 每个游戏实例应该有1个摄像头在运行,即本地播放器。

将一个简单的非联网摄像头组件连接到您的播放器预制并再次测试。

+0

主机工作正常,但是当一个客户端移动的摄像头,主机也移动相机。我认为这是因为客户端向主机发送信息,主机解释它。 – AlexINF

+0

这就是为什么相机不能联网...... 玩家/服务器之间不应该有摄像头的通信。 每个玩家都有自己使用的相机,联网相机并不是一个好主意.... – MKougiouris

+0

是的,但是我该如何处理相机只能在本地而不以任何方式传输数据? – AlexINF