识别ID玩家点击统一



(Unity( 我正在使用新的输入系统和多人游戏事件系统,有 4 名活跃玩家。到目前为止,每个玩家都有自己的对象根(容器(可供选择,但我遇到了一个场景,其中 4 个玩家将有相同的 UI 按钮可供选择,然后出现了我不知道解决的问题:如何识别哪个玩家按下了按钮(点击(?我不知道在按钮的 OnClick 方法中包含什么类型的变量以返回一些值,该值允许我链接到执行该操作的玩家。 需要帮助。

也许为每个玩家生成一个对他们来说唯一的 ID,(我只知道 qb64,它在 C++ 中有一些根源(。 当他们单击所述按钮时,它会将该号码发送给您。 也许在名称旁边显示数字?(ei xxbanananxxX:655731(

当每个玩家被实例化时,应该有一个ID,如果没有,请为他们分配一个。

当播放器与按钮交互时,在 onClick 方法上传递其 ID。

例如作为伪代码:

private void OnClick(int playerID)
{
//Do your button stuff, knowing playerID 
if(playerID == 1)
//Do something
else
//Do something else
}

使用对玩家的对象引用,并在 OnClick 事件中传递它。这样,您可以防止通过管理索引引入一些抽象,并且您可能不需要单独管理玩家列表。另一个优点是,智能感知可以更有助于管理此类代码。

根据您的情况,这可以是对场景中玩家游戏对象的游戏对象或脚本引用(例如附加到游戏对象的玩家单一行为.cs(,也可以是引用人类玩家的某些 C# 对象。

// Object reference can be something like:
// Player player, GameObject player, PlayerMonobehaviour player, ...
private void OnClick(Player player)
{
// Control player directly,...
player.DoSomething();
// ...or publish an event with player as the event argument.
// and let other scripts do what they want with the player.
Clicked?.Invoke(player);
}

最新更新