我有一个脚本,开发人员可以设置2个公共KeyCode变量。我想要完成的是当说dev选择玩家攻击为“Space”时我想让下一个公共KeyCode选择“Interaction”在其选择中不包括“Space”,因为我想要完成的是没有2个KeyCodes可以设置为相同的密钥。
我知道我可以在OnValidate中进行检查,并在控制台中创建一个需要更改的警告。但是当我为开发人员制作工具时,我想尽可能地避开这条路,并且只要将它们放在轨道上就不会破坏,如果这是有意义的。
答案 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
}
}