Я получил ошибку, и мой джойстик не остается в камере. - PullRequest
0 голосов
/ 29 апреля 2019

Когда я играю в игру, мой скрипт получил ошибку, и мой джойстик просто работает в левом углу и может быть недоступен. Я получаю этот скрипт из Интернета, если вы знаете какие-либо другие скрипты, которые работают должным образом, пожалуйста, помогите. Я пытался заставить плеер двигаться влево и вправо, но он не работает с кнопками. Я нашел только скрипты с Rigidbody2d, а мой - 3d

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

public class Player_Move : MonoBehaviour
{
    public Transform player;
    public float speed = 5.0f;
    private bool touchStart = false;
    private Vector2 pointA;
    private Vector2 pointB;

    public Transform FixedJoystick;
   

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            pointA = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));

           
           FixedJoystick.transform.position = pointA * -1;
            GetComponent<FixedJoystick>().enabled = true;

        }
        if (Input.GetMouseButton(0))
        {
            touchStart = true;
            pointB = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
        }
        else
        {
            touchStart = false;
        }

    }
    private void FixedUpdate()
    {
        if (touchStart)
        {
            Vector2 offset = pointB - pointA;
            Vector2 direction = Vector2.ClampMagnitude(offset, 1.0f);
            moveCharacter(direction * -1);

           FixedJoystick.transform.position = new Vector2(pointA.x + direction.x, pointA.y + direction.y) * -1;
        }
        else
        {
            FixedJoystick.GetComponent<FixedJoystick>().enabled = false;

        }

    }
    void moveCharacter(Vector2 direction)
    {
        player.Translate(direction * speed * Time.deltaTime);
    }
}

Картинка перед началом игры Изображение после запуска игры

...