指定时间移动到目标位置

transform.position = Vector2.MoveTowards (transform.position,target.position,moveSpeed*Time.deltaTime);

所以指定时间达到目标位置就是反向操作了 

替换moveSpeed为

moveSpeed=(transform.position到target.position的距离)/你指定的时间; 

所以代码是这样的

publicTransform target;//目标位置

publicfloatdistance;//两个物体的距离

voidStart () {    distance = Vector2.Distance (transform.position,target.position);        }

voidUpdate () {transform.position = Vector2.MoveTowards (transform.position,target.position,(distance/1f)*Time.deltaTime);    }//我设置了1秒达到。所以如果用协程的话,做出两个方式,一下是摘自网络//在time时间内移动物体

privateIEnumeratorMoveObject(Vector3 startPos, Vector3 endPos,floattime){vardur =0.0f;while(dur <= time)        {            dur += Time.deltaTime;            transform.position = Vector3.Lerp(startPos, endPos, dur / time);yieldreturnnull;        } }//以指定速度speed移动物体privateIEnumeratorMoveObject_Speed(Vector3 startPos, Vector3 endPos,floatspeed){floatstartTime = Time.time;floatlength = Vector3.Distance(startPos, endPos);floatfrac =0;while(frac <1.0f)        {floatdist = (Time.time - startTime) * speed;            frac = dist / length;            transform.position = Vector3.Lerp(startPos, endPos, frac);yieldreturnnull;        }}


http://blog.csdn.net/vipzjh/article/details/52229220?locationNum=8

你可能感兴趣的:(指定时间移动到目标位置)