Ошибка error CS0246: The type or namespace name 'PlayerInputActions' could not be found (are you missing a using directive or an assembly reference?)
Возникла такая проблема в Юнити(С#)
Ошибка:
Ошибка error CS0246: The type or namespace name 'PlayerInputActions' could not be found (are you missing a using directive or an assembly reference?)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using System;
public class FameInput : MonoBehaviour
{
public static FameInput Instance { get; private set; }
public event EventHandler OnPlayerAttack;
private PlayerInputActions playerInputActions;
private void Awake()
{
Instance = this;
playerInputActions = new PlayerInputActions();
playerInputActions.Enable();
playerInputActions.Combat.Attack.started += PlayerAttack_started;
}
private void PlayerAttack_started(InputAction.CallbackContext obj)
{
Debug.Log("Pressed");
OnPlayerAttack?.Invoke(this, EventArgs.Empty);
}
public Vector2 GetMovementVector()
{
Vector2 inputVector = playerInputActions.Player.Move.ReadValue<Vector2>();
return inputVector;
}
public Vector3 GetMousePosition()
{
Vector3 mousePos = mousePos.current.position.ReadValue();
return mousePos;
}
}
Ответы (1 шт):
Ошибка CS0246 указывает на то, что Unity не может найти определение класса PlayerInputActions
.
a) Обычно это связано с использованием нового Input System в Unity
, где класс PlayerInputActions
должен быть сгенерирован автоматически, но по какой-то причине этого не произошло...
b) *Либо отсутствует using
PlayerInputActions
— обычно это автоматически сгенерированный класс. Этот Asset может содержать действия предположим движение, прыжок, атака
Чтобы сгенерировать класс PlayerInputActions
, можно попробовать создать вручную:
- Перейдите в Unity Editor
- В меню выберите
Assets → Create → Input Actions
- Дайте файлу имя -
PlayerInputActions
- Настрой действия- атака и или другие действия
- В инспекторе установите флажок
Generate C# Class
- Нажмите
Apply
, чтобы применить изменения
...если вы делали по видео уроку, то обратите внимания на детали, сравните еще раз с видео поэтапно свой код, возможно даже мелкая опечатка, также чувствительность к регистру (заглавные буквы) может не найти нужный класс
обратите внимание на using UnityEngine.InputSystem;
, возможно в видео используются более устаревшие пакеты, а ваш проект более обновлен