Ошибка CS0029 возникает из-за того, что вы пытаетесь присвоить объект типа GameInput переменной типа Player. Ошибка в строке Instance = this;. Проблема в том, что Instance имеет тип Player, а this в данном контексте является объектом типа GameInput.
Для исправления этой ошибки вам нужно изменить тип свойства Instance с Player на GameInput.
Измените строку:
public static Player Instance { get; private set; }
на:
public static GameInput Instance { get; private set; }
Таким образом, исправленный код будет выглядеть следующим образом:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameInput : MonoBehaviour
{
public static GameInput Instance { get; private set; }
private PlayerInputActions playerInputActions;
private void Awake()
{
Instance = this;
playerInputActions = new PlayerInputActions();
playerInputActions.Enable();
}
public Vector2 GetMovementVector()
{
Vector2 inputVector = playerInputActions.Player.Move.ReadValue();
return inputVector;
}
}
//
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameInput : MonoBehaviour
{
public static Player Instance { get; private set; }
private PlayerInputActions playerInputActions;
private void Awake()
{
Instance = this;
playerInputActions = new PlayerInputActions();
playerInputActions.Enable();
}
public Vector2 GetMovementVector()
{
Vector2 inputVector = playerInputActions.Player.Move.ReadValue<Vector2>();
return inputVector;
}
}