Unity5で対象物を一定速度でドラッグ&ドロップ

Unity5で、タップした位置に対象物を移動。

タップした位置に、パズルのピースのようにものを移動する場合。

using UnityEngine;
using System.Collections;

public class dragSample : MonoBehaviour {
    float touchX;
    float touchY;

    void Update(){
        touchX = Input.mousePosition.x;
        touchY = Input.mousePosition.y;

        if(Input.GetMouseButton(0)){
            OnDrag();
        }
    }

    void OnDrag(){

        gameObject.transform.position = Vector3.MoveTowards (gameObject.transform.position,Camera.main.ScreenToWorldPoint(new Vector3(touchX,touchY,10.0f)), 0.1f);
    }
}

解説

  • Camera.main.ScreenToWorldでタップ位置の座標に変換
  • MoveTowordsで、対象物と、持って行きたい位置、それとそこまで移動する速度

マウスのドラッグ&ドロップするように移動する場合は、

MoveTowordsを除けばOK、下記のように。

transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touchX,touchY,10.0f));

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください