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

Помощь с юнити

домовой Знаток (417), на голосовании 4 месяца назад
Assets\Scripts\GameInput.cs(17,20): error CS0029: Cannot implicitly convert type 'GameInput' to 'Player'


//

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;
}

}
Голосование за лучший ответ
MvC Просветленный (36648) 5 месяцев назад
у тебя ошибка в скрите
GameInput.cs (строки в скрипте 17,20)

+В юнити поставь в настройках системы ввода Both(чтоб он работал и на старой и на новой системе ввода)

Возможно выставив новую систему ввода-а лучше Both (обе) ошибки пофиксятся сами
Xttx Мыслитель (9003) 5 месяцев назад
public static Player Instance - объявление переменной Instance типа Player
this - возвращает текущий инстанс текущего класса (GameInput)
Instance = this - присваивание переменной типа Player значения типа GameInput = ошибка несовпадения типов
Татьяна Просветленный (36384) 5 месяцев назад
Ошибка 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;
}
}
Похожие вопросы