首页 > 解决方案 > 为什么缩放变化非常缓慢?

问题描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Scale : MonoBehaviour
{
    public float duration = 1f;
    public Vector3 minSize;
    public Vector3 maxSize;
    public bool scaleUp = false;
    public Coroutine scaleCoroutine;
    public bool scalingHasFinished = false;
    public DepthOfField depthOfField;

    private void Start()
    {
        transform.localScale = minSize; 
    }

    private void Update()
    {
        if(depthOfField.depthOfFieldProcessEnded == true)
        {
            StartCoroutine(ScaleOverTime());
            depthOfField.depthOfFieldProcessEnded = false;
        }
    }

    public IEnumerator ScaleOverTime()
    {
        float counter = 0;
        Vector3 startScaleSize = transform.localScale;

        while (counter < duration)
        {
            counter += Time.deltaTime;
            transform.localScale = Vector3.Lerp(startScaleSize, maxSize, counter / duration);

            yield return new WaitForSeconds(duration);
        }

        scalingHasFinished = true;
    }
}

我希望它在 1 秒内从 minSize 扩展到 maxSize。但相反,它每 1 秒将比例更改 0.01,直到达到 maxSize。

它使整个缩放平滑了 1 秒。

标签: c#unity3d

解决方案


推荐阅读