使用 Unity 的“游戏对象网络代码”的每个玩家的个人第一人称相机

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

我目前正在学习如何将 Netcode 用于 GameObjects,并且刚刚让客户端、主机和服务器正常工作,以及一个只影响每个玩家的玩家移动脚本。现在唯一的问题是,当新玩家产生时,任何现有玩家的相机都会更改为在新玩家的预制件中产生的相机。我在网上四处寻找解决方案,这是我能找到的最接近的东西,但它没有使用 Netcode for GameObjects 完成,我不确定如何翻译视频中的信息。

知道我怎么能做到这一点吗?

unity3d
1个回答
0
投票

根据该视频,我想您应该能够将“OnStartAuthority”方法修改为以下内容

public override void OnNetworkSpawn() { // This is basically a Start method
    cameraHolder.SetActive(IsOwner);
    base.OnNetworkSpawn(); // Not sure if this is needed though, but good to have it.
}

带你通过,当玩家被生成时,OnNetworkSpawn()被触发,然后我们根据 NetworkBehaviour 的“IsOwner”属性激活 cameraHolder 对象,它的值是基于本地玩家是否“拥有”对象。

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