游戏新需求,渲染属性图标,所需需要自己动态构建mesh和渲染,由于目前对u3d的渲染方面的借口不熟悉,故还得研究下。
最后的解决方案:
public class XXXXXX : MonoBehaviour
{
void OnRenderObject()
{
UpdateAttributeTexture();
}
void UpdateAttributeTexture()
{
Vector3 pos = transform.position;
if (mesh == null)
{
mesh = new Mesh();
Vector3[] tPoints ..................
int[] tTris ..................
mesh.vertices = tPoints;
mesh.triangles = tTris;
}
else
{
mesh.Clear(true);
Vector3[] tPoints ..................
int[] tTris ..................
mesh.vertices = tPoints;
mesh.triangles = tTris;
}
if (mat == null)
{
Shader shader..................
mat = new Material(shader);
}
mat.SetVector("_Color", color);
if (mat.SetPass(0))
{
Graphics.DrawMeshNow(mesh, pos, rotation);
}
}
}
应用的时候只要挂到相应的gameobj上面即可。