U3D基础教程重读 基础编辑和导入文件

来源:互联网 发布:联想数据恢复中心 编辑:程序博客网 时间:2024/06/05 00:04
编辑器,主要是asset->project; gameobject(prefab)->scene; component->inspector的使用。
file/edit是设置;windows是不同的编辑视图,动画,烘培,纹理打包,性能分析等:

1.基本使用:习惯开菜单上的快捷键,提高操作能力;ctrl+1;鼠标滚轮,选中F;按下Q拖动场景或鼠标滚轮可缩放场景;alt鼠标右键旋转;鼠标左键加wsaqe漫游,加shift快速。
2.注意菜单栏的使用,编辑器开发就是用菜单的这些功能包括导入选中保存等.
3.物体的轴心(center基于物体包围盒所有选择物体的轴心,pivot基于物体本身实际轴心常用pivot)和物体坐标系(global物体坐标系不会跟着动,local是基于本地本地物体坐标系会跟着动,只对用R旋转时候有作用,编辑出来的结果都一样默认globall即可),这些只是编辑用,加载时候是不区分的。
4.edit->preference ->general可以设置导入时候压缩纹理。纹理在Inspector中可以设置压缩格式就行了。

5.halo光晕(一圈模糊的亮光),flare耀斑(亮斑)。在render setting里面设置。
halo texture光晕纹理,halo strengh光晕强度。flare耀斑强度, 耀斑褪去速度。skybox material天空盒材质。
spot cookie 设置2d图像作为所有点光源遮罩
6.snap setting 对齐设置,按住ctrl键时候,进行W,R,T设置使用snap的变化单位。
7.compute shader:
Compute Shader可发挥的地方很多,游戏中可以使用GPU进行光线追踪、A-Buffer采样抗锯齿、物理特效、人工智能AI等游戏特效运算。在游戏之外,程序员也可以利用CS架构进行图像处理、后期处理(Post Process)等。
tessellation shader是曲面细分技术在DX11中才能使用。

8.prefab和flash 的movieclip类似,作为保存物体数据信息的模板。
9.create lens flare可以制作,在灯光中进行指定。
也可以自定义字体。
render texture等。
物理材质在实时碰撞中设置摩擦力或阻力等参数。
avatar mask可以对身体的部位进行激活或禁止。
一些标准资源包,例如特效,地形,水,树木可以导入进来,直接修改使用可以提高制作速度
导出资源包.unitypackage给其它项目或他人使用。

9.gameobject菜单,可以创建布料cloth,创建布娃娃系统ragdoll(需要T-Pose的骨骼放入), 创建风,树,audio reverb zone音频混音区。选中时候注意有一些快捷键操作。
break prefab instance取消所选对象和预设体之间的关系。
地形terrian也被放置到了3d gameobject中,可以导入高度图.raw文件,分辨率都在inspector中的设置中进行设置。
hierarchy视图中的对象命名问题,需要父子节点,命名规范来避免重名。
善于使用hierarchy和asset中的搜索功能。

一个空对象,增加网格文件(.fbx),渲染组件(指定材质文件),即可以显示物体。物体还可以增加组件light, 可以调节light的颜色和强度。
脚本到Editor\Data\Resources\ScriptTemplates 中修改模板,那么New脚本则显示出来。

10.component组件处,记得各种组件都在这里,对所有组件熟悉了,才能正确使用。
11.inspector视图中注意name, tag, layer, 帮助菜单,设置菜单的功能。

12.模型,材质,动画的导入
模型的meshfilter就是要渲染的网格,mesh render就是渲染器,对网格进行渲染。
模型导入,3ds max中1m相当于unity中0.01米,fbx导入时候会默认缩放为0.01,可以选择模型进行设置,主要是unity3D坐标度量单位缩小了是3ds max的0.01,所以不放大坐标系就要缩小物体,所以缩放下就OK了,可以调整3ds max中的1unit刻度等于1厘米这样导入设置缩放为1就可以了)。
导出动画,也要设置好,动作,骨骼,贴图,发现贴图都要设置下。
材质的导入:材质在3ds max中材质名字和模型名字要一样,一个材质球有diffuse漫反射贴图 bump凹凸贴图等。导出模型时候,需要将动画和烘培动画勾上,去掉camera和灯光,勾上Embed media这样模型用到的贴图也会被导出到.FBX中,导入到unity中如果有法线贴图需要点击Fixed now将该贴图标记为unity的法线贴图Up Axis选择Y-Up这样3ds max中的左手z向上的坐标系,就正确转换到unity3d 左手y向上的坐标系了。
mesh导入时候,Swap UVs在光照贴图出错后,可以勾选交互第一第二UV通道(是多阶段纹理)。
Split Tangents 如果模型因为发现贴图出现接缝,勾选改选项可以激活接缝问题。

动画导入设置:
Rig导入设置旧版动画是非Mecanim动画(3.x以前),新版的非人形则是Generic, Humanoid。
可以设置存储节点。avatar导入可以来自本模型,也可以来自其它模型。
可以指定根节点和优化网格, 也可以配置avatar。

导入的文件下会有一个类似prefab的文件,其实是.FBX文件,可以点击查看导入参数,可以拖拽得到.prefab文件给unity动态加载使用。

图片导入:
模型文件需要开启mipmap,虽然多33%内存,但是渲染上有很多优势。UI不能开启mipmap。
图片导入设置,有default选项,设置了压缩,则每个平台会使用自己的压缩格式则每个平台会使用该默认设置除非覆盖了。

图片导入时候的类型设定:
不同的纹理类型,有不同的纹理设置,Texture纹理是最通用的设置,对于模型网格用texture纹理就可以了。对于ui使用ui sprite; 法线贴图则使用法线类型, lightmap光照贴图则使用光照贴图设置。
reflection 反射类型的纹理,可以作为天空合(球形),立方体纹理。
cookie是光源类型的遮罩。
PVR ETC都是有损压缩格式的文件,PVR宽度和高度都是相等的。
纹理读写设置,会允许SetPixel, GetPixel,产生一个纹理副本,会产生双倍的纹理,需要谨慎使用
纹理mipmap ui不能启用,因为会消耗33%的内存

13.编辑器的边角都要摸下, game中的gizmos可以屏蔽游戏中的其它显示例如灯光和碰撞体,方便观察性能(draw call和内存, 帧率等)。

14.scene中可以改变绘图着色模式,渲染模式rgb/alpha等,2d/3d,灯光开启等。
15.window->profile 可以对CPU,RAM, GPU进行性能分析; 用frame debuger可以对每帧的draw call绘制进行分析。

16.音频视频文件
音频文件导入为移动平台的mp3格式会有一点点损失,但是可以节省大量内存。视频文件紧支持quicktime的导入,视频资源导入导出仅pro/advanced版本才支持。

需要audio listener和audio source组件。可以设置3d音效衰减等效果,循环播放,音乐非衰减曲线效果。音频文件加载和处理方式。
将音频文件直接拖拽到挂载声音对象的inspector中可以快速添加音效效果。
3d声音,pan level需要设置为1,才能正常进行衰减

17.碰撞物体
collider组件加入物体后,需要加入rigibody刚体组件,才能赋予物体更真实的物理特性。
可以对刚体增加力和速度,使用创建的physic material指定物理参数,获得更好的特性效果。
所有物体的碰撞检测,除了用物理引擎实现,还可以用空间分割处理。

18.工程结构
project -> 多 scene ->gameobject->components.
网格需要添加meshfilter, meshfilter是用来在项目资源中获取网格信息,如果网格信息包含了蒙皮信息unity 将会自动创建一个skinned mesh render. 没有自动添加则需要手动添加mesh render组件,用于在场景中transform位置渲染出mesh物体。
projector 幻灯片组件,用于将纹理材质投射到任何游戏场景视锥的物体上。
主摄像机,会添加GUILayer, Flare Layer(耀斑光晕效果), Audio linstener, Event System.
使得游戏场景内存在这些对象,可以对GUI, 声音,事件进行分发处理。

19.Navigation
NavMesh Agent 组件存放导航网格中代理导航信息的地方。
Offmesh Links 断开网格连接,pro版本才有,用于地图上断开的网格之间建立寻路连接。
NavMesh Obstacle 组件存放导航网格障碍物。

20.光照和渲染组件
Light Probe Group可以添加多个灯光探头到场景中,为移动物体增加实时光照功能。
Occlusion Area 用于在移动对象上添加遮挡剔除功能,适应物体运动的活动空间。
LodGroup可以为游戏对象管理细节级别。
Animator 用于设置角色的行为(只要包含avatar的游戏对象,就会包含该组件),包括状态机,动画混合树,及在脚本中控制事件。
animation 动画文件。

21.地形
地形可以导入资源纹理,树木种植,大面积草地。地形支持LOD,可以绘制各种地形。地图组件支持transform的position调整,调整rotation, scale是无效的。
地形组件绘制:1)高低绘制 2)拉伸到一定高度 3)对地形高低进行平滑处理。
4)添加纹理,地表背景纹理,不能种草,可以设置自己的纹理。
5)添加树木,设置树木的类型和高度形状,刷树木的方式,shift加拖拽可以删除树木。
6)表面细节设置,可以种草等,也 可以设置自己的纹理。
7)设置,各种高度图等设置。设置分辨率,风效果。
对场景添加光照。

22.天空盒
天空盒是用了特殊类型shader的材质,cube map(立方体纹理),或球形纹理。
1)Edite render setting sky box在同一个场景中任何摄像机下都是一样的。
2)在摄像机中添加render天空盒组件,不同摄像机上不一样。为摄像机设置天空盒会覆盖渲染设置中指定的天空盒。
自定义天空盒:
添加材质,设置RenderFX/SkyBox shader设置材质,设置立方体纹理的6个纹理。

23.雾效
在rendering setting中设置Fog。雾效和摄像机裁截面配合优化场景渲染性能,有雾化颜色,雾化模式(线性,Exp2), 雾浓度,开始结束距离(结束距离是线性模式下才有)。

24.水效果
从资源中导入.prefab,包含mesh filter ,mesh render,是通过脚本和Shader实现简单水波纹效果的,不能实现物体倒影,和天空盒倒影(反射,折射)效果, 专业版可以实现该效果。水prefab效果可以通过修改prefab大小,来定制大小。专业版存在反射和折射动态物体的效果,比较消耗性能。
有空可以研究下水效果的shader和脚本。