标签:
using UnityEngine; using System.Collections; using System.Collections.Generic; public class MeshRenderExample :MonoBehaviour { void Start() { string shaderText = "Shader \"DoubleSided\" {" + " Properties {"+ " _Color (\"Main Color\", Color) = (1,1,1,1)"+ " _MainTex (\"Base (RGB)\", 2D) = \"white\" {}"+ //_BumpMap ("Bump (RGB) Illumin (A)", 2D) = "bump" {} " }"+ " SubShader { "+ //UsePass "Self-Illumin/VertexLit/BASE" //UsePass "Bumped Diffuse/PPL" // Ambient pass " Pass {"+ " Name \"BASE\""+ " Tags {\"LightMode\" = \"PixelOrNone\"}"+ " Color [_PPLAmbient]"+ " SetTexture [_BumpMap] {"+ " constantColor (.5,.5,.5)"+ " combine constant lerp (texture) previous"+ " }"+ " SetTexture [_MainTex] {"+ " constantColor [_Color]"+ " Combine texture * previous DOUBLE, texture*constant"+ " }"+ " }"+ // Vertex lights " Pass {"+ " Name \"BASE\""+ " Tags {\"LightMode\" = \"Vertex\"}"+ " Material {"+ " Diffuse [_Color]"+ " Emission [_PPLAmbient]"+ " Shininess [_Shininess]"+ " Specular [_SpecColor]"+ " }"+ " SeparateSpecular On"+ " Lighting On"+ " Cull Off"+ " SetTexture [_BumpMap] {"+ " constantColor (.5,.5,.5)"+ " combine constant lerp (texture) previous"+ " }"+ " SetTexture [_MainTex] {"+ " Combine texture * previous DOUBLE, texture*primary"+ " }"+ " }"+ " }"+ " FallBack \"Diffuse\", 1"+ "}"; mesh = gameObject.AddComponent<MeshFilter>().mesh; MeshRenderer meshRender = gameObject.AddComponent<MeshRenderer>(); meshRender.material = new Material(shaderText); // meshRender.material.shader = Shader.Find("Transparent/Diffuse"); Debug.Log(meshRender.material.renderQueue.ToString()); meshRender.material.color =Color.green; mesh.Clear(); list = new List<Vector3>(); list.Add(new Vector3(-0.5f,0.5f,0f)); list.Add(new Vector3(0.5f,0.5f,0f)); list.Add(new Vector3(0.5f,-0.5f,0f)); list.Add(new Vector3(-0.5f,-0.5f,0f)); count = list.Count; //=================================================== triangles = new int[3 * (count - 2)]; vertices = new Vector3[count]; for (int i = 0; i < count; i++) { vertices[i] = list[i]; } int triangles_count = count - 2; for (int i = 0; i < triangles_count; i++) { triangles[3 * i] = 0; triangles[3 * i + 1] = i + 2; triangles[3 * i + 2] = i + 1; } mesh.vertices = vertices; mesh.triangles = triangles; } Mesh mesh; int[] triangles; //用于记录绘制三角形所需要的顶点ID顺序 int count; //顶点数 Vector3[] vertices; //用于存储绘制三角形的顶点坐标 List<Vector3> list; void Update() { if(Input.GetMouseButton(0)) { Debug.Log(Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,0.8f))); } } }
标签:
原文地址:http://www.cnblogs.com/jiangjieqim/p/4655553.html