移动玩家,然后改变场景
本文关键字:改变 然后 玩家 移动 | 更新日期: 2023-09-27 17:50:07
我有一个问题。我希望如果玩家点击StudyOutDoor,首先物体移动到门口,然后在Unity中改变场景。下面是我的代码:
if (Physics.Raycast (clickPoint, out hitPoint)) {
if (hitPoint.collider.name == "StudyOutDoor") {
target.y = transform.position.y;
target.z = transform.position.z;
transform.position = Vector3.MoveTowards (transform.position, target, playerSpeed * Time.deltaTime);
sceneNumber = 3;
Application.LoadLevel("Corridor");
}
但它只是改变了场景,而没有移动到我说的位置。请帮助。
对象确实向门移动,你只是看不到它,因为你在同一帧中加载了新的关卡。具体发生了什么:
- 新帧开始
- 光线投射并击中
- 你分配目标位置
- 向目标位置改变变换位置
- 关卡开始加载
- 新帧开始
你想做什么:
- 新帧开始
- 光线投射和
- 你分配目标位置
- 向目标位置改变变换位置
- 新帧开始
- 重复步骤4。直到物体到达目标位置(持续许多帧)
- 当对象到达目标位置时,加载新关卡
伪代码:
update()
{
if( ray cast hit )
{
calculate target position
set flag to true
}
if( flag )
{
move object to target position
if( object reached target position )
{
load new level
}
}
}