C# - 鼠标拖动游戏对象跟随单个轴上的鼠标。 2D

时间:2016-08-21 07:39:22

标签: c# unity3d drag-and-drop

当我尝试创建一个2D游戏时,当用户拖动对象时,游戏对象应该在单个轴(x轴)上跟随鼠标。

  1. 起点enter image description here

  2. 当我感动时,它不应该上升或下降。 enter image description here

  3. 这是我的代码,问题是,游戏对象跟随我拖动的鼠标。

    using UnityEngine;
    using System.Collections;
    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("OnDrag");
    
            this.transform.position = eventData.position;
        }
    
        public void OnEndDrag(PointerEventData eventData)
        {
            Debug.Log("OnEndDrag");
        }
    }
    

1 个答案:

答案 0 :(得分:1)

您当前正在使用this.transform.position = eventData.position;更改所有轴(x,y,z)。仅更改x轴。仅使用eventData.position.x

public void OnDrag(PointerEventData eventData)
{
    Debug.Log("OnDrag");
    Vector3 tempPos = this.transform.position;
    tempPos.x = eventData.position.x;
    this.transform.position = tempPos;
}