void Update()
{
if (Input.GetMouseButtonDown (0)) {
isMouseDown = true;
}
if (Input.GetMouseButtonUp (0)) {
isMouseDown = false;
lastMousePositon=Vector3.zero;
}
if (isMouseDown && GameManager._instance.gameState==GameState.Running) {
if(lastMousePositon!=Vector3.zero)
{
Vector3 offset = Camera.main.ScreenToWorldPoint(Input.mousePosition)-lastMousePositon;
transform.position=transform.position+offset;
checkPosition(); //检查精灵有没有越界
}
lastMousePositon=Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
}
解析:游戏对象跟着鼠标滑动方向和距离而滑动相同的距离,其中Camera.main.ScreenToWorldPoint(Input.mousePosition)是转换坐标,offset就是滑动的位移,lastMousePositon是记住上一次坐标的位移