rparams | Unity 用于渲染网格的参数。 |
mesh | 要渲染的Mesh。 |
submeshIndex | 当网格包含多个材质(子网格)时,Unity 渲染子网格的索引。对于具有单个材质的网格,请使用值 0。 |
objectToWorld | Unity 用于将网格从对象空间转换为世界空间的变换矩阵。 |
prevObjectToWorld | Unity 用于计算网格运动矢量的上一帧变换矩阵。 |
使用给定的渲染参数渲染网格。
RenderMesh
渲染当前帧的网格。该网格受灯光影响,可以投射和接收阴影,并且受投影仪影响。该网格可以被所有摄像机渲染,也可以被特定摄像机渲染。
使用 RenderMesh
以编程方式控制网格渲染,而无需创建和管理游戏对象。 RenderMesh
提交网格进行渲染,这意味着它不会立即渲染网格。Unity 会将网格作为正常渲染过程的一部分进行渲染。如果您想立即渲染网格,请使用 Graphics.DrawMeshNow。RenderMesh
不会应用对网格材质属性的任何更改,这些更改是在调用之间进行的。这是因为它不会立即渲染网格。如果您想渲染一系列具有相同材质但属性略有不同的网格(例如,要更改每个网格的颜色),请使用 MaterialPropertyBlock 参数。
此调用在网格位于渲染队列中时创建内部资源。分配会立即发生,并且在帧结束之前一直存在,前提是该对象对所有摄像机都在渲染队列中。否则,分配将一直存在,直到指定的摄像机完成渲染。
其他资源: MaterialPropertyBlock。
以下示例渲染 10 个具有给定材质的网格
using UnityEngine;
public class ExampleClass : MonoBehaviour { public Material material; public Mesh mesh;
void Update() { RenderParams rp = new RenderParams(material); for(int i=0; i<10; ++i) Graphics.RenderMesh(rp, mesh, 0, Matrix4x4.Translate(new Vector3(-4.5f+i, 0.0f, 5.0f))); } }