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

Mesh.isReadable

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册
public bool isReadable;

描述

如果网格已启用读写,则返回 true;否则返回 false。

当网格启用读写时,Unity 会将网格数据上传到 GPU 可寻址内存,但也会将其保留在 CPU 可寻址内存中。当网格未启用读写时,Unity 会将网格数据上传到 GPU 可寻址内存,然后将其从 CPU 可寻址内存中移除。

您可以在将模型导入 Unity 时,使用“启用读写”复选框设置此值。要在运行时将其值设置为 false,请设置 Mesh.UploadMeshDatamarkNoLongerReadable 参数。

在大多数情况下,您应该禁用此选项以节省运行时内存使用量。您只应在以下情况下启用它

  • 当您在代码中读取或写入网格数据时。
  • 当您将网格传递给 StaticBatchingUtility.Combine() 以在运行时组合网格时。
  • 当您将网格传递给 CanvasRenderer.SetMesh 时。
  • 当您使用网格在运行时使用 NavMesh 构建组件烘焙 NavMesh 时。
  • 当网格是凸面体,您将网格与网格碰撞体一起使用,并且网格碰撞体的变换具有负缩放比例(例如,(–1, 1, 1))时。
  • 当您将网格与网格碰撞体一起使用,并且网格碰撞体的变换发生倾斜或剪切(例如,当旋转的变换具有缩放的父变换时)时。
  • 当您将网格与网格碰撞体一起使用,并且网格碰撞体的烘焙选项标志设置为任何非默认值时。
  • 在不使用 GPU 实例化的情况下,使用带粒子系统形状模块或渲染器模块的网格时。

请注意,粒子系统会在通过检查器分配时自动将网格更改为可读的。

注意:当 Unity 从脚本创建网格时,此值最初设置为 true。未标记为可读的网格在运行时从脚本访问任何数据数组时会引发错误。无论此设置如何,在游戏和渲染循环之外的 Unity 编辑器中始终允许访问。

其他资源:StaticBatchingUtility.Combine

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { Mesh mesh = GetComponent<MeshFilter>().sharedMesh; print(mesh.isReadable); } }