最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
unity3d基础知识
本文主要是针对新同学的Unity3D基础知识简单总结,如果你已经熟悉这些内容,或者是经验丰富的老手,可不必继续阅读。
1. Prefab
Prefab提供了类似于C++中类的概念,这极大地方便了用户创建对象。例如,在创建碰撞盒时,我们可以创建一个Prefab。后续若需要同时修改碰撞盒的显示与隐藏状态,直接对该Prefab进行操作即可,无需逐个修改每个碰撞盒对象。
2. 透明贴图
Unity3D自带的Shader并不支持“透明贴图层 + 漫反射贴图层”的组合。所以,在使用透明贴图时,需要将其制作为PNG格式。同时,要使用 transparent --> bump diffse shader。
在Photoshop中有一个插件可用于制作适合Unity3D使用的透明贴图,但我在实际使用时,可能由于操作不当,效果不太理想。
3. 贴图参数
在U3D中添加贴图后,会显示贴图信息。其中,“tiling”项表示贴图的重复次数,该参数可用于控制贴图在物体表面的重复平铺效果。
4. 单位问题
- 在单位换算方面,Unity中一个单位是FBX中1单位的100倍。具体而言,Unity中1单位等于1米,而在3ds Max或Maya中,1单位等于1厘米。
- 在3ds Max中,
display unite scale里的metric应设置为meters,system unit scale中1 unit = 1.0 centimeters。 - 为了测试导入模型的尺寸,我们可以创建一个尺寸为1:1:1的Cube,其实际尺寸就是1米,通过与该Cube进行对比,就能直观了解导入模型的实际大小。
5. 系统天空盒
- 打开系统天空盒的操作是:
Edit --> skybox。 - 当选择
solid color时,屏幕中任何空白区域将显示当前摄像机的背景颜色。 - 若想去除天空盒的接缝,需将照片的
wrap mode修改为clamp。
6. 阴影
要创建阴影,可按以下步骤操作:选取 Directional light(或其他灯光类型) --> terrain 选项栏 --> create lightmap --> 在弹出的对话框中选择灯光数量并勾选 shadow 项。
7. 灯光及阴影
若要实现特定的灯光及阴影效果,可按以下步骤操作:
- 添加
spot light,为一个物体及其子物体新建一个层,可命名为ignore sunlight。 - 将
spot light赋予该层。 - 在
directional light上选择新层ignore sunlight。
8. 添加Layer
添加新层的操作如下:选择物体 --> 在 inspector 面板中找到 layer --> create new layer --> 选择 user layer。
9. Partical System
粒子系统可用于制作喷火、子弹、火山等效果,它本质上是3D空间中的2D图像,能为场景增添丰富的视觉效果。
10. 深度缓冲
深度缓冲是三维图形中处理图像深度坐标的过程,该过程既可以由硬件完成,也可以通过软件实现。常见的算法有画家算法和Z - buffer算法,其主要目的是解决可见性问题,即确定场景中哪部分可见,哪部分不可见。
11. Camera
摄像机的使用有以下要点:
- 可以使用
culling mask选择显示哪一层的物体,通过该功能可灵活控制场景中不同层物体的显示与隐藏。 - 还可利用摄像机来制作用户自定义的界面。
12. Import settings
设置导入参数有两种方式:
- 在
project view中点击setting按钮。 - 选择一个
scene file,然后选择Import settings。 - 对于
Mesh collider,当一个物体(如汽车)会移动时,不能勾选该选项,而要在工程中新建primitive collider。
13. 地面设置及相关碰撞问题
如果使用 First person controller 摄像机,就必须设置地面,可通过设置一个Cube作为地面来实现碰撞效果。具体操作是:点击 run 按钮,让摄像机掉到地上或与Cube等物体形成碰撞后,程序即可正常运行并实现碰撞效果。
14. Unity中文显示
若要在Unity中显示中文,可将中文字体放入Unity的 asset 目录下。Unity会将字体中的所有文字转化成一张贴图,并生成一个Unity字体,之后通过 GUIskin\\GUIstyle 引用该字体来显示中文。