void OnDrag(Vector2 delta)
{
Vector3 screenpos = Camera.main.WorldToScreenPoint(transform.position);//物体的世界坐标转化成屏幕坐标
Vector3 e = Input.mousePosition;//鼠标的位置
//当点击鼠标左键时
if (Input.GetMouseButton(0))
{
e.z = screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认值是0,所以需要一个z坐标
world = Camera.main.ScreenToWorldPoint(e);
world = new Vector3(world.x, world.y, 0f);
speed = 10f;
}
if (transform.position == world)
{
speed = 0;
}
else
{
//animation.Play("walk");//这是我自身带的一个默认动画,你可以把它删了
}
transform.position = world;
}
{
Vector3 screenpos = Camera.main.WorldToScreenPoint(transform.position);//物体的世界坐标转化成屏幕坐标
Vector3 e = Input.mousePosition;//鼠标的位置
//当点击鼠标左键时
if (Input.GetMouseButton(0))
{
e.z = screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认值是0,所以需要一个z坐标
world = Camera.main.ScreenToWorldPoint(e);
world = new Vector3(world.x, world.y, 0f);
speed = 10f;
}
if (transform.position == world)
{
speed = 0;
}
else
{
//animation.Play("walk");//这是我自身带的一个默认动画,你可以把它删了
}
transform.position = world;
}
本文介绍如何在Unity中实现物体的拖拽功能,通过获取鼠标位置并转换为世界坐标来更新物体的位置,同时考虑了速度控制及动画播放条件。
248

被折叠的 条评论
为什么被折叠?



