C# 当场景中有多个摄像机时,如何在unity网络中引用主摄像机的本地实例。每个玩家一个
我正在制作一个使用网络的多人游戏unity。它使用网络管理器、网络管理器HUD和网络标识。随着我对unity的了解,可能会有更多的组件。问题是,在我的播放器对象通过网络管理器生成之前,主摄像机在菜单中生成。因此lookAt变量没有正确分配。我想在玩家产生后,通过摄影机脚本或玩家脚本来分配它。问题是当游戏启动和运行时,游戏中有4个玩家预制和4个主摄像头。我尝试过的一切都只是重新分配了所有摄像机的注视变量。如何将本地摄像机的视角分配给本地播放器C# 当场景中有多个摄像机时,如何在unity网络中引用主摄像机的本地实例。每个玩家一个,c#,unity3d,networking,C#,Unity3d,Networking,我正在制作一个使用网络的多人游戏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);//获取实例化摄影机的变换,以查看运行此脚本的变换(在本例中,假设您的播放器)
}