UnityDraw.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UnityDraw : MonoBehaviour
{
public Texture2D TestTexture;//测试用贴图
void Start()
{
Vector3[] vertices = new Vector3[4];//设置顶点
vertices[0] = Vector3.zero;
vertices[1] = new Vector3(0, 0, 1);
vertices[2] = new Vector3(1, 0, 1);
vertices[3] = new Vector3(1, 0, 0);
int[] triangles = new int[6];//设置三角面
triangles[0] = 0;
triangles[1] = 1;
triangles[2] = 2;
triangles[3] = 2;
triangles[4] = 3;
triangles[5] = 0;
Vector2[] uv = new Vector2[4];//设置uv
uv[0] = new Vector2(0, 0);
uv[1] = new Vector2(1, 0);
uv[2] = new Vector2(1, 1);
uv[3] = new Vector2(0, 1);
Mesh mesh = new Mesh();
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.uv = uv;
mesh.RecalculateBounds();
MeshFilter filter = gameObject.AddComponent<MeshFilter>();
if (filter != null)
filter.sharedMesh = mesh;
MeshRenderer meshRenderer = gameObject.AddComponent<MeshRenderer>();
Shader shader = Shader.Find("Diffuse");
meshRenderer.sharedMaterial = new Material(shader);
meshRenderer.sharedMaterial.mainTexture = TestTexture;
}
}
UGUIDraw.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UGUIDraw : MonoBehaviour
{
public Texture2D texture2D;
public Material material;
void Start()
{
Vector3[] vertices = new Vector3[4];//设置顶点
vertices[0] = new Vector3(0, 0, 0);
vertices[1] = new Vector3(0, 1, 0);
vertices[2] = new Vector3(1, 1, 0);
vertices[3] = new Vector3(1, 0, 0);
int[] triangles = new int[6];//设置三角面
triangles[0] = 0;
triangles[1] = 1;
triangles[2] = 2;
triangles[3] = 2;
triangles[4] = 3;
triangles[5] = 0;
Vector2[] uv = new Vector2[4];//设置uv
uv[0] = new Vector2(0, 0);
uv[1] = new Vector2(0, 1);
uv[2] = new Vector2(1, 1);
uv[3] = new Vector2(1, 0);
Mesh mesh = new Mesh();
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.uv = uv;
mesh.RecalculateBounds();
CanvasRenderer canvasRenderer = GetComponent<CanvasRenderer>();
canvasRenderer.SetMesh(mesh);
canvasRenderer.materialCount = 1;
material.shader = Shader.Find("UI/Default");
canvasRenderer.SetMaterial(material, 0);
canvasRenderer.SetTexture(texture2D);
}
}