qq_37296877
2017-05-18 13:42
采纳率: 61%
浏览 1.1k
已采纳

求大神帮忙看看, 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条回答 默认 最新

  • devmiao 2017-05-18 16:52
    已采纳
    点赞 打赏 评论
  • qq_37296877 2017-05-19 08:59

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

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

    点赞 打赏 评论

相关推荐 更多相似问题