Uity开发随笔(一)
来源:互联网 发布:efe矩阵ife矩阵哪个先 编辑:程序博客网 时间:2024/05/19 01:29
1.Unity自制地形系统时,高度图使用.raw文件。
导出时,先新建Texture2D,设置TextureFormat为RFloat,使用SetPixel(new Color(Height, 0, 0))为Texture2D赋值,再使用File.WriteAllBytes(path, texture2D.GetRawTextureData())方法导出。
导入时,先新建Texture2D,设置TextureFormat为RFloat,使用File.ReadAllBytes(path)读入byte[],使用texture2D.LoadRawTextureData(bytes)导入。
2.Unity编辑器代码中调用AssetPreview.GetAssetPreview()获取贴图预览图时,有可能返回null,可以使用循环+Thread.Sleep循环调用解决。
3.Unity编辑器代码中如果需要显示进度条,不需要特别的对逻辑做异步处理,也不用startcoroutine,直接在逻辑中调用EditorUtility.DisplayProgressBar就可以取得挺好的效果。
4.续1,UE使用的地形工具,导出的高度图有时会用16位raw图,而Unity的R16格式Texture2D不支持像素操作,因此换一种实现方式。
首先确定高度范围,之后直接读取图片数据为byte[]。在r16格式中,每两位表示一个高度。使用BitConverter.ToUInt16可以将每两位数据转换为无符号整形,之后除以UInt16.MaxValue,就是该点的高度在高度取值范围内所处的位置了。经测试效果与Unity自带地形工具导入高度图的效果相同。
5.自定义脚本编辑器有时会出现某些字段(如数组)在修改后可能会无法保存在场景中(场景没有标注*号,ctrl+s无法将刚修改的数据保存),如果对目标GameObject调用SetDirty也不好使,可以使用EditorSceneManager.MarkSceneDirty()简单粗暴的将场景SetDirty;
6.自定义Shader的透明物体在渲染LightMap的时候有时会渲染不出来,可能是因为Shader的主材质名称不为_MainTex;
7.使用[ContextMenu(“XXXX”)]特性可以将脚本的某个方法加入到脚本Inspector的右键菜单中,便于编辑模式下调试。
- Uity开发随笔(一)
- 开发随笔一
- html开发随笔一
- 【一】开发随笔
- 软件工程 -开发流程 随笔一
- Bing Maps 开发随笔一
- ios开发随笔记(一)
- NDK 开发随笔(一)
- 学习iOS开发随笔(一)
- Ios开发随笔之block(一)
- DSP开发随笔TMS320F28(一)
- 手绘随笔:随笔(一)
- 【生活随笔】随笔一
- 随笔一
- 随笔《一》
- 随笔一
- 随笔一
- 随笔,一
- 如何解决IE7中虚线框问题
- 【Linux】Linux进程间通信——使用消息队列
- MySQL replace
- socket网络编程中read与recv区别
- [leetcode]: 172. Factorial Trailing Zeroes
- Uity开发随笔(一)
- C与lua
- 制作initramfs/initrd镜像
- 10.重载示例(上)
- HDU3974-Assign the task(线段树+区间建树)
- CaffeOnSpark安装和使用教程系列二:单节点使用CaffeOnSpark进行MNIST数据集的测试
- c++与lua
- 【C#机房重构】命名空间"Microsoft"中不存在类型或命名空间名称"Office"(是否缺少程序引用?)
- 安装完jdk,重新部署项目启动时,提示找不到jre解决方案