3DMax中:
输出模型:1、制作 2、复位XForm 3、转poly 4、如果模型显示错误--》加Normal 5、转poly 6、输出
导出面板:如果需要导出不带动画的模型 Export只需勾选Geometry
带动画勾选Geometry以及(Animation、Skins、Shpes、Geometry used)四个 与动画相关的组件
unity支持的动画:
1.关键帧动画 2.骨骼动画 双足 3.CAT 多足(3DMax的插件)
4.任意类型动画 动画-》点缓存-》关键帧动画
DrawCall:
每帧每次CPU准备顶点及其相关数据通知图形学的过程 一个
动态批处理 Dynamic Batching
满足动态批处理:顶点数 < 300
和!材质! shader中使用的Pass数有关(单个材质着色器pass数为1)
使用多维子材质的 两个物体之间距离不能太远(不使用多维子材质就行)
所有静态物体不能参与批处理
使用MeshRenderer组件渲染的物体
模型旋转角度过大 位移距离过大会影响动态批处理
Unity不同版本 对物体的缩放比例会影响动态批处理
静态批处理 Static Batching
满足静态批处理:静态物体
顶点数<20000
使用MeshRenderer组件渲染的物体
贴图格式:
jpg 有损压缩 文件小 不支持透明
png 移动 无损压缩 文件小 支持透明
tga 无损压缩 文件大 支持透明
dds pc 主机 无损压缩 文件最小 支持透明(IOS不支持)
使用VS时 不能使用管家或者助手软件 影响同步
贴图打组,图集:使贴图满足2^n 减少DrawCall
贴图尺寸:
2^n n>=1 移动端上限2048*2048 PC端上限4096*4096 PCVR上限8096*8096 unity中
客户端:(DXT1/5)
移动端贴图 最好2M以内 不大于5M 在unity外使用无损压缩软件(百度搜索关键词“证件压缩”)
IOS平台 必须使用正方形2^n贴图 (PVRTC)
Android平台 不透明RGB ETC 8bits (必须支持OpenGLES2.0)
透明RGBA ETC2 8bits(必须支持OpenGLES3.0)(首选)
RGBA 32bits 所有安卓手机都支持 (缺点:大)
unity版本号X.X.X 最后两个X要都大于等于3 不然有BUG
移动端尽量减少LOD使用量(会一次加载所有资源以及贴图)
MipMaps减少CPU运算量 内存最廉价 多占用33%内存 克隆六张图 移动端不建议使用(3G内存以下)
UI贴图不需要开MipMaps 与摄像机距离保持不变
模型、图片优化:Read/Write Enable 选项如果勾选 会在内存中拷贝一份 以供读改 不改模型则不勾选
声音优化:推荐使用MP3格式 android平台推荐Vorbis格式 体积比mp3小
在声音属性中 勾选ForceToMono 可去除一条音轨 减小内存
渲染优化:摄像机视距、视野角度适当调小
光优化:烘焙贴图会全部加载到内存中 渲染出来的烘焙贴图占用显存
烘焙贴图也需要优化
unity用的物理引擎是英伟达的(NVIDIA)
Edit面板Project Setting选项下:
Physic设置层之间碰撞
Time设置FixedUpdate调用时间 一般设置为0.033 每秒调用30次
NGUI注意事项:
Depth值 背景设置为0 且不能有负值 不能通过代码修改(Depth值有BUG)
一级:1-30
全屏触发器:31
二级:32-60
....
同图集的Panel要相邻 才能一起处理 一级界面的Panel最好相同为1
移动位置比设置显隐更优化
发布时的签名: com.公司.产品
只要不是默认的就行
至少要有com.
协程:
如果StartCoroutine前没有yield return,则只执行一帧的内容(其他内容等待执行),然后往下顺序执行
如果有yield return,则执行完再往下继续执行(如果其他线程的等待时间到了则先执行其他线程)
游戏开发中:开发效率比性能优化重要
***配置文件:
StreamingAssets里的文件在移动端只可读不可改
**所有配置文件统一放在StreamAssets目录下才能发布出去
移动端只有PersistentDataPath路径可写
记事本配置文件的编码格式必须是UTF-8
发布平台之前:切换平台,Build资源
Json数据分为Json对象和Json数组
解析时执行.ValueAsString方法后不能转成整型 取不到值 必须用.ToString
Plugins(插件路径)(必须是Assets文件夹的一级子目录)目录放:
Windows的dll文件(动态链接库)、Linux的so文件(共享函数库)、Android/Ios 的so,jar,.m文件
原因:优先编译
Windows平台使用数据库
1.在Assets目录下创建Plugins目录,将Mono.Data.Sqlite.dll/System.Data.dll/sqlite3.dll三个文件放到工程
sqlite3有32 64 两个版本 发布时注意版本匹配
Pluginsm目录下
数据库打开之后一定要关闭,不然可能被锁死
数据库表单中插入字符串用text类型 输入的字符串前后加单引号
发布时如果dll文件出问题:发布设置中Optimization中ApiCompatibilityLevel修改为.NET 2.0
如果要将工程导入更新版本的unity,在工程目录下把除Assets以外的目录全部删除
FPS相关:性能优化、移动端散热、电量
unity/Edit/Project Settings/Quality里面V Sync Count: (帧率)
第一项:不自动匹配
第二项:自动硬件上限匹配
第三项:自动硬件上限除以二
(内存占用+烘焙贴图+显存溢出返回到内存中)=实际内存占用
场景叠加时navmesh资源不会叠加,必须先加载有navmesh资源的场景
地形资源展开必须只能是一张图、地形长宽不要设置过高
联网通讯:下载BestHttp插件 实现弱联网、强联网
常用shader:ShaderForge插件