Unity,删除已选择的密钥代码

时间:2017-04-07 20:23:54

标签: c# unity3d keycode

我有一个脚本,开发人员可以设置2个公共KeyCode变量。我想要完成的是当说dev选择玩家攻击为“Space”时我想让下一个公共KeyCode选择“Interaction”在其选择中不包括“Space”,因为我想要完成的是没有2个KeyCodes可以设置为相同的密钥。

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

1 个答案:

答案 0 :(得分:1)

使用可能已被选中的所有密钥填充列表或数组,并且对于您删除的每个选定密钥都来自列表/数组。

然后你有一个新的List或Array,只有你可以选择的键。

你只需要以自己的方式重做一点。 (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
    }
}