Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Юнити, проблема с пакетом simple fps controller.ПОМОГИТЕ!!!!!!! СРОЧНО!!!!!!!!!

Владислав Смирнов Ученик (97), на голосовании 5 месяцев назад
Пишет что не подходит класс, помогите пожалуйста!!!!!!!!!
Голосование за лучший ответ
Татьяна Просветленный (36374) 6 месяцев назад
Проблема, которую вы видите на первом скриншоте, возникает потому, что вы пытаетесь добавить статический класс как компонент к игровому объекту в 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, и он не будет вызывать ошибок при добавлении.
Похожие вопросы