Сценарий ввода мыши Unity с определенной функцией работает только один раз - PullRequest
0 голосов
/ 26 апреля 2020
using System.Collections.Generic;
using UnityEngine;

public class HoldToMove : MonoBehaviour
{
    public bool holdEntered = false;
    private bool heldHeld = false;
    public Transform holdElevator;

    void Update()
    {
        if (heldHeld == true)
        {
            if (Input.GetAxis("Mouse Y") > 0)
            {
                holdElevator.transform.Translate(Vector3.forward * 10 * Time.deltaTime);
            }
            if (Input.GetAxis("Mouse Y") < 0)
            {
                holdElevator.transform.Translate(Vector3.back * 10 * Time.deltaTime);
            }
            if (Input.GetAxis("Mouse X") > 0)
            {
                holdElevator.transform.Translate(Vector3.right * 10 * Time.deltaTime);
            }
            if (Input.GetAxis("Mouse X") < 0)
            {
                holdElevator.transform.Translate(Vector3.left * 10 * Time.deltaTime);
            }
        }
        if (!Input.GetMouseButton(0))
        {
            heldHeld = false;
        }
    }

    void OnMouseEnter()
    {
        holdEntered = true;
        if (Input.GetMouseButton(0))
        {
            heldHeld = true;
        }
    }

    void OnMouseExit()
    {
        holdEntered = false;
    }
}

Так что я пытаюсь сделать так, чтобы, когда я удерживаю кнопку мыши после просмотра объекта, этот скрипт присоединяется к объекту, «holdElevator» должен двигаться с помощью мыши (что он делает), и когда я отпустите его, он останавливается (как я хочу), но проблема в том, что это работает только один раз, как мне это исправить?

1 Ответ

0 голосов
/ 30 апреля 2020
void OnMouseEnter()
{
    holdEntered = true;
    if (Input.GetMouseButton(0))
    {
        heldHeld = true;
    }
}

Это проблема. Он вызывается, когда мышь входит во что-то. Вы хотите сделать это, когда мышь на над этой штукой. Возможно OnMouseOver сработает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...