Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
User interface 第二个客户端的画布未注册输入?团结一致_User Interface_Unity3d_Networking_Canvas_Multiplayer - Fatal编程技术网

User interface 第二个客户端的画布未注册输入?团结一致

User interface 第二个客户端的画布未注册输入?团结一致,user-interface,unity3d,networking,canvas,multiplayer,User Interface,Unity3d,Networking,Canvas,Multiplayer,我是新来的。我不知道如何连接一个画布,让玩家与之交互,选择他们将在游戏中扮演的团队,如果玩家预置是在场景中生成的,我会计算出来。因此,我将画布与玩家一起放入预置中,一旦他们选择了哪支球队,就将其设置为非活动状态 它完美地工作在主机客户端更改其playerTeam int并在应该生成它们的位置生成它们,但当第二个客户端加入画布时,它们的画布在那里,但不会接受任何输入。我知道这是因为我在输入之后输入的debug.log没有运行。以下是必需的代码段 我在默认情况下禁用画布,并在父对象上的脚本上运行Is

我是新来的。我不知道如何连接一个画布,让玩家与之交互,选择他们将在游戏中扮演的团队,如果玩家预置是在场景中生成的,我会计算出来。因此,我将画布与玩家一起放入预置中,一旦他们选择了哪支球队,就将其设置为非活动状态

它完美地工作在主机客户端更改其playerTeam int并在应该生成它们的位置生成它们,但当第二个客户端加入画布时,它们的画布在那里,但不会接受任何输入。我知道这是因为我在输入之后输入的debug.log没有运行。以下是必需的代码段

我在默认情况下禁用画布,并在父对象上的脚本上运行IsLocalLayer后激活画布。我无法将networkID添加到画布,因为预制父对象具有networkID,而它们都不能具有networkID,这意味着我无法在画布脚本上使用isLocalPlayer,这可能是问题所在。但我也不能在实际关卡屏幕上显示画布,因为即使我找到画布上的游戏对象,我也不知道如何让它找到将playerTeam int分配给哪个玩家

下面是在连接到画布的脚本上运行的,空的player对象是该脚本的父对象

Button CT = chooseCT.GetComponent<Button>();

CT.onClick.AddListener(parent.GetComponent<Sync>().CmdpickedCT);
这是在父对象上的脚本上运行的代码

[Command]
public void CmdpickedCT()
{
   GetComponent<Movement>().playerTeam = 2;
   teamSelector.SetActive(false);
}
如果我错过了一些重要的东西,我道歉。谢谢你的帮助

有关更多信息,我在运动脚本中有更多内容,一旦playerTeam设置为0以外的值,这也可以在主机上运行。您可以提供的关于如何将信息从游戏场景中的对象传递到实例化对象的任何其他信息也都非常有用。再次感谢


其他信息,似乎如果第二个客户机和第一个客户机同时出现在画布上,我就不能选择任何一个团队。它说试图在没有授权的情况下发送对象的命令。

您能解释一下当您试图在层次结构中使用一个画布时出现了什么问题吗?我不认为有必要在每个预制件中放置画布。游戏从一个场景开始,该场景应该是某种游戏查找器,然后切换到具有实际级别的场景。在场景中,我不知道如何从场景中的画布更改播放器信息播放器团队。如果我在这个级别的画布上做了一个脚本,它怎么知道要在哪个播放器上更改变量?我尝试了这个,并使用了isLocalPlayer,但什么都不会发生。基本上,我在将数据从游戏级别的对象传输到预制件时遇到了问题,而预制件在游戏开始之前不会被实例化,这主要是因为玩家之间的混淆。此外,如果它在现场,它会告诉我,我对该对象没有权限。