首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lerp标度和Lerp位置GameObject在统一时如何在特定位置同时进行?

Lerp标度和Lerp位置GameObject在统一时如何在特定位置同时进行?
EN

Stack Overflow用户
提问于 2022-10-17 18:13:46
回答 1查看 32关注 0票数 0

我需要在与这部分代码同时进行缩放和定位GameObject,但是游戏对象比例尺首先设置位置。

代码语言:javascript
复制
    iTween.ScaleTo(gameObject, Scale, 1f);
    transform.localPosition = Vector3.Lerp(startPosition, positionToMoveTo, 1);

我也试着这样做:

代码语言:javascript
复制
IEnumerator LerpPosition(Vector3 targetPosition, float duration)
{
    // startPosition = transform.position;
    while (time < duration)
    {
        transform.localPosition = Vector3.Lerp(startPosition, targetPosition, time / duration);
        transform.localScale = Vector3.Lerp(transform.localScale, Scale, time / duration);

        time += Time.deltaTime;
        yield return null;
    }
    transform.position = targetPosition;
}

但我也得到了同样的结果。

实际上,我需要放大2D精灵的特定点,比如图像中的代码:

在这里输入图像描述

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-18 10:33:31

代码语言:javascript
复制
transform.localPosition = Vector3.Lerp(startPosition, positionToMoveTo, 1);

意味着忽略startPosition并立即跳转到positionToMoveTo。一般说来,我不会把两者混为一谈,决定两者之一。

在你的另一次尝试中,也有一些奇怪的事情

  • 您需要存储startPositionstartScale
  • 您曾经使用过localPosition,但是在开始和结束时切换到position (=绝对世界空间),这当然是完全不同的。

所以有点像。

代码语言:javascript
复制
IEnumerator LerpPositionAndScale(Vector3 targetLocalPosition, Vector3 targetLocalScale, float duration)
{
    var startPosition = transform.localPosition;
    var startScale = transfor.localScale;

    for(var timePassed = 0f; timePassed < duration; timePassed += Time.deltaTime)
    {
        var factor = timePassed / duration;
        // [optional] add ease-in and -out
        factor = Mathf.SmoothStep(0, 1, factor);

        transform.localPosition = Vector3.Lerp(startPosition, targetLocalPosition, factor);
        transform.localScale = Vector3.Lerp(startScale, targetLocalScale, factor);

        yield return null;
    }

    transform.localPosition = targetLocalPosition;
    transform.localScale = targetLocalScale;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74101462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档