11月
18
2013

iPhoneやAndroidでGUI Textureがタップされたことを検知する方法

PCでGUI TextureがクリックされたときはOnMouseDown()を使えばよいのですが、iPhoneやAndroidだとそれに相当するイベントがないみたいです。なので、iPhoneやAndroidでGUI Textureがタップされたことを検知するためには自前でコードを書く必要があります。

ググると、Raycastを使う方法やiPhoneInputを使う方法など色々見つかりますが、うまく動かなかったり、Andoroidに対応できないという問題があったりしました。

最終的に、GUI TextureのComponentに以下のコードを追加することでうまく処理することが出来ました。

if (Input.touchCount == 1) {
Touch touch = Input.GetTouch (0);
if (touch.phase == TouchPhase.Ended) {
if (guiTexture.HitTest(touch.position, Camera.main)) {
//タップされた時の処理
}

このコードはタッチが終了したときにタップ処理を実行します。もしタッチの開始から終了までの間ずっと処理を実行したい場合は、
touch.phase == TouchPhase.Ended

touch.phase == TouchPhase.Began || touch.phase == TouchPhase.Moved || touch.phase == TouchPhase.Stationary || touch.phase == TouchPhase.Ended
に変えるとよいです。

また、このままだとGUI Texture外でタッチを開始し、GUI Texture内でタッチを終了した時もタップ処理が実行されます。自分のアプリだと別にそれでもよいので上記のコードで対応しましたが、もっとちゃんと処理する場合は、以下のサイトを参考にしてください。

Unity3D:GUI Textureでボタンを作成(2)

Leave a comment

開発したiPhoneアプリ


印象派なう
印象派なう
写真を印象派風に加工するアプリ
写真46位 10万ダウンロード

一眼写真ビューワー
一眼写真の情報が見れるビューワー

どっちの絵が高い?
絵画クイズゲーム
ゲーム-トリビア1位

心霊写真合成カメラ
心霊写真を作るアプリ

簡単!比較明合成!
簡単に比較明合成写真を作れるアプリ

ワンパットゴルフ
パターゴルフゲーム

ボウリングパズル
全120ステージのボウリングゲーム

いい感じフリースロー
バスケットボールのフリースローゲーム

アイビューワ
目で操作する写真ビューワ
写真4位、総合58位

写真でリア充診断
写真を解析してリア充診断

大都会ゴルフ
大都会「札幌」を舞台にしたゴルフゲーム
ゲーム-スポーツ25位

ミュシャっぽく
ディープラーニングで写真をミュシャ加工