Почему не работают события нажатия мышки в Unity

210
14 ноября 2021, 15:30

Использую функцию OnMouseDown и OnMouseUp, пишу Debug.Log, а ничего не выводится. Также с кодом, он не работает, хотя все было выполнено верно.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
    bool MouseOn = false;
    void Start () {
    }
    void OnMouseDown()
    {
        MouseOn = true;
    }
    void OnMouseUp()
    {
        MouseOn = false;

    }
    // Update is called once per frame
    void Update () {
        Vector3 Cursor = Input.mousePosition;
        Cursor = Camera.main.ScreenToWorldPoint(Cursor);
        Debug.Log(Cursor);
            if (MouseOn)
        {
            Cursor.z = 0;
            this.transform.position = Cursor;
        }
    }
}
Answer 1

Читайте документацию. OnMouseDown вызывается, когда пользователь нажимает кнопку мыши, находясь над элементом GUIElement или Collider. Это событие отправляется всем сценариям коллайдера или GUIElement.

void Update () {
    if (Input.GetMouseButtonDown(0)) { }
    if (Input.GetMouseButtonUp(0)) { }
}

Событие нажатия левой кнопки мыши.

READ ALSO
Выполнение функции по таймеру

Выполнение функции по таймеру

Как можно сделать выполнение функции по таймеру? При этом нужно передавать в функцию несколько аргументов

182
Не обновляется свойство класса

Не обновляется свойство класса

Только сейчас заметил, что C# не обновляет свойства классов, в реальном времениЕсть свойство в классе Str:

148
Не работает выбор контролов с DockStyle.Top

Не работает выбор контролов с DockStyle.Top

У меня есть панель с контролами, у некоторых Dock = DockStyleTop, у некоторых Bottom

167
не срабатывает Picturebox_DragEnter

не срабатывает Picturebox_DragEnter

вроде все правильно написал, но Drag enter не работаетallowdrop где находится я не нашел что можно сделать?

222