Как подключить джойстик к игроку в Unity
СКРИПТ ДЖОСТИКА
1.using UnityEngine;
2.using UnityEngine.EventSystems;
3.
4.public class Joystick : MonoBehaviour, IDragHandler, IEndDragHandler
5.{
6. public void OnDrag(PointerEventData eventData)
7 {
8 transform.position = Input.mousePosition;
9 transform.localPosition = Vector3.ClampMagnitude(transform.localPosition, 45f);
10 }
11
12 public void OnEndDrag(PointerEventData eventData)
13 {
14 transform.localPosition = Vector3.zero;
15 }
16}
Я написал код джойстика и стал писать код игрока. Я хотел чтобы, мой игрок управлялся джойстиком и клавиатурой, и двигался с помощью джойстика и клавиатуры. Но что-то пошло не так и у меня выдало ошибку на этой строке:
moveInput = new Vector2(joystick.Horizontal, joystick.Vertical);
Ошибка:
Assets\Player.cs(30,46): error CS1061: 'Joystick' does not contain a definition for 'Horizontal' and no accessible extension method 'Horizontal' accepting a first argument of type 'Joystick' could be found (are you missing a using directive or an assembly reference?).
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public ControlType controlType;
public Joystick joystick;
public float speed;
public enum ControlType{PC, Android}
private Rigidbody2D rb;
private Vector2 moveInput;
private Vector2 moveVelocity;
Ответы (1 шт):
Вы написали (скачали) класс Joystick, в котором ничего не сказано про методы/свойства/поля с именами Horizontal и Vertical.
Если просто нужен джойстик и клавиатура используйте Input.GetAxis("Vertical") и Input.GetAxis("Horizontal") вместо ваших: joystick.Horizontal, joystick.Vertical