首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Texture2D列表

Texture2D列表
EN

Stack Overflow用户
提问于 2021-03-02 20:51:59
回答 1查看 26关注 0票数 0

我正在创建一个简单的游戏,需要捕获从网络摄像头的照片,每次用户点击一些对象。为了避免由于将Texture2D转换为PNG并将图像写入磁盘的任务而出现滞后问题,我尝试存储捕获的Texture2D列表,并在游戏结束后将所有内容写入磁盘。

问题是,当我从摄像头捕获一个Texture2D texture并尝试执行List.Add(texture)时,列表中的所有元素都会更新,因为它存储的是texture的引用,而不是纹理本身。有没有人可以推荐一种存储所有纹理的替代方案?

编辑:插入代码。

代码语言:javascript
复制
public class GetPhoto : MonoBehaviour
{
WebCamTexture webcam;
Texture2D photo;
List<Texture2D> photos;

IEnumerator TakePhoto()
{
    //run when user click on object.
    yield return new WaitForEndOfFrame();
    photo.SetPixels(webcam.GetPixels());
    photo.Apply();
    photos.Add(photo);
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 21:47:14

如上所述,对每个媒体都使用一个新的Texture2D实例,例如

代码语言:javascript
复制
IEnumerator TakePhoto()
{
    //run when user click on object.
    yield return new WaitForEndOfFrame();
    var photo = new Texture2D(yourTextureWidth, yourTextureHeight);
    photo.SetPixels(webcam.GetPixels());
    photo.Apply();
    photos.Add(photo);
}

否则,每次覆盖实例的内容时,列表中的每个条目都引用完全相同的Texture2D实例=>。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66439768

复制
相关文章

相似问题

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