Ошибка 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 шт):

Автор решения: Dev18

Ошибка CS0246 указывает на то, что Unity не может найти определение класса PlayerInputActions.

a) Обычно это связано с использованием нового Input System в Unity, где класс PlayerInputActions должен быть сгенерирован автоматически, но по какой-то причине этого не произошло...

b) *Либо отсутствует using

PlayerInputActions — обычно это автоматически сгенерированный класс. Этот Asset может содержать действия предположим движение, прыжок, атака

Чтобы сгенерировать класс PlayerInputActions, можно попробовать создать вручную:

  1. Перейдите в Unity Editor
  2. В меню выберите Assets → Create → Input Actions
  3. Дайте файлу имя - PlayerInputActions
  4. Настрой действия- атака и или другие действия
  5. В инспекторе установите флажок Generate C# Class
  6. Нажмите Apply, чтобы применить изменения

...если вы делали по видео уроку, то обратите внимания на детали, сравните еще раз с видео поэтапно свой код, возможно даже мелкая опечатка, также чувствительность к регистру (заглавные буквы) может не найти нужный класс

обратите внимание на using UnityEngine.InputSystem;, возможно в видео используются более устаревшие пакеты, а ваш проект более обновлен

→ Ссылка