【发布时间】:2022-01-11 02:14:54
【问题描述】:
就我对 Slerp 的理解而言,这就是我应该使用 Vector3.Slerp 函数的方式。我想从start 点发射一个球体到target 点并围绕middle 旋转。
using UnityEngine;
public class Projectile : MonoBehaviour
{
public Vector3 start;
public Vector3 target;
public Vector3 middle;
public float flyTime;
float launchTime;
void Start()
{
launchTime = Time.time;
}
void Update()
{
float percentage = (Time.time - launchTime) / flyTime;
transform.position = Vector3.Slerp(start - middle, target - middle, percentage) + middle;
}
}
问题是,对象将沿中间的上轴旋转,而不是像我在 YouTube 上看到的教程中看到的那样沿右轴旋转。
这是预期的轨迹:
这就是我的代码遵循的轨迹:
【问题讨论】:
-
为什么不改用
RotateAround?