こんにちわ、Unityエンジニアのオオバです。

Unityアセットストアには2013年頃から存在するTouchScript。
手軽にタップやドラッグ、ピンチインアウトなどの特にモバイルデバイスではよく必要とされるが、実装するのは少し面倒くさい、これらの機能をお手軽に追加することが出来るヘルパーアセットです。

TouchScript | Input Management | Unity Asset Store

オオバが最後に触ったのは2014年頃。

久々にTouchScriptを導入する機会があり、その際にハマったポイントがあったので共有しておきます。

📝 目次

実機ビルドでコケる

ヌルヌルとUnityEditor上では気持ちよく動く状態まで実装しました。
ただ、ピンチインアウトなどは2本の指で実際に触ってみないと良さはわかりませんので、実機ビルドは必須です。
早速手持ちのiPhone6sで試してみようとXcodeで実行してみると以下のエラー。

UnauthorizedAccessException: Access to the path "/var/containers/Bundle/Application/ ID/hoge.app/TouchEvents.bin" is denied.  
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00000] in :0  
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode) [0x00000] in :0  
  at TouchScript.Debugging.Loggers.FileWriterLogger..ctor () [0x00000] in :0  
  at TouchScript.Debugging.TouchScriptDebugger.ClearPointerLogger () [0x00000] in :0  
  at UnityEngine.ScriptableObject.CreateInstance[T] () [0x00000] in :0  
  at TouchScript.Debugging.TouchScriptDebugger.get_Instance () [0x00000] in :0  
  at TouchScript.Core.TouchManagerInstance.Awake () [0x00000] in :0  
  at UnityEngine.GameObject.AddComponent[T] () [0x00000] in :0  
  at TouchScript.Core.TouchManagerInstance.get_Instance () [0x00000] in :0  
  at TouchScript.Core.LayerManagerInstance.Awake () [0x00000] in :0  
  at UnityEngine.GameObject.AddComponent[T] () [0x00000] in :0  
  at TouchScript.Core.LayerManagerInstance.get_Instance () [0x00000] in :0  
  at TouchScript.Layers.TouchLayer.Awake () [0x00000] in :0  

原因はTOUCHSCRIPT_DEBUG定義

Unity TouchScriptの実機ビルドエラーにハマる_60

Window > TouchScript > Settingsを実行すると、TouchScriptの設定画面が表示されます。

Unity TouchScriptの実機ビルドエラーにハマる_63

この設定画面で上図のように、Enable Debug Modeにチェックを入れると、TOUCHSCRIPT_DEBUGシンボルが定義されてしまいます。

Unity TouchScriptの実機ビルドエラーにハマる_66

このように。

まとめ

良かれと思ってデバッグモードにしましたが、実機ビルド時はTOUCHSCRIPT_DEBUGは外しましょう。

以上

👉 オススメ記事

2021秋 Asset Refreshセール
100以上のアセットがなんと50%OFF!!オオバもいくつか買いました!
期間 : 10月2日午後3時59分まで

👩‍💻 検証環境