Unity,删除已选择的键码

Unity, removing a keycode that is already selected

我有一个脚本,其中包含开发人员可以设置的 2 个 public KeyCode 变量。我想要完成的是,当开发者选择 "Space" 作为玩家攻击时,我希望下一个 public KeyCode 选择 "Interaction" 不包括 "Space"它的选择是我想要完成的是不能将 2 个 KeyCodes 设置为相同的键。

我知道我可以在 OnValidate 中进行检查,并在控制台中创建一个需要更改的警告。但是,当我为开发人员制作工具时,我想尽可能避免走这条路,只是让它们在 rails 上,如果有意义的话就不会中断。

用所有可能 selected 的键填充一个列表或数组,并且对于每个 selected 键,您删除的是来自 List/Array 的键。

然后你有一个新的列表或数组,只有你可以select的键。

您只需按照自己的方式修改一点即可。 (C# 统一代码)

using System;
using System.Collections.Generic;

public class KeySelector 
{
    public List<KeyCode> selection;

    public void AddKey(KeyCode)
    {
        selection.Add(KeyCode);
    }

    public void RemoveKey(KeyCode)
    {
        selection.Remove(KeyCode);
    }

    //Foreach Keycode in selection (To make the list that the dev can choose of)
    foreach(Keycode key in selection)
    {
        //TODO write code to make a list
    }
}