求大神帮忙看看, unity球形插值问题
public Transform sunrise;
public Transform sunset;
public float journeyTime = 1.0F;
private float startTime;
void Start() {
startTime = Time.time;
}
void Update() {

    Vector3 center = (sunrise.position + sunset.position) * 0.5F;
    Debug.DrawLine (center, center+new Vector3(0, 1, 0));
    Debug.Log (center);
    center -= new Vector3(0, 1, 0);
    Debug.Log (center);
    Vector3 riseRelCenter = sunrise.position - center;
    Vector3 setRelCenter = sunset.position - center;
    float fracComplete = (Time.time - startTime) / journeyTime;
    transform.position = Vector3.Slerp(riseRelCenter, setRelCenter, fracComplete);
    transform.position += center;
}

这个代码怎么不直接插值, 非得找个中心点,跟直接进行球形插值有什么区别

2个回答

qq_37296877
qq_37296877 这都是你收藏的?
2 年多之前 回复
qq_37296877
qq_37296877 谢了, 我看看
2 年多之前 回复

Vector3 riseRelCenter = sunrise.position - center;还有这一句
sunrise是相对于原点的向量
center也是相对于原点
riseRelCenter是以center为起点 sunris。position为终点的向量,起点已经不是原点了

而插值是相对于原点的吧?
这两个量都不是以原点为起点的,怎么实现的插值呢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!