版本: Unity 6 (6000.0)
语言English
  • C#

QualitySettings.streamingMipmapsRenderersPerFrame

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册
public static int streamingMipmapsRenderersPerFrame;

描述

计算应流式传输哪些纹理mipmap级别时,每帧处理的渲染器实例数。

如果渲染器数量超过此限制,则与这些额外渲染器关联的纹理的mipmap级别将在后续帧中计算。

降低此值可降低计算最佳mipmap级别的CPU成本。权衡是,较低的值还会降低纹理mipmap计算的速度以及加载这些所需mipmap的速度。

默认情况下,初始值为 512,但可以在编辑器**项目设置**窗口的**质量**部分的**纹理** > **Mipmap 流式传输**下进行设置。

注意:不要在运行时过于频繁地更改streamingMipmapsRenderersPerFrame。您应该在更改之间留出足够的时间以处理所有渲染器。更频繁地更新此值会导致未使用的mips保持加载状态。以下示例说明了如何计算更改之间延迟的帧数

using System.Collections;
using UnityEngine;
public class Example : MonoBehaviour
{
    int nextUpdateAllowed = 0;
    int _renderersPerFrame;

// Increase this value when frame rate is high, lower when frame rate drops) public int RenderersPerFrame { get { return QualitySettings.streamingMipmapsRenderersPerFrame; } set { _renderersPerFrame = value; StopCoroutine("UpdateRenderCount"); StartCoroutine("UpdateRenderCount"); } }

IEnumerator UpdateRenderCount() { while (Time.frameCount < nextUpdateAllowed) yield return null;

QualitySettings.streamingMipmapsRenderersPerFrame = _renderersPerFrame; int frameDelay = (int)(Texture.streamingRendererCount + (ulong)(_renderersPerFrame - 1)) / _renderersPerFrame; nextUpdateAllowed = Time.frameCount + frameDelay;

yield return null; } }

其他资源:Texture.streamingRendererCount