我想在Unity中通过触摸水平移动2d对象

时间:2017-05-20 09:26:31

标签: c# unity3d

我实施了一次触摸拖动。

但我不能只是横向移动。

我希望将其限制为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 个答案:

答案 0 :(得分:1)

您无需调用GetComponent进行转换。 如果您使用的代码有效并且您只想要横向拖动,那么这样的事情应该可行。

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