主机的网络游戏相机无法正常工作

时间:2016-09-01 11:29:02

标签: c# unity3d unity5 multiplayer

所以,我在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));
}
}

2 个答案:

答案 0 :(得分:0)

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

将简单的非联网相机组件连接到播放器预制件并再次测试。

答案 1 :(得分: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);
    }
}