Unity的资源管理
资源就是资本
1、Unity下的文件夹
Project窗口下的Assets文件夹下,就是用来存放资源的,为了方便,会使用文件夹的方式来对资源进行管理。但是也有一些特殊文件夹
这里面有很多文件夹,就是用来存放Unity资源的。 Materials:材质存放文件夹,Models:存放模型,Prefabs:存放预制物 Scenes:存放场景,Scripts:存放脚本的,Texture:存放图片的,Resources:存放资源,此文件可以通过特定的代码访问
Unity那些特殊的文件夹
- Standard Assets 文件夹 : 一般不破解,优先被编译
- Pro Standard Assets 文件夹:
- 在这个文件夹中的脚本比其他脚本都要先编译。将脚本放在这个文件夹里,就可以用C#脚本来访问js脚本或其他语言的脚本。
- Editor 文件夹
- Editor命名的文件夹允许其中的脚本访问Unity Editor的API。如果脚本中使用了在UnityEditor命名空间中的类或方法,它必须被放在名为Editor的文件夹中。Editor文件夹中的脚本不会在build时被包含。 在项目中可以有多个Editor文件夹。
- 如果在普通的文件夹下,Editor文件夹可以处于目录的任何层级。如果在特殊文件夹下,那Editor文件夹必须是特殊文件夹的直接子目录。
- Resources 文件夹
- Resources文件夹允许你在脚本中通过文件路径和名称来访问资源。但还是推荐使用直接引用来访问资源。
- 一般在游戏开发中,我们会将角色,UI,特效都做成预设,放入Resources文件中。 放在这一文件夹的资源永远被包含进build中,即使它没有被使用。因为Unity无法判断脚本有没有访问了其中的资源。 项目中可以有多个Resources文件夹,因此不建议在多个文件夹中放同名的资源。 一旦build游戏,Resources文件夹中的所有资源被打包进游戏存放资源的archive中。这样在游戏的build中就不存在Resources文件夹了。即使脚本中仍然使用了资源在项目中的路径。
- Gizmos
- Gizmos文件夹存放用Gizmos.DrawIcon方法使用的贴图、图标资源。放在Gizmos文件夹中的贴图资源可以直接通过名称使用,可以被Editor作为gizmo画在屏幕上。
- StreamingAssets
- 这里的文件会被拷贝到build文件夹中,不会修改(移动和网页版不同,他们会被嵌入到最终build文件中)。它们的路径会因平台而有差异,但都可以通过
Application.streamingAssetsPath
来访问。如果知识访问数据,那么就将数据文件放在此目录中 - Plugins
- Plugins文件夹用来放native插件。它们会被自动包含进build中去。注意这个文件夹只能是Assets文件夹的直接子目录。 在Windows平台下,native 插件是dll文件;Mac OS X下,是bundle文件;Linux下,是.so文件。 跟Standard Assets一样,这里的脚本会更早的编译,允许它们被之外的脚本访问。
- Plugins/x86 如果为32bit或64bit平台创建游戏,那么这个文件夹下的native plugin文件会被自动的包含在游戏build中。如果这个文件夹不存在,则Unity会查找Plugins文件夹下的native pluglins。
- Plugins/x86_64 如果为32bit或64bit平台创建游戏,那么这个文件夹下的native plugin文件会被自动的包含在游戏build中。如果这个文件夹不存在,则Unity会查找Plugins文件夹下的native pluglins。 如果要创建universal build,建议你同时使用这两个文件夹。然后将32bit和64bit的native plugins放进相应的文件夹中。
- Plugins/Android 在这个文件夹里放入Java.jar文件。用于java语言的plugins。.so文件也会被包含进来。
- Plugins/iOS A limited, simple way to automatically add (as symbolic links) any .a, .m, .mm, .c, or .cpp files into the generated Xcode project.
- Audio 这里是放入声音的文件夹
- Effect 角色肯定有很多特效,所以可以将特效放入此文件夹。如果特效中有很多图片可以直接在此目录下新建Sources文件夹。
- Scripts 文件夹下面一般根据功能划分,辅助类Utils/ 管理UI/ 管理角色Role/
2、Unity资源下的材质
- 1:材质
- 材质是指某个表面的最基础的材料,如木质、塑料、金属或者玻璃等,用于渲染的纹理就是材质,一般我们可以通过着色器(shader)来进行材质的修改。
- 材质有两种:(物理材质统称为一种)
- 贴图材质(Materials): 通过材质可以让物体显示出贴图等的效果
- 物理材质(Physic Material): 用于设置物体之间的摩擦力/阻力
- 2D物理材质(Physic2D Material) : 用于设置2D物体之间摩擦力/阻力
这两种材质
在Unity中可以通过下列方式查看所有材质
All Materials
物理材质
代码语言:javascript复制 1、反弹球:
Dynamic Friction 0.4
Stract Friction 0.4
Bounciness 1
2、冰面:
Dynamic Friction 0.1
Stract Friction 0.1
Bounciness 0
3、铁质:
Dynamic Friction 0.25
Stract Friction 0.25
Bounciness 0
4、木质:
Dynamic Friction 0.45
Stract Friction 0.45
Bounciness 0
3、Unity资源下的纹理
1:什么是纹理
- 纹理:其实就是附着在材质之上,纹理要有丰富的视觉感受和对材质质感的体现,一般的纹理图片格式尺寸都是能够被2整除的图片
纹理的设置
我们导入的图片的的纹理
2:什么是图片格式
我们熟知的PSD, TIFF, JPG, TGA, PNG, GIF,BMP, IFF, PICT 默认扔进Unity中的图片格式都是Texture,在Unity5.5.0以后导入进来就是default
Max Size:尺寸如下:2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 或 2048像素。�纹理可不必是正方形,即宽度和高度可以不同。�一般最小像素大于等于32,最大像素大于等于8192. Format:表示图片显示的格式:
Format
default
我们能看到还是修改了很多东西,所以要求我们学东西一定要拿到最新的学习,不然后面使用就杯具了。
3:关于Unity的图片格式:Texture Type
- 法线贴图 (Normal maps) :灰度图,可以用作对象的高度图,呈现凹凸的表面。法线贴图用于法线贴图着色器,使低多边形模型看起来有更多的细节。这也是低模展示高模细节的一种手段
法线贴图
- EditorGUI and legacy GUI : 编辑GUI和传统的GUI
- Sprite(2D and UI) : 制作游戏或者虚拟UI界面就要选择这种格式
2D and UI
- CubeMap:立方图纹理:立方图纹理(Cubemap Texture)六个独立的正方形纹理的一个集合,这些纹理会用在一个虚构的立方体上。通常用来显示无限遥远的物体上的反射效果。类似的,天空盒(Skybox )如何在背景显示遥远的风景。内置的反射(Reflective )着色器在Unity使用立方图(Cubemap),以显示反射。
Cubemap
- Cursor:设置2D贴图作为光标的选项.设置一个2D贴图作为光标,唯一需要做的就是调用静态的Cursor.SetCursor方法并且将贴图作为第一个参数传递进去。因此,按照MonoBehaviour类逻辑,如果在Start()或 Awake()方法中调用了Cusor.SetCursor()方法,这样当前光标就应该替换为指定了第一个参数传递的2D贴图的光标。
Cursor
- 聚光灯贴图 Cookie : 聚光灯创建一个灯光 cookie,使用 cookies 给场景添加许多视觉细节是个很好的方法,使用灰度纹理精确控制游戏中的照明。 启用将灰度图转成 Alpha (Alpha From Grayscale)(以此创建一个灰度 cookie,Unity 会自动将其转换成一张 alpha 贴图)
- LightMap:光照贴图:这个东西绝对可以另开一篇讲解。光照贴图是将引擎中的光照信息记录下来,让后通过这张图片显示光照信息,减少系统的消耗,提高运行效率。
LightMap
- Single Channel:单通道图片类型