【发布时间】:2022-07-22 00:20:44
【问题描述】:
你好,我对统一很陌生,我有一个问题,我的画布上有 4 个方形按钮,游戏中有 4 个角色,每个按钮应该通过拖动按钮本身来移动一个角色,更新 X 和 Y 变量和用这个变量计算方向。 问题是我触摸的任何按钮都会更新所有变量的一对变量,而不是我触摸的唯一一个。在网上看,我发现它可能与事件系统有关,但我不知道如何正确设置它。
【问题讨论】:
标签: unity3d user-interface button
你好,我对统一很陌生,我有一个问题,我的画布上有 4 个方形按钮,游戏中有 4 个角色,每个按钮应该通过拖动按钮本身来移动一个角色,更新 X 和 Y 变量和用这个变量计算方向。 问题是我触摸的任何按钮都会更新所有变量的一对变量,而不是我触摸的唯一一个。在网上看,我发现它可能与事件系统有关,但我不知道如何正确设置它。
【问题讨论】:
标签: unity3d user-interface button
如果您想要一个按钮更新其各自玩家的 X 和 Y 坐标,那么您需要有一对 Button 和一个 Player。为此,创建一个 Button 作为键,Player 作为其值的字典。
public Dictionary<Button, Player> pairs = new Dictionary<Button, Player>();
现在将ButtonListeners 添加到这些按钮并将其各自的播放器作为参数传递。
foreach (var pair in pairs) {
pair.Key.onClick.AddListener(() => MoveThisPlayer(pair.Value));
}
void MoveThisPlayer(Player player) {
// move this player
}
【讨论】: