unity3d 2D平面游戏实现鼠标拖拽物体移动 50

继鼠标点击物体按住鼠标,拖动到指定位置后放开鼠标,物体停留在鼠标放开位置!... 继鼠标点击物体 按住鼠标,拖动到指定位置后放开鼠标,物体停留在鼠标放开位置! 展开
 我来答
爱吃雪龙果
2017-03-12 · TA获得超过1152个赞
知道小有建树答主
回答量:1298
采纳率:0%
帮助的人:539万
展开全部
呃..以前做过..代码找不到了..
跟你说下思路吧..

鼠标拖动的操作是由三个时间组成的..

鼠标按住 鼠标移动 鼠标松开.

定义一个公用变量.
鼠标按住的时候,..变量为true
松开的时候..变量为false
而鼠标移动的时候,,必须为true才可以使对象移动..
移动时先计算鼠标到父窗口的相对位置,和对象的相对位置然后得到相差值..之后鼠标移动的时候获取到的鼠标位置加上或者减去这个相对值就是对象应该在的位置..
追问
用playmaker 能实现不 给点思路谢谢了!
SaberO_o_
2017-12-05
知道答主
回答量:1
采纳率:0%
帮助的人:925
展开全部
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;


public class PictureMove : MonoBehaviour,
IBeginDragHandler,IDragHandler

{
private Vector3 offset;//物体与鼠标点击处的差值
private Vector3 mousePos;//鼠标位置
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

}
#region IBeginDragHandler implementation
//准备拖拽接口
public void OnBeginDrag (PointerEventData eventData)
{

//获取鼠标位置
mousePos=Input.mousePosition;
//获取鼠标位置与图片位置的偏移量
offset=transform.position-mousePos;
}
#endregion
#region IDragHandler implementation
//拖拽接口
public void OnDrag (PointerEventData eventData)
{
//图片随鼠标移动
transform.position= Input.mousePosition + offset;
}

#endregion


}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式