コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】画面をランダムにクリックして UI をテストできるスクリプト

ソースコード

使い方

  • ゲームオブジェクトに上記のスクリプトをアタッチすると
    毎フレーム画面をランダムにクリックします
    • DontDestroyOnLoad が適用されたゲームオブジェクトにアタッチすると
      そのゲームオブジェクトが破棄されるまで画面をランダムにクリックします
  • RandomClickTester.Click 関数を呼び出すことで
    指定した座標をクリックすることができます
    • RandomClickTester.Click 関数を他のクラスから呼び出すことで
      画面をクリックするテストを自作することができます
  • RandomClickTester.Click 関数に predicate を指定すると
    特定のゲームオブジェクトは無視することができます
    • 例えば名前に「Debug」と含まれているゲームオブジェクトは無視する場合は
      Click( x, y, go => !go.name.Contains( "Debug" ) ); のように記述します
  • このスクリプトでクリックできるのは
    IPointerClickHandler が実装されている UI のみになります
    • IPointerDownHandler などで入力判定を行っている UI はテストできません
  • RandomClickTester.Click 関数に指定する座標を UI オブジェクトの position に設定する
    m_transform.position = new Vector3( x, y ); )と
    クリックした位置を可視化することができます

f:id:baba_s:20200305124243g:plain