こんにちは、Unityエンジニアのオオバです。
Unityアセットストアには2013年頃から存在するTouchScript。
手軽にタップやドラッグ、ピンチインアウトなどの特にモバイルデバイスではよく必要とされるが、実装するのは少し面倒くさい、これらの機能をお手軽に追加することが出来るヘルパーアセットです。
TouchScript | Input Management | Unity Asset Store
オオバが最後に触ったのは2014年頃。
久々にTouchScriptを導入する機会があり、その際にハマったポイントがあったので共有しておきます。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
実機ビルドでコケる
ヌルヌルとUnityエディタ上では気持ちよく動く状態まで実装しました。
ただ、ピンチインアウトなどは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定義
Window > TouchScript > Settingsを実行すると、TouchScriptの設定画面が表示されます。
この設定画面で上図のように、Enable Debug Modeにチェックを入れると、
TOUCHSCRIPT_DEBUG
シンボルが定義されてしまいます。 このように。
まとめ
良かれと思ってデバッグモードにしましたが、実機ビルド時はTOUCHSCRIPT_DEBUGは外しましょう。
以上
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいUnityライフをお過ごしください。
- Unity2018.3.2f1
- TouchScript 9.0
- iOS 12.1.2 iPhone6s