私はあなたがあなたのコードのどこにでも電話する必要があることに同意しません。ユーザーが行うことができるのは、キーボードのキーを押す(ゲームパッドやコントローラーもカウントする)か、マウスを動かすことです(モバイルマウスでも同様に動作します)。したがって、次のような単一のクラスがある場合は、
using UnityEngine;
public class TestInActive : MonoBehaviour {
private Vector3 prevMousePosition = Vector3.zero;
void ShowGameHintInvoke()
{
CancelInvoke();
Invoke("GameHint", 5);
}
void GameHint()
{
Debug.Log("This is a Hint");
}
// Update is called once per frame
void Update() {
if (Input.anyKeyDown || Input.mousePosition != prevMousePosition)
ShowGameHintInvoke();
prevMousePosition = Input.mousePosition;
}
}
うまくいくはずです。これは、ユーザーが5秒間非アクティブになった後に、ShowGameHintInvoke()を1回呼び出します。その後、ユーザーが何かをするまで、再び呼び出されません。
答えに正しいと印を付けてください、2つの正しいものがあります... – matiaslauriti