您可以使用类似什么是对这个答案http://answers.unity3d.com/questions/567432/click-and-drag-script.html
void OnMouseDown() {
_lockedYPosition = screenPoint.y;
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
Screen.showCursor = false;
}
void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
curPosition.x = _lockedYPosition;
transform.position = curPosition;
}
void OnMouseUp()
{
Screen.showCursor = true;
}
这里重要的是要了解使用的鼠标功能写入。当在某个对撞机上检测到某些鼠标输入时,会调用这些函数。所以你需要一个附加在game脚本上的碰撞器,这个脚本就是这样的。例如,当按下按钮时,OnMouseDown被调用,只有一次,OnMouseDrag被调用每一帧,该按钮仍然被按下,并且OnMouseUp仅在用户释放按钮时调用一次。
看看文档,这些方法有很好的描述和解释!
测试的代码,我得到分号的错误,我通过将半冒号2个载体3的,但以后解决这些问题:我得到一个错误的所有的“空洞”的。它说'空'不是一个有效的宏。我试图修复错误,但新的不断新芽... – ShowmenTv 2014-09-24 04:14:15
另外,我用我的游戏锁定相机,你的代码会影响我的相机,并不能删除相机代码? – ShowmenTv 2014-09-24 04:15:24
这不是完整的代码。这只是您如何使用这些方法获取鼠标事件的示例。你正在使用UnityScript。这些例子是C#。完整的代码在链接上的答案。如果您对Unity不熟悉,请尝试使用这些方法来了解它们的工作方式。如果您只是复制并粘贴代码,您将始终遇到错误。附加一个脚本到一个gameObject,附加一个碰撞器,并在脚本写入函数OnMouseDown(){Debug.Log(transform.position)}中,你应该看到在控制台上打印的对象的位置 – limoragni 2014-09-24 16:05:51