個人ゲームアプリ制作 -
unityによるゲーム制作

リリースアプリ一覧

unity2D


[Unity2D]ボタンのタップと長押しを検知する

タップするとアイテムを使用し、長押し中はアイテムの詳細を表示する用のプログラムを比較的簡単に実装。

ButtonコンポーネントのOnClickはEventTriggerのPointerUpの処理と多分同じなので、ButtonオブジェクトにEventTriggerコンポーネントをAddし、PointerDownイベントを設定する。

ItemInfo関数をPointerDownイベントに設定。後は各Debug.Logの場所に処理を記述するとタップした時にアイテムを使用し、0.5秒以上Buttonを押している時に詳細ウィンドウが現れる。

長押しの時間を調整する場合は、pushTimeの条件式を変更すればOK。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ItemUse : MonoBehaviour {

	private bool windowOn;
	private bool push;
	private float pushTime;

	void Update(){
		if(push == true){
			Debug.Log("押している");
			pushTime += Time.deltaTime;

			if(pushTime > 0.5f && windowOn == false){
				Debug.Log("ウィンドウ開く");
				windowOn = true;

			}
		}
	}

	public void Use(){
		if(pushTime < 0.5f){
			Debug.Log("アイテムを使用する");
			push = false;
			pushTime = 0;
		}else{
			Debug.Log("ウィンドウを閉じる");
			push = false;
			pushTime = 0;
			windowOn = false;
		}
	}

	public void ItemInfo(){
		Debug.Log("ボタンを押した");
		windowOn = false;
		push = true;
	}
}

2017 / 09 / 04
unity2D
C#

スポンサーリンク

© 2018 Takahiro Ueda