直接代码:
public Vector3 fristPos;//接触时的position
public Vector3 twoPos;//移动后的position
public float speet=1.0f; //移动速度
void Update ()
{
float moveY = 0;// 上下移动的速度
float moveX = 0;//左右移动的速度
if(Input.GetTouch(0).phase==TouchPhase.Began)
{
//获取接触屏幕的坐标
fristPos=Input.GetTouch(0).position;
}
//判断移动
if(Input.GetTouch(0).phase==TouchPhase.Moved)
{
//获取在屏幕上移动后的坐标
twoPos=Input.GetTouch(0).position;
//判断向上移动,并且不出上方屏幕
if(fristPos.y<twoPos.y && Camera.main.WorldToScreenPoint(transform.position).y<Screen.height)
{
moveY +=speet*Time.deltaTime;
}
//判断向下移动,并且不出下边屏幕
if(fristPos.y>twoPos.y && Camera.main.WorldToScreenPoint(transform.position).y>0)
{
moveY -=speet*Time.deltaTime;
}
//判断向左移动,并且不出左边屏幕
if(fristPos.x>twoPos.x && Camera.main.WorldToScreenPoint(transform.position).x>0)
{
moveX -=speet*Time.deltaTime;
}
//判断向右移动,并且不出右边屏幕
if(fristPos.x<twoPos.x && Camera.main.WorldToScreenPoint(transform.position).x<Screen.width)
{
moveX += speet*2.0f*Time.deltaTime;
}
//改变物体坐标
transform.Translate(moveX,moveY,0);