您当前的位置: 首页 >  unity
  • 4浏览

    0关注

    193博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

unity单指拖拽sprite

我寄人间雪满头丶 发布时间:2020-09-14 20:03:47 ,浏览量:4

拖拽物体,注意要添加Collider。原理很简单,就是让目标跟随当前手指位置加上按下时手指与目标间的offset(偏移)。

[RequireComponent(typeof(BoxCollider2D))]
public class OneFingerDragMove : MonoBehaviour
{
    public Transform target; //拖拽目标
    Vector3 offset;
    bool isInit;

    private void Start()
    {
        if (target == null)
            target = transform;
    }
    
    private void FixedUpdate()
    {
    	//防止和多指操作冲突
        if (Input.touchCount != 1)
            isInit = false;
        if (isInit)
            target.position = new Vector3(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position).x, Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position).y, 0) + offset;
    }

    private void OnMouseDown()
    {
        if (Input.touchCount == 1)
        {
            if (!isInit)
            {
                offset = target.position - new Vector3(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position).x, Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position).y, 0);
                isInit = true;
            }
        }
    }

    private void OnMouseUp()
    {
        isInit = false;
    }
}
关注
打赏
1648518768
查看更多评论
立即登录/注册

微信扫码登录

0.0583s