2016-07-04 5 views
1

Playerがジャンプできるメニューシーンがあります。実際のゲームが始まる前に楽しく過ごすために。ゲームはUIボタンをクリックすることから始まります。しかし、ボタンをクリックすると、新しいシーンがロードされる直前にPlayerがジャンプします。私はそれを防止したい。だから私は、私のジャンプの前に、ボタンがクリックされていなければ、チェックしなければならない。どのようにそれを行うにはどのようなアイデア?ボタンがクリックされるとユニティジャンプが発生します

私は静的変数で試しました。しかし問題は、ジャンプ機能を呼び出すスクリプトが最初に実行されることです。 Buttonscriptの前で変数をfalseに設定できます。

void Update() 
{ 
    isGrounded = Physics2D.OverlapCircle(GroundCheck1.position, 0.15f, groundLayer); 

    // Here I want to check if the click doesnt hit a button 
    if (Input.GetMouseButtonDown(0) && isGrounded) 
    { 
     GetComponent<AudioSource>().Play(); 

     // Here I set Jump to true, so my FixedUpdate Method can execute the Jump 
     jump = true; 
    } 
} 

答えて

1

非常にシンプル。

チェックマウスは、GUI要素の上にある場合:

EventSystem.current.IsPointerOverGameObject()

ので

if (Input.GetMouseButtonDown(0) 
&& isGrounded 
&& !EventSystem.current.IsPointerOverGameObject()) 

これは、彼らがマウスをクリックすると場合、彼らはGUI要素の上にいなかったことを確認するチェックプレイヤーはジャンプすることができます。

このような大きな条件文を取得した場合は、ヘルパーメソッドに分割することをお勧めします。

+0

ありがとうございます!シンプルなのです.-しかし、私はUnityで開発し始めました。あなたはたくさん助けてくれました。私はできるだけ早くこれに答えてマークします。 (7分遅れ) – DannielR

関連する問題