2016-06-23 15 views
2

C#言語を使用してUnityで自分の関数に遅延を与えようとしました。 Invokeを使用することで、カーソルが特定の領域に移動したときに遅延を追加することができました。しかし、カーソルがその特定の領域から移動されたときに、Invokeを取り消す必要があります。アイデアは、誤ってカーソルをその領域に移動すると、そこに呼び出されている機能があれば取​​り消すことができます。 ここに私の現在のコードがあります。起動関数の有効化と無効化

void SceneCall(){ 
    Application.LoadLevel (MainMenu); 
} 

void SceneCallIn(){ 
    Invoke ("SceneCall", 3f); 
} 
if (_newGameButton.Contains (Event.current.mousePosition)) { 
     SceneCallIn(); 
    } 

私は他のCancelInvoke()を使用することを試みたが、それも私がその後_newGameButtonに私のカーソルを移動すると、もう起動したくありません。 Invokeを取り消してもう一度起動しますか?お返事ありがとうございます〜

EDIT:Like @Programmerはコメントで、私がしたいことは、私のマウスが特定の位置にあるときにタイマがカウントを開始するときです。 3秒後に MainMenuシーンがロードされます。タイマーがカウントしている間にポインタがその特定の位置から離れると、タイマーを止めたいので、MainMenuシーンをもう読み込まないようにします。

+0

ええと、「呼び出し」をもう一度呼び出すと、もう一度呼び出します。問題ありません。 – Fattie

+0

解決方法:** Debug.Log( "a")を追加します。 Debug.Log( "b"); Debug.Log( "c"); **の3行のコード行を使用すると、何が起きているか把握することができます。それはあなたが知っている "あなたが気づいていない"何かをしている可能性がありますか? – Fattie

+0

if(_newGameButton.Contains(Event.current.mousePosition))の下のelse {}の後にCancelInvoke()を置くのに正しいことをしましたか?カーソルを_newGameButtonに移動する前でも即座にInvokeをキャンセルするからです。 – Mikuriin

答えて

4

あなたが本当にそうで、 "ロールオーバー" としてい

したい場合は、ここで

がいっぱい、合計、チュートリアルです:それは美しく書かれている

https://stackoverflow.com/a/36046495/294884

。投票してください:)

あなたは本当にあなたがそれを行う前に、すべてのことに完全に熟練しなければなりません。

でも、私は再びあなたを伝える必要があります。今、15年間

........あなた決して、これまで - EVER !! - インタフェースで何らかの理由でロールオーバーを使用する。

あなたはしないでください。それはあなたの時間の信じられないほどの無駄です!

あなたのゲームで楽しいものを吹き飛ばすことに戻ってください!

3

私は同じ問題を昨日直面しましたが、私は単に呼び出しメソッドを再度呼び出して解決しました。ここで

は私のコードです:あなたは複数のメソッドを登録したい場合は、すべてのメソッドを削除することができますので、あなたは、 List<String> myMethodsのいくつかの並べ替えを保存する必要がありますあなたの場合は

public void OnGazeEnter() 
{ 
    InvokeRepeating("OnGazeStay", 0.0f, 1.0f/30.0f); 
} 
public void OnGazeExit() 
{ 
    CancelInvoke("OnGazeStay"); 
} 

ことあなたが登録しました。

+1

が、これは全く正しいです。私は両方にDEBUG.LOG文を追加するように促します。 – Fattie

+0

デバッグが明確な方法にはあるので、私は同意しますあなたのアルゴリズムの流れと内部状態 –

+1

はありがとうを理解@RonaldoFelipeそれは私がちょうどあなたは、次の3つの機能を使用実現働いている:!。。 'OnGazeEnter'、' OnGazeStay'、と 'OnGazeExit'が判明、私は2つだけを使用し、それはしなかった理由です – Mikuriin

関連する問題