2

unity部分文章为学习记录,理解不是很深刻,主要用于自我学习总结,如果有纰漏请大佬轻喷。


一、通过position属性实现物体的运动

1、update循环中调用Vector3.movetowards,直接设置物体的position

输入的参数 终点位置、速度
使用场景 知道终点坐标
运动类型 匀速运动

示例代码:

//target [Vector3]  终点的position
//Speed  [float]  匀速移动的速度,可以设为5.0f  

void Update(){
    transform.position = Vector3.MoveTowards(transform.position, target, Time.deltaTime * Speed);
}

2、update 循环中调用Vector.Lerp,直接设置物体的position

输入的参数 终点位置、速度
使用场景 知道终点坐标
运动类型 运动会越来越慢
//target [Vector3]  终点的position
//Speed  [float]  匀速移动的速度,可以设为5.0f   

void Update(){
    transform.position = Vector3.Lerp(transform.position, target, Time.deltaTime * Speed);
}

3、transform的translate方法

输入的参数 运动的方向向量、速度
使用场景 不知道终点坐标,会一直运动下去
运动类型 匀速运动
//direction [Vector3]  运动的方向,可以设为(0,0,1)
//Speed  [float]  匀速移动的速度,可以设为5.0f 

void Update(){
    transform.Translate(direction * Speed * Time.deltaTime);
}

二、基于刚体,通过力、加速度实现物体的运动

正在学习中


曾广营
1.9k 声望193 粉丝

学习unity、laya、3dmax中