【源码】Unity3D编程实现鼠标拖拽对象移动?

2025-10-27 15:26:36

1、1.   打开软件,创建工程如下图所示。

【源码】Unity3D编程实现鼠标拖拽对象移动?

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

【源码】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;

}

}

【源码】Unity3D编程实现鼠标拖拽对象移动?

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

【源码】Unity3D编程实现鼠标拖拽对象移动?

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

【源码】Unity3D编程实现鼠标拖拽对象移动?

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

【源码】Unity3D编程实现鼠标拖拽对象移动?

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

【源码】Unity3D编程实现鼠标拖拽对象移动?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢