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
}
}
我有一个脚本,其中包含开发人员可以设置的 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
}
}