我目前正在学习如何将 Netcode 用于 GameObjects,并且刚刚让客户端、主机和服务器正常工作,以及一个只影响每个玩家的玩家移动脚本。现在唯一的问题是,当新玩家产生时,任何现有玩家的相机都会更改为在新玩家的预制件中产生的相机。我在网上四处寻找解决方案,这是我能找到的最接近的东西,但它没有使用 Netcode for GameObjects 完成,我不确定如何翻译视频中的信息。
知道我怎么能做到这一点吗?
根据该视频,我想您应该能够将“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 对象,它的值是基于本地玩家是否“拥有”对象。