Как исправить CS0019?

Ребят вот ошибка(+ такая самая ток строка другая)
Assets/Scripts/moving.cs(23,15): error CS0019: Operator `<' cannot be applied to operands of type `UnityEngine.Vector3' and `float'

Я то понял что оно просит,только в этом коде работало
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class moving : MonoBehaviour {
	private float speed = 5f;
	private float jumpForce = 15F;
	private Rigidbody2D rigidbody;
	private SpriteRenderer sprite;
	private bool isGrounded;

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

	private void Run(){
		Vector3 direction = transform.right * Input.GetAxis("Horizontal");
		transform.position = Vector3.MoveTowards (transform.position, transform.position + direction, speed * Time.deltaTime);
		sprite.flipX = direction.x < 0.0f;
	}

	private void Jump(){
		rigidbody.AddForce (transform.up * jumpForce, ForceMode2D.Impulse);
	}

	private void CheckGrounded(){
		Collider2D[] colliders = Physics2D.OverlapCircleAll (transform.position,0.3f);

		isGrounded = colliders.Length > 1;			
	}

	private void FixedUpdate(){
		CheckGrounded ();
	}

	private void Update () {
		if (Input.GetButton ("Horizontal"))
			Run ();
		else if (isGrounded && Input.GetButtonDown ("Jump"))
			Jump();
	}
}

А в этом как раз таки ошибка
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class moving : MonoBehaviour {
	public GameObject obj;
	private float speed = 5f;
	private Rigidbody2D rb;
	private SpriteRenderer spr;

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

	private void RunX(){
		Vector3 directionX = transform.right * Input.GetAxis("Horizontal");
		spr.flipX = directionX < 0.0f;
		transform.position = Vector3.MoveTowards (transform.position, transform.position + directionX,speed * Time.deltaTime);
	}
	private void RunY(){
		Vector3 directionY = transform.up * Input.GetAxis ("Vertical");
		spr.flipY = directionY < 0.0f;
		transform.position = Vector3.MoveTowards (transform.position, transform.position + directionY,speed * Time.deltaTime);
	}

	private void Update () {
		RunY ();
		RunX ();
	}
}
  • Вопрос задан
  • 904 просмотра
Решения вопроса 1
MrNexeon
@MrNexeon
Строчки

spr.flipX = directionX < 0.0f;
spr.flipY = directionY < 0.0f;

Заменить на:

spr.flipX = directionX.x < 0.0f;
spr.flipY = directionY.y < 0.0f;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
TheTalion
@TheTalion
Вы пытаетесь сравнить разные типы. Там же написано! Вы сравниваете Vector3 с float. Может вы хотели сравнить какой-то конкретный вектор из Vector3? В гугле все эти ошибки описаны полностью по названию ошибки (CS0019).
Ответ написан
Ваш ответ на вопрос

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

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