Пишу 2d top down шутер на Unity 2017.1 C#. 2 дня как пытаюсь реализовать движение игрока по курсору. Вот мой код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playerMove : MonoBehaviour {
void FixedUpdate () {
GetComponent<Rigidbody2D>().AddForce(Input.GetAxis("Horizontal"));
GetComponent<Rigidbody2D>().AddForce(Input.GetAxis("Vertical"));
}
}
Этот код выводит ошибки..
Assets/Scripts/playerMove.cs(8,31): error CS1502: The best overloaded method match for `UnityEngine.Rigidbody2D.AddForce(UnityEngine.Vector2)' has some invalid arguments
Assets/Scripts/playerMove.cs(8,46): error CS1503: Argument `#1' cannot convert `float' expression to type `UnityEngine.Vector2'
Assets/Scripts/playerMove.cs(9,31): error CS1502: The best overloaded method match for `UnityEngine.Rigidbody2D.AddForce(UnityEngine.Vector2)' has some invalid arguments
Assets/Scripts/playerMove.cs(9,46): error CS1503: Argument `#1' cannot convert `float' expression to type `UnityEngine.Vector2'
Что делать?
Метод AddForce() принимает аргументом тип Vector2, а вы ему даете на вход результат функции Input.GetAxis(), которая возвращает float.
Правильней будет так :
GetComponent<Rigidbody2D>().AddForce(new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
Продвижение своими сайтами как стратегия роста и независимости