Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当场景中有多个摄像机时,如何在unity网络中引用主摄像机的本地实例。每个玩家一个_C#_Unity3d_Networking - Fatal编程技术网

C# 当场景中有多个摄像机时,如何在unity网络中引用主摄像机的本地实例。每个玩家一个

C# 当场景中有多个摄像机时,如何在unity网络中引用主摄像机的本地实例。每个玩家一个,c#,unity3d,networking,C#,Unity3d,Networking,我正在制作一个使用网络的多人游戏unity。它使用网络管理器、网络管理器HUD和网络标识。随着我对unity的了解,可能会有更多的组件。问题是,在我的播放器对象通过网络管理器生成之前,主摄像机在菜单中生成。因此lookAt变量没有正确分配。我想在玩家产生后,通过摄影机脚本或玩家脚本来分配它。问题是当游戏启动和运行时,游戏中有4个玩家预制和4个主摄像头。我尝试过的一切都只是重新分配了所有摄像机的注视变量。如何将本地摄像机的视角分配给本地播放器 这是一个第三人称游戏 我真的不想让相机成为玩家预制的

我正在制作一个使用网络的多人游戏unity。它使用网络管理器、网络管理器HUD和网络标识。随着我对unity的了解,可能会有更多的组件。问题是,在我的播放器对象通过网络管理器生成之前,主摄像机在菜单中生成。因此lookAt变量没有正确分配。我想在玩家产生后,通过摄影机脚本或玩家脚本来分配它。问题是当游戏启动和运行时,游戏中有4个玩家预制和4个主摄像头。我尝试过的一切都只是重新分配了所有摄像机的注视变量。如何将本地摄像机的视角分配给本地播放器

  • 这是一个第三人称游戏
  • 我真的不想让相机成为玩家预制的孩子,这会把我游戏的其他部分搞砸

不要为每个玩家使用主摄像机,在任何给定时间,场景中应该只有一个主摄像机处于活动状态(因此称为主摄像机)。因此,如果您尝试调用
Camera.Main
它将调用您所有的主摄像头,而不仅仅是播放器的

我认为实现您想要的最好方法是制作一个相机的预制件(未标记为
MainCamera
),并将您的相机脚本(如果您有)或任何其他组件也放在该预制件上

然后,当您的玩家生成时,您实例化预置以单独为该玩家创建摄影机预置的实例,并且仅在该玩家的实例化摄影机上使用
LookAt

它看起来类似于以下内容:

public GameObject cameraPrefab; //prefab of the camera you want to instance
private Camera playerCam; //this is gonna be a reference to the camera that looks at the player
void SpawnPlayer()
{
    playerCam = Instantiate(cameraPrefab).GetComponent<Camera>(); //instantiate the cameraPrefab and get the camera component of it
    playerCam.transform.LookAt(transform); //get the transform of the instanced camera to look at the transform on which this script is run (In this case assuming your player)
}
public GameObject cameraPrefab;//要实例化的摄影机的预置
私人摄像机播放器摄像头;//这将是对观看播放器的摄像机的引用
无效玩家()
{
playerCam=实例化(cameraPrefab).GetComponent();//实例化cameraPrefab并获取其相机组件
playerCam.transform.LookAt(transform);//获取实例化摄影机的变换,以查看运行此脚本的变换(在本例中,假设您的播放器)
}