Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
Unity3d 统一:多人游戏中的个人相机_Unity3d_Multiplayer - Fatal编程技术网

Unity3d 统一:多人游戏中的个人相机

Unity3d 统一:多人游戏中的个人相机,unity3d,multiplayer,Unity3d,Multiplayer,我已经在unity中工作了一段时间,并且已经从下面的教程中获得了一个基本的多人游戏设置。然而,我想补充一些东西,其中之一是一个摄像头,可以跟踪每个球员。我已经查过了,甚至找到了那个教程的创建者的评论。所以我按照他解释的做了如下代码: function spawnPlayer(){ var player:GameObject=Network.Instantiate(playerPrefab,spawnObject.position,Quaternion.identity,0); D

我已经在unity中工作了一段时间,并且已经从下面的教程中获得了一个基本的多人游戏设置。然而,我想补充一些东西,其中之一是一个摄像头,可以跟踪每个球员。我已经查过了,甚至找到了那个教程的创建者的评论。所以我按照他解释的做了如下代码:

function spawnPlayer(){
    var player:GameObject=Network.Instantiate(playerPrefab,spawnObject.position,Quaternion.identity,0);
    Destroy(Camera.main);
    if(player.networkView.isMine){
       var playercam:Transform=player.transform.find("Camera");
       playercam.tag="MainCamera";
    }
}
我忘了提到,有一个摄像头是玩家对象的父对象,它被选为“PlayerRefab”游戏对象

这种方法很管用,但实际上并不管用。当我启动服务器时,摄像机会很好地跟踪你。然而,当我打开另一个文件并加入该主机时,我开始感到奇怪。所谓怪异,我的意思是,当我在服务器游戏上移动时,相机跟随客户端游戏上的服务器玩家,当在客户端游戏上移动时,相机跟随服务器游戏上的客户端。对我来说,这毫无意义


我非常感谢任何人对这个问题的意见,或者如何解决这个问题。谢谢,您的代码不完整:由于预制件中有摄像头,您必须继续执行
if(player.networkView.isMine)
添加
else
子句以销毁摄像头,以防生成远程播放器的图像。

您只想制作一个摄像头,不要在播放器预制件中包含摄像头。我认为你创建的摄像头太多了。因此,如果我不将一个摄像头设置为玩家的父对象,我该如何处理主摄像头,使其跟随玩家添加一个脚本,强制摄像头跟随正确的玩家对象。是的,我在想,就像每个客户一样,该摄像头将跟随最后一个玩家加入。。。然而,我不知道如何获得某个对象的实例数,并选择一个特定的实例。@JeremyDarrach我认为这里有一个断开。谁调用
SpawnPlayer
、服务器还是客户端?如果是客户端,您可以跳过isMine thng,只需获取主摄像头。如果是服务器,那么您需要将所有内容移动到网络下。在附加到播放器预置的脚本上实例化。