
TOSHICHAN
Unityでスクリプト&簡単な実装サイト
オブジェクトがタッチされたら
※Rigidbodyを必ず付けること
void Start () {
GetComponent<Rigidbody>().isKinematic = true;
}
void Update () {
if(OnTouchDown()){
//タッチされた
}
}
//スマホ向け そのオブジェクトがタッチされていたらtrue(マルチタップ対応)
bool OnTouchDown() {
// タッチされているとき
if( 0 < Input.touchCount){
// タッチされている指の数だけ処理
for(int i = 0; i < Input.touchCount; i++){
// タッチ情報をコピー
Touch t = Input.GetTouch(i);
// タッチしたときかどうか
if(t.phase == TouchPhase.Began ){
//タッチした位置からRayを飛ばす
Ray ray = Camera.main.ScreenPointToRay(t.position);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit)){
//Rayを飛ばしてあたったオブジェクトが自分自身だったら
if (hit.collider.gameObject == this.gameObject){
return true;
}
}
}
}
}
return false; //タッチされてなかったらfalse
}