【UnityEditor】创建并保存 Texture图片、Mesh网格
创建保存Texture
- new Texture2D(spriteSize,spriteSize):生成一张Texture2D纹理;
- Texture2D.SetPixel(pixelX,pixelY,Color):按像素设置Texture2D纹理的色值;
- Texture2D.Apply():应用任何先前的SetPixel和SetPixels更改;
- Texture2D.EncodeToPNG():将Texture2D纹理转为二进制数据,用于保存到本地;
- 使用FileStream读写文件流,将Texture2D的二进制数据保存为png。
创建保存Texture:
private void CreateSampleSprite(){int minRadius = 64;int maxRadius = 128;//图片尺寸int spriteSize = maxRadius * 2;//创建Texture2DTexture2D texture2D = new Texture2D(spriteSize,spriteSize);//图片中心像素点坐标Vector2 centerPixel = new Vector2(maxRadius,maxRadius);//遍历像素点Vector2 tempPixel;float tempDis;for(int x = 0; x < spriteSize; x++){for(int y = 0; y < spriteSize; y++){//以中心作为起点,获取像素点向量tempPixel.x = x - centerPixel.x;tempPixel.y = y - centerPixel.y;//是否在半径范围内tempDis = tempPixel.magnitude;if(tempDis >= minRadius && tempDis <= maxRadius)texture2D.SetPixel(x,y,Color.red);elsetexture2D.SetPixel(x,y,Color.white);}}texture2D.Apply();//保存图片byte[] dataBytes = texture2D.EncodeToPNG();string savePath = Application.dataPath + "/SampleCircle.png";FileStream fileStream = File.Open(savePath,FileMode.OpenOrCreate);fileStream.Write(dataBytes,0,dataBytes.Length);fileStream.Close();UnityEditor.AssetDatabase.SaveAssets();UnityEditor.AssetDatabase.Refresh();}
创建保存Mesh
- 创建网格数据:顶点和三角面,赋值到Mesh;
- AssetDatabase.CreateAsset(),将Mesh文件保存到本地,存为asset格式。
关于创建网格:
- Vector3[] vertices:用于存放顶点数据,元素是三维坐标,固定顺序;
- int[] triangles:用于存放三角面数据,元素是顶点下标(vertices中坐标的下标),固定顺序,每三个下标一组,逆时针方向围成一个三角面;
伪代码:
vertices = new Vector3[3];
vertices[0] = 坐标0;
vertices[1] = 坐标1;
vertices[2] = 坐标2;
triangles = new int[3];
triangles[0] = 0;
triangles[1] = 1;
triangles[2] = 3;
创建保存Mesh:
private void CreateSampleMesh(){float halfWidth = 50;float halfHeight = 50;Vector3[] vertices = new Vector3[4];vertices[0] = new Vector3(-halfWidth,0,-halfHeight);vertices[1] = new Vector3(-halfWidth,0,halfHeight);vertices[2] = new Vector3(halfWidth,0,halfHeight);vertices[3] = new Vector3(halfWidth,0,-halfHeight);int[] triangles = new int[6];triangles[0] = 0;triangles[1] = 1;triangles[2] = 3;triangles[3] = 3;triangles[4] = 1;triangles[5] = 2;Mesh newMesh = new Mesh();newMesh.vertices = vertices;newMesh.triangles = triangles;newMesh.name = "SampleMesh";string savePath = "Assets/SampleMesh.asset";UnityEditor.AssetDatabase.CreateAsset(newMesh,savePath);UnityEditor.AssetDatabase.SaveAssets();UnityEditor.AssetDatabase.Refresh();}
【UnityEditor】创建并保存 Texture图片、Mesh网格相关推荐
- Unity编辑器扩展-生成prefab的预览图并保存为图片
Project视图里的prefab文件都是一个蓝色的正方体,我想给它们加个预览图,暂时不知道怎么改Project视图的,但反正我想像NGUI那样有个专门的窗口存放一些常用的prefab,所以做成了如下 ...
- Unity 通过Mesh网格渲染绘制图形与字体
任何一个模型都是由若干网格面组成,而每一个面又有若干个三角形组成,也就是说,模型是由若干个三角形面组成的:(字体和图片也是如此) 组成简单模型的组件需要包含以下几个: MeshImage脚本代码如下: ...
- 对相机所看的视角截屏保存为图片
对相机所看的视角截屏保存为图片: 1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.UI; 4 /// < ...
- mnist数据集保存为图片
#coding: utf-8 from tensorflow.examples.tutorials.mnist import input_data import scipy.misc import o ...
- php文章远程图片,php保存远程图片到本地 php正则匹配文章中的远程图片地址
在添加文章的时候,很多情况下我们需要处理文章中的远程图片,将其保存到本地,以免别人网站删除后文章里面就无法访问了. 因此我们需要正则匹配文章中的图片地址, 这里我们使用php的正则表达式来实现:$co ...
- JS实现Echarts的图表保存为图片功能
文章目录 需求分析 开发准备 实现思路 效果图 参考链接 需求分析 实际项目开发过程中经常会有图表展示功能,同时为了满足用户需要,会附带着图表导出功能,主要形式就是保存为图片.在Echarts中本身就 ...
- 怎么把动态图从python弄下来_Python将视频或者动态图gif逐帧保存为图片的方法
本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...
- BitmapUtil【缩放bitmap以及将bitmap保存成图片到SD卡中】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 用于缩放bitmap以及将bitmap保存成图片到SD卡中 效果图 代码分析 bitmapZoomByHeight(Bitmap s ...
- 保存课程图片-服务端开发
保存课程图片 需求分析 图片上传到文件系统后,其它子系统如果想使用图片可以引用图片的地址,课程管理模块使用图片的方式是将图片地址保存到课程数据库中. 业务流程如下: 1.上传图片到文件系统服务 2.保 ...
- 远程图片保存到服务器 php,保存远程图片到本地服务器几种方法[php,asp]网
保存远程图片到本地服务器几种方法[,] function get_file($url,$folder){ set_time_limit (24 * 60 * 60); $destination_fol ...
最新文章
- matlab regstats()
- golang逃逸分析
- pytorch C++部署模型 ONNX tensorRT
- Codeforce1311B. WeirdSort (冒泡排序)
- python操作界面_Python使用PyQt5的Designer工具创建UI界面
- CMake常用命令整理
- logistic公式形式的由来,从广义线性回归说起
- 2020年入门数据分析选择Python还是SQL?七个常用操作对比!
- 数据接口请求异常:parerror_什么是接口的幂等性,如何实现接口幂等性?
- 如何利用Mac电脑制作让你脱颖而出的简历
- linux在VM下分辨率的问题
- JPA和 QueryDSL入门
- html转义字符 am,html转义字符如何通过代码识别方法
- React 360 全景VR交互项目实战
- 微信小程序使用本地背景图无法渲染的解决办法
- zabbix_sender用法实例
- pytorch学习之如何画损失函数曲线图
- python 获取屏幕颜色_Python3 获取手机屏幕指定坐标点的 RGBA 和 16 进制颜色
- 爬虫:爬取以太坊区块链浏览器数据
- Scrapy新手入门