主持人切换到客户端摄像头 - Unity NGO

问题描述 投票:0回答:1

我有一个摄像头连接到由 NetworkManager 实例化的播放器预制件。

主机开始游戏后一切正常,但是一旦客户端加入游戏,主机就会切换摄像头,现在客户端和主机都在控制客户端摄像头.

我不确定为什么会这样,无法调试问题。

供您参考,这是我在相机上的播放器外观脚本:

    using Unity.Netcode;
    
    public class PlayerLook : NetworkBehaviour
    {
        public float sensitivity = 100f; // Mouse sensitivity
    
        private Transform player; // Reference to player transform
        private float xRotation = 0f; // Current rotation around the x-axis
    
        void Start()
        {
            player = this.transform.parent; // Set player reference
        }
    
        void Update()
        {
    
            float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
            float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
    
            xRotation -= mouseY;
            xRotation = Mathf.Clamp(xRotation, -90f, 90f);
    
            transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
            player.Rotate(Vector3.up * mouseX);
        }
    }
unity3d multiplayer
1个回答
0
投票

不能说我以前玩过多人游戏,但我不确定让两个玩家都有自己的相机是否正确。无论如何,如果他们必须拥有它,例如当您想要显示分屏或其他内容时,那么您最好让玩家的一个或两个相机渲染到 RenderTexture 和一个相机来渲染您想要的任何构图。因为实际上,您可能在同一个显示器中渲染了两个相机。上面发布的代码本身不会影响任何恕我直言。您可能只会看到场景视图中渲染的最后一个摄像机。如果没有,那么也许在其他地方寻找对 Camera.main 的引用,并检查两个摄像头的 MainCamera 标签。在同一个场景中,只有一台摄像机应该有该标签。我也会研究 Cinemachine。您可以使用 vcams 而不是 Unity 的 Camera 作为子项,并且场景中只有一个 Unity Camera。 vcams 是驱动 Unity 相机的代理,因此您可以在它们之间切换甚至混合等。

© www.soinside.com 2019 - 2024. All rights reserved.