【源码】Unity3D编程实现鼠标拖拽对象移动?
1、1. 打开软件,创建工程如下图所示。

2、2. 下载链接: https://pan.baidu.com/s/18azxcjmHVPQTo1ryc-zF3Q 密码: a5zd 中的包文件,并导入到unity3D中,参考经验如下;或者参考创建工程和代码的经验:

3、3. 双击脚本文件TestOnMouse,改写代码如下,并保存:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using UnityEngine.EventSystems;
public class TestMouseDrag : MonoBehaviour
{
private bool isMouseDrag;
Vector3 pos;
public Vector3 screenPosition;
public Vector3 offset;
void Start()
{
isMouseDrag = false;
}
void OnMouseDown()
{
screenPosition = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z));
isMouseDrag = true;
}
void OnMouseDrag()
{
if (isMouseDrag)
{
//Debug.Log("开始拖拽了");
Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenSpace) + offset;
gameObject.transform.position = currentPosition;
}
}
void OnMouseUp()
{
isMouseDrag = false;
}
}

4、4. 将步骤三中的脚本拖拽到下图所示的Button对象的Inspector面板上。

5、5. 点击Unity3d的运行按钮或者使用快捷键Ctrl+p

6、6. 显示的结果如下图所示。(动图)

7、如果您觉得有用,记得在下方点击投票、点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的支持才是小编继续努力的动力,么么哒。
