Unity中将⼀个物体移动⾄另⼀个物体,(完全重合)停⽌的
三种⽅法
1.创建cube,cube(1);
2.在cube创建脚本"Move";
第⼀个:
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour {
public GameObject cube1; //创建⼀个物体cube1,这个在⾯板上出现,把上⾯的cube(1)拖⼊进去, cube1就代表了cube(1);
// U this for initialization
void Start () {
}
sly// Update is called once per frame
void Update () {
Vector3 direction = ansform.position - transform.position; //cube1的坐标减去默认物体的坐标=得出⼀个向量,带数值和⽅向,所以移动的距离和⽅向就出来了,赋给类型为Vector3的direction,direction就代表了
transform.Translate(direction.*Time.deltaTime*1); //然后移动就⾏了
}
}
第⼆种⽅法:
using UnityEngine;reality
using System.Collections;
public class Move : MonoBehaviour {
public GameObject cube1; //创建⼀个物体cube1,这个在⾯板上出现,把上⾯的cube(1)拖⼊进去, cube1就代表了cube(1);
// U this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = Vector3.Lerp(transform.ansform.position,Time.deltaTime*2);
}
}
/
/Vectory3.Lerp的意思是差值,把2点之间的距离设定为0-1,值等于0.5就代表中间,0.7就代表⼗分之七的距离;
//然后这个=transform.position ,就不⽤写移动了,默认物体的位置直接就“过去”了。
第三种:
using UnityEngine;
using System.Collections;
tlcpublic class Move : MonoBehaviour {上海话翻译
payroll
public GameObject cube1; //创建⼀个物体cube1,这个在⾯板上出现,把上⾯的cube(1)拖⼊进去, cube1就代表了cube(1);
// U this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = Vector3.MoveTowards(transform.ansform.position,Time.deltaTime*2);opportunites
电气工程专业排名
} //MoveTowards:两点之间的距离设定为⼀个定数,只要要移动的点和⽬标点之间有距离,就⼀直移动下去,
}
只有第三种⽅法是匀速的,前两种都是先快后慢的。
第四种:
using UnityEngine;
punching
using System.Collections;
public class Move : MonoBehaviour {
public GameObject cube1;
public float smoothTime;
Vector3 sudu;
// U this for initialization
indemand
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = Vector3.SmoothDamp(transform.position, ansform.position, ref sudu,smoothTime);
} //平滑阻尼 返回值是Vectory3类型,需要先定义Vectory3的⼀个量sudu,
/
/smoothTime是在⾯板上可以赋值的,这个值⼤,后台的⾏进速度 sudu就⼩,这个sudu 不可以定义设置赋值。
}
这种也不是匀速的。
总结:
void Update () {
//Vector3 direction = ansform.position - transform.position;夹克的英文
transform.Translate(direction.*Time.deltaTime*1);
//transform.position =Vector3.MoveTowards(transform.ansform.position,Time.deltaTime*2);
//transform.position = Vector3.Lerp(transform.ansform.position,Time.deltaTime*2);
//transform.position = Vector3.SmoothDamp(transform.position, ansform.position, ref sudu,s
moothTime); }