2017-05-20 16 views
0

私はタッチドラッグを実装しました。Unityのタッチで2Dオブジェクトを水平方向に移動したい

しかし、私は水平にしか動かすことができません。

私はそれをifに制限することを期待しますが、それ以降は何をすべきかわかりません。

ここに私のコードです。

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

public class Draggable : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler 
{ 

    public void OnBeginDrag (PointerEventData eventData) 
    { 
     Debug.Log ("OnBeginDrag"); 
    } 

    public void OnDrag (PointerEventData eventData) 
    { 
     Debug.Log ("OnBeginDrag"); 
     //this.transform.position = eventData.position; 
     GetComponent<Transform>().position = eventData.position; 
    } 

    public void OnEndDrag (PointerEventData evnetData) 
    { 
     Debug.Log ("OnEndDrag"); 
    } 
} 

答えて

1

変換のためにGetComponentを呼び出す必要はありません。 使用しているコードが機能していて、水平方向のドラッグが必要な場合は、このようなものが動作するはずです。

var currentPos = transform.position;  
transform.position = new Vector3(eventData.position.x, currentPos.y, currentPos.z); 
+0

コードをC#に変更できますか? –

+0

このコードはC#です。あなたはおそらくvarに間違っているでしょう。必要に応じて、var-> Vector3を変更することができます。 –

関連する問題