LemonteaのUnity部屋

UnityとかC#のおはなしです~

Unityでオブジェクトを簡単にドラッグする

 

 

youtu.be


こんにちは。レモンティーです。
今回は前回の記事の続きです。

sawalemounity.hatenablog.com

これを使って、オブジェクト(今回はCube)をドラッグで移動できるようにしてみましょう。


やることは


① タップした場所に動くスクリプトをCubeにアタッチ

② ↑を、EventTriggerでCubeがドラッグされた時に呼び出す

だけです!
さっそくやってみましょう




タップしている場所に移動するスクリプトです。
瞬間移動ですが、このドラッグなら自然に見えます。

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

public class DragTest : MonoBehaviour {

 public void OnDrag()
    {
        Vector3 TapPos = Input.mousePosition;
        TapPos.z = 10f;
        transform.position = Camera.main.ScreenToWorldPoint(TapPos);
    }
}

これをCubeにつけておきます。


次に、EventTriggerのAdd New Event TypeからDragを選択します。
ここに指定したメソッドがDrag中呼ばれます。
後は、呼び出すメソッドを選ぶだけです。
今回は、CubeのDragTestスクリプトのOnDragメソッドなので、
↓のようになります。
f:id:sawalemontea:20170726163914p:plain


これでドラッグの完成です!

動かなかった人は、前回の記事を参考に
Eventsystemはあるか、CameraにRaycasterはついているか
あたりをチェックしてみてください

今回はこれで終ります。



関連

どこをタップしてもドラッグする
sawalemounity.hatenablog.com


スクリプト解説
sawalemounity.hatenablog.com
sawalemounity.hatenablog.com