@DimonKr2D

Как исправить ошибку CS0019?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
   [SerializeField] private float speed = 2f; //Скорость
   [SerializeField] private float jumpforce = 15f; //Сила Прыжка
   private bool isGrounded = false;


   private Rigidbody2D rb;
   private SpriteRenderer sprite;

   private void Awake()
   {
       rb = GetComponent<Rigidbody2D>();
       sprite =GetComponentInChildren<SpriteRenderer>();
   }

   private void FixedUpdate()
   {
       CheckGround();
   }

   private void Update()
   {
        if (Input.GetButton("Horizontal"))
            Run();
   }

   private void Run()
   {
       Vector3 dir = transform.right * Input.GetButton("Horizontal");

       transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);

       sprite.flipX = dir.x < 0.0f;
   }

   private void CheckGround()
   {
       Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
       isGrounded = collider.Length > 1;
   }
}
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
Читаем описание ошибки:
https://docs.microsoft.com/en-us/dotnet/csharp/lan...

Оператор O нельзя применить к типам X и Y

Раз автор не даёт полный текст ошибки, в которой указано, какие именно типы, какой оператор, и на какой строке - попытаюсь угадать.

Вот на этой строке автор пытается умножить вектор на кнопку, что очевидно нельзя:
Vector3 dir = transform.right * Input.GetButton("Horizontal");


Как исправить - не уверен, ибо кнопка может быть только либо нажата, либо не нажата. Может быть, следует проверять состояние кнопки и поставлять нужный множитель.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы