Нужно сделать так, что бы при нажатии
на кнопку "Set Key" начиналась проверка на нажатие кнопки и первая же нажатая вносилась в k.Code
код отображения всего этого:
Синтаксис:
Используется csharp
foreach (Key k in KeySettings.keys)
{
GUILayout.BeginHorizontal();
k.Name = EditorGUILayout.TextField(new GUIContent("Name", "Programm Name"), k.Name);
k.DisplayName = EditorGUILayout.TextField(new GUIContent("Display Name", "Key name that ypu see in Game"), k.DisplayName);
GUILayout.Label("Key: " + k.Code.ToString() + "/" + k.nowSetKey);
if(GUILayout.Button("Set Key"))
{
k.nowSetKey = true;
}
if(k.nowSetKey)
{
k.Code = ev.keyCode;
}
if(ev.keyCode == KeyCode.A)
{
KeySettings.keys.Remove(k);
}
GUILayout.EndHorizontal();
if (GUILayout.Button("Delete"))
{
KeySettings.keys.Remove(k);
}
GUILayout.Space(30);
}
{
GUILayout.BeginHorizontal();
k.Name = EditorGUILayout.TextField(new GUIContent("Name", "Programm Name"), k.Name);
k.DisplayName = EditorGUILayout.TextField(new GUIContent("Display Name", "Key name that ypu see in Game"), k.DisplayName);
GUILayout.Label("Key: " + k.Code.ToString() + "/" + k.nowSetKey);
if(GUILayout.Button("Set Key"))
{
k.nowSetKey = true;
}
if(k.nowSetKey)
{
k.Code = ev.keyCode;
}
if(ev.keyCode == KeyCode.A)
{
KeySettings.keys.Remove(k);
}
GUILayout.EndHorizontal();
if (GUILayout.Button("Delete"))
{
KeySettings.keys.Remove(k);
}
GUILayout.Space(30);
}
код класса Key:
Синтаксис:
Используется csharp
public class Key
{
public string Name { get; set; }
public string DisplayName { get; set; }
public KeyCode Code { get; set; }
public bool nowSetKey = false;
public Key(string _Name, string _DisplayName, KeyCode _Code)
{
Name = _Name;
DisplayName = _DisplayName;
Code = _Code;
}
public Key()
{
Name = "New Key";
DisplayName = "new Key";
Code = KeyCode.None;
}
}
{
public string Name { get; set; }
public string DisplayName { get; set; }
public KeyCode Code { get; set; }
public bool nowSetKey = false;
public Key(string _Name, string _DisplayName, KeyCode _Code)
{
Name = _Name;
DisplayName = _DisplayName;
Code = _Code;
}
public Key()
{
Name = "New Key";
DisplayName = "new Key";
Code = KeyCode.None;
}
}