Проблема, которую вы видите на первом скриншоте, возникает потому, что вы пытаетесь добавить статический класс как компонент к игровому объекту в Unity. В Unity классы, которые вы добавляете как компоненты, должны быть наследованы от MonoBehaviour и не могут быть статическими.
Ваш класс SFPSC_KeyManager определён как статический, поэтому его нельзя использовать как компонент. Если вы хотите хранить клавиши ввода в отдельном классе, вы можете сделать это с помощью нестатического класса и использовать его для доступа к ключам. Вот пример, как это можно сделать:
Создайте отдельный класс для управления ключами:
using UnityEngine;
public class SFPSC_KeyManager : MonoBehaviour
{
public KeyCode Jump = KeyCode.Space;
public KeyCode Run = KeyCode.LeftShift;
public KeyCode Grapple = KeyCode.E;
}
Добавьте этот скрипт к игровому объекту в Unity.
Получите доступ к ключам из других скриптов. Например:
public class PlayerController : MonoBehaviour
{
private SFPSC_KeyManager keyManager;
void Start()
{
keyManager = GetComponent();
}
void Update()
{
if (Input.GetKeyDown(keyManager.Jump))
{
// Действие при прыжке
}
if (Input.GetKey(keyManager.Run))
{
// Действие при беге
}
if (Input.GetKeyDown(keyManager.Grapple))
{
// Действие при использовании крюка
}
}
}
Теперь ваш класс SFPSC_KeyManager можно использовать как компонент в Unity, и он не будет вызывать ошибок при добавлении.