Unity 通过计算定点绘制图形
来源:互联网 发布:js监听屏幕大小变化 编辑:程序博客网 时间:2024/05/16 09:10
通过计算绘制三角形,效果如下:(运行后鼠标左键点击,出现三角形)
代码如下:
using UnityEngine;using System.Collections;using System.Collections.Generic;public class MeshTest : MonoBehaviour { //用于存储绘制三角形的顶点坐标 private Vector3[] vertices; //用于记录绘制三角形所需要的顶点ID顺序 private int[] triangles; //记录顶点数 private int count = 0; //定义Mesh private Mesh mesh; //定义一个链表用于记录所有点的坐标 private List<Vector3> list; void Start() { //添加MeshFilter gameObject.AddComponent<MeshFilter>(); //添加MeshRenderer gameObject.AddComponent<MeshRenderer>(); //new一个链表 list = new List<Vector3>(); //获得Mesh mesh = GetComponent<MeshFilter>().mesh; //修改Mesh的颜色 GetComponent<MeshRenderer>().material.color = Color.red; //选择Mesh中的Shader GetComponent<MeshRenderer>().material.shader = Shader.Find("Transparent/Diffuse"); //清空所有点,用于初始化! mesh.Clear(); } void Update() { //点击鼠标左键 if (Input.GetMouseButton(0)) { //顶点数+1 //count++; //将获得的鼠标坐标转换为世界坐标,然后添加到list链表中。 //list.Add(Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0.8f))); count+=3; list.Add(new Vector3(-1.0f, 0, 0.8f)); list.Add(new Vector3(1.0f, 0, 0.8f)); list.Add(new Vector3(0, 1.0f, 0.8f)); } //如果顶点数>=3,那么就开始渲染Mesh if (count >= 3) { //根据顶点数来计算绘制出三角形的所以顶点数 triangles = new int[3 * (count - 2)]; //根据顶点数来创建记录顶点坐标 vertices = new Vector3[count]; //将链表中的顶点坐标赋值给vertices for (int i = 0; i < count; i++) { vertices[i] = list[i]; } //三角形个数 int triangles_count = count - 2; //根据三角形的个数,来计算绘制三角形的顶点顺序(索引)
//注意顺序,否则可能看不到,(0,1,2)(0,2,1) for (int i = 0; i < triangles_count; i++) { //这个算法好好琢磨一下吧~ triangles[3 * i] = 0; triangles[3 * i + 1] = i + 1; triangles[3 * i + 2] = i + 2; } //设置顶点坐标 mesh.vertices = vertices; //设置顶点索引 mesh.triangles = triangles; } }}
0 0
- Unity 通过计算定点绘制图形
- Unity 通过Mesh网格渲染绘制图形与字体
- Unity GL 绘制图形
- [Unity]绘制扇形图形
- Unity Shader绘制Julia奇幻图形
- fpga 定点小数计算
- 定点计算与浮点计算
- Unity Shader 学习笔记 (六) GPU 图形绘制管线
- Unity&Shader基础篇-可编程GPU图形绘制管线
- 【Unity Shader学习笔记】(四)绘制Julia奇幻图形
- Unity Mesh生成图形二---绘制轮胎印,耕地区域
- 通过屏幕鼠标绘制opengl三维场景图形
- 一则通过Android Canvas动态绘制图形的实例介绍
- 绘制图形
- 绘制图形
- 绘制图形
- 绘制图形
- 绘制图形
- 数组的查找,反转,排序,sort排序
- 奇异值分解(SVD)与线性变换的几何意义
- 开始学习Java啦!
- 解决cocopods不提示第三方库名字的方法
- HDU1021-Fibonacci Again,,找规律就好了~~~
- Unity 通过计算定点绘制图形
- 计蒜客|C++程序设计|二维数组
- 单例模式
- MySQL存储过程详解及mysql基本函数
- PAT (Advanced Level) Practise 1108Finding Average (20)
- UML的9种图例解析
- java中获取真是ip地址方法
- SAS中生成哑变量的一段宏代码
- Mysql 常用函数