2016-12-22 4 views
0

У меня есть очень простой код, который, когда щелкнут объект (когда мышь идет от нажатой до неустановленной позиции), добавляет силу к объекту. В информации о OnMouseUp указано, чтоOnMouseUp работает только при щелчке по объекту

«Обратите внимание, что OnMouseUp вызывается, даже если мышь не находится над тем же GUIElement или Collider, что и нажатие мыши».

Это именно то, что я хочу. Я хочу, чтобы он активировался, если я нажимаю в любом месте экрана. Он работает только в том случае, если я нажимаю на объект. Я что-то не понимаю?

Вот общий код (очень простой):

public Rigidbody2D Player; 
private void OnMouseUp() 
{ 
    { 
     Debug.Log("Test"); 
     Player.AddForce(transform.up * 1000); 
    } 
} 

Спасибо,

+1

Я думаю, что это означает, что вы * действительно * должны нажать на объект, но вы можете отпустить кнопку мыши после перемещения его и до сих пор мышь вверх событие вызвало для этого объекта. – Charleh

+2

Ничего себе теперь, когда я читал это, это имеет смысл, и я чувствую себя глупым. –

+0

@JoeyVagedes Я также читал его неправильно! Я тоже чувствую себя немым = P –

ответ

2

Могу ли я что-то недоразумение?

Вы получили ответ на этот вопрос в разделе комментариев.

Я хочу, чтобы он активировался, если я нажимаю в любом месте экрана. Это только , если я нажимаю на объект.

OnMouseUp не используется для обнаружения щелчка в любом месте экрана. Вы должны использовать одну из функций Input.GetMouseButtonXX в функции «Обновить».

Ниже, вероятно, что вы ищете:

void Update() 
{ 
    if (Input.GetMouseButtonDown(0)) 
    { 
     Debug.Log("Test"); 
     Player.AddForce(transform.up * 1000); 
    } 
} 
+1

Да Кроме того, что я хочу, чтобы он был «Input.GetMouseButtonUp (0)», поскольку я хочу, чтобы часть «Вниз» сохраняла энергию, а затем высвобождала эту силу в силе , Но он работал отлично, как вы выразились. Спасибо! –

+0

Я вижу, что вы делаете. Хорошо, что вы обнаружили «Input.GetMouseButtonUp» из этого. Счастливое кодирование! – Programmer