一个简单的实例,演示了如何使用Vector3.Lerp来实现物体在两个位置之间平滑移动的效果:
using UnityEngine;
public class ObjectMovement : MonoBehaviour
{
public Transform startPoint;
public Transform endPoint;
public float moveDuration = 2f;
private float elapsedTime = 0f;
private bool isMoving = false;
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && !isMoving)
{
StartMoving();
}
if (isMoving)
{
MoveObject();
}
}
private void StartMoving()
{
elapsedTime = 0f;
isMoving = true;
}
private void MoveObject()
{
elapsedTime += Time.deltaTime;
if (elapsedTime >= moveDuration)
{
// 移动完成
transform.position = endPoint.position;
isMoving = false;
}
else
{
// 在起始点和结束点之间平滑移动
float t = elapsedTime / moveDuration;
transform.position = Vector3.Lerp(startPoint.position, endPoint.position, t);
}
}
}
当按下space键的时候,正方形从开始点到结束点平滑移动,lerp函数不断生成中间经过的点
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
本文已收录于专栏 ⭐️ 《沈七杂谈》⭐️ 时间好快,转眼已经入职一个月了,实习要比想象的忙很多,所以一直没腾出时间写篇经验贴。 恰逢五一小长假,正好总结一下为在大二能找到实习所做一切的心路历程。 先简单介绍一下楼主,目前烂本大二在读,专业是软件工程。 在三月份…