拖动是非常常用的功能,也非常容易实现,比如直接让物体坐标等于鼠标坐标等。本篇博客主要讲解如何实现拖拽并限制拖拽区域。 注意对象要加上collider2D。
public float limit = 5f;
public float speed = 2.5f;
Vector3 oriMousePos;
private void OnMouseDown()
{
oriMousePos = Input.mousePosition; //记录按下位置
}
private void OnMouseDrag()
{
//当前鼠标位置与初始鼠标点下位置的偏移量
var offset = (Camera.main.ScreenToWorldPoint(Input.mousePosition).x - Camera.main.ScreenToWorldPoint(oriMousePos).x) * speed;
//到达边界后执行,offset > 0是为了可以反向滑动
if (transform.position.x >= limit && offset > 0)
{
transform.position = new Vector3(limit, transform.position.y, transform.position.z); //锁定位置不可越过界限
oriMousePos = Input.mousePosition; //重置偏移,反向滑动可以立即生效
return; //停止移动
}
//同上
if (transform.position.x
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?