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

Texture.updateCount

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

public uint updateCount;

描述

每当 Texture 更新时,此计数器都会递增。

注意:如果从 GPU 端执行更新,则应自行递增计数器。(例如,当将内容blit到RenderTexture时)。(参见IncrementUpdateCount)。

using UnityEngine;
using System.Collections.Generic;

public class MyTextureCache { struct TextureCacheMeta { internal int index; internal uint updateCount; }

Dictionary<Texture, TextureCacheMeta> m_TextureMetas = new Dictionary<Texture, TextureCacheMeta>(); RenderTexture m_Cache;

public Texture cache { get { return m_Cache; } }

public int CacheTexture(Texture Texture) { var index = -1; TextureCacheMeta meta; if (m_TextureMetas.TryGetValue(Texture, out meta)) { if (meta.updateCount != Texture.updateCount) { // Texture has changed since last caching // So blit again into the cache Texture BlitTextureAt(meta.index, Texture); meta.updateCount = Texture.updateCount; m_TextureMetas[Texture] = meta; } } else { index = GetNextIndex(); if (index < 0) { Debug.LogError("Invalid index"); return -1; }

m_TextureMetas[Texture] = new TextureCacheMeta { index = index, updateCount = Texture.updateCount }; } return index; }

void BlitTextureAt(int index, Texture Texture) { /* copy pixels in cache */ } int GetNextIndex() { return -1; /* Get next index to use in the cache */ } }