Передвижение игрока

242
20 августа 2017, 03:24

Пишу 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'

Что делать?

Answer 1

Метод AddForce() принимает аргументом тип Vector2, а вы ему даете на вход результат функции Input.GetAxis(), которая возвращает float.

Правильней будет так :

GetComponent<Rigidbody2D>().AddForce(new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
READ ALSO
C# Awesomium выполнение скриптов

C# Awesomium выполнение скриптов

Есть сайт, на нем svg графикНадо сделать скриншот этой страницы

349
Получить значение по ключу из .config

Получить значение по ключу из .config

Есть Appconfig файл принадлежащий другому приложению

247
Конвертирование VBScript в C# [требует правки]

Конвертирование VBScript в C# [требует правки]

Есть код VBScript, нужно его конвертировать в C#, но в VBS я 0, поможет кто?

335