unity3d基础知识

2015年01月22日 10:13 0 点赞 0 评论 更新于 2025-11-21 15:05

本文主要是针对新同学的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 应设置为 meterssystem unit scale1 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 引用该字体来显示中文。