Unity工程里的那些东西

简介: 1、特殊文件夹(unity doc : Special Folders)Unity工程根目录下,有三个特殊文件夹:Assets、Library、ProjectSettingsAssetsUnity工程中所用到的所有Asset都放在该文件夹中,是资源文件的根目录,很多API都是基于这个文件目录的,查找目录都需要带上Assets,比如AssetDatabase。

1、特殊文件夹(unity doc : Special Folders)
Unity工程根目录下,有三个特殊文件夹:Assets、Library、ProjectSettings

Assets

Unity工程中所用到的所有Asset都放在该文件夹中,是资源文件的根目录,很多API都是基于这个文件目录的,查找目录都需要带上Assets,比如AssetDatabase。

Library

Unity会把Asset下支持的资源导入成自身识别的格式,以及编译代码成为DLL文件,都放在Library文件夹中。

ProjectSettings

编辑器中设置的各种参数

下面都是存在Assets目录下的文件的了。

Editor

为Unity编辑器扩展程序的目录,可以在根目录下,也可以在子目录下,只要名字叫“Editor”,而且数量不限。Editor下面放的所有资源文件和脚本文件都不会被打进包中,而且脚本只能在编辑器模式下使用。一般会把扩展的编辑器放在这里,或只是编辑器程序用到的dll库,比如任务编辑器、角色编辑器、技能编辑器、战斗编辑器……以及各种小工具。

Editor Default Resources

名字带空格,必须在Assets目录下,里面放编辑器程序用到的一些资源,比如图片,文本文件等。不会被打进包内,可以直接通过EditorGUIUtility.Load去读取该文件夹下的资源。

Gizmos

Gizmos.DrawIcon在场景中某个位置绘制一张图片,该图片必须是在Gizmos文件夹下。

void OnDrawGizmos() {
Gizmos.DrawIcon(transform.position, "0.png", true);
}
OnDrawGizmos是MonoBehaviour的生命周期函数,但是只在编辑器模式下每一帧都会执行。Gizmos类能完成多种在场景视图中绘制需求,做编辑器或调试的时候经常会用到,比如在场景视图中绘制一条辅助线。(用Debug.DrawLine,Debug.DrawRay也可以绘制简单的东西)

Plugins

该文件夹一般会放置几种文件,第三方包、工具代码、sdk。

plugin分为两种:Managed plugins and Native plugins
Managed plugins:就是.NET编写的工具,运行于.NET平台(包括mono)的代码库,可以是脚本文件,也可以本身是DLL。NGUI源码就放在该文件夹下面的。
Native plugins:原生代码编写的库,比如第三方sdk,一般是dll、so、jar等等。

该文件夹下的东西会在standard compiler时编译(最先编译),以保证在其它地方使用时能找到。

Resources

存放资源的特殊文件夹,可以在根目录下,也可以在子目录下,只要名字叫“Resources”就行,比如目录:/xxx/xxx/Resources 和 /Resources 是一样的,而且可有多个叫Resources的文件夹。Resources文件夹下的资源不管用还是不用都会被打包进.apk或者.ipa,因为Unity无法判断脚本有没有访问了其中的资源。需要注意的是项目中可以有多个Resources文件夹,所以如果不同目录的Resources存在同名资源,在打包的时候就会报错。

Resources中全部资源会被打包成一个缺省的AssetBundle(resources.assets)。

在该文件夹下的资源,可以通过Resources类进行加载使用。API地址

Standard Assets

存放导入的第三方资源包。

StreamingAssets

该文件夹也会在打包的时候全部打进包中,但它是“原封不动”的打包进去(直接拷贝到的包里)。游戏运行时只能读不能写。

不同的平台最后的路径也不同,可以使用unity提供的Application.streamingAssetsPath,它会根据平台返回正确的路径,如下:

Mac OS or Windows:path = Application.dataPath + "/StreamingAssets";
IOS:path = Application.dataPath + "/Raw";
Android:path = "jar:file://" + Application.dataPath + "!/assets/";

我们一般会把初始的AssetBundle资源放在该文件夹下,并且通过WWW或AssetBundle.LoadFromFile加载使用。

更多unity2018的功能介绍请到paws3d爪爪学院查找。

相关文章
|
缓存 图形学
Unity 之 关于UnityHub无法打开项目的问题(弹出Unity启动界面有退回到Hub选择工程界面)
弹出Unity启动界面有退回到Hub选择工程界面方案一:万能的重启大法;方案二:未开启许可证;方案三:终极奥义 -- 弃用Hub
3333 0
Unity 之 关于UnityHub无法打开项目的问题(弹出Unity启动界面有退回到Hub选择工程界面)
|
6月前
|
存储 缓存 开发工具
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
1617 0
|
缓存 API 开发工具
Unity——工程与资源
Unity——工程与资源
246 1
|
开发工具 vr&ar 图形学
Pico SDK导入Unity工程
2022VR国赛即将开始,对于Pico与Unity的使用已经很熟练了,想为下一届参赛选手及Unity 3D引擎爱好者或者是Pico开发者 聊一下自己的理解,目前Unity引擎的主流打包平台设备就是Pico和Steam VR,我参加的国赛采用的是Pico设备,所以今天就先讲一下Pico
664 0
Pico SDK导入Unity工程
|
vr&ar 图形学
【Unity3D 灵巧小知识点】 ☀️ | 快速找到工程中挂载某个脚本的游戏对象
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
【Unity3D 灵巧小知识点】 ☀️ | 快速找到工程中挂载某个脚本的游戏对象
|
图形学 Android开发
Unity使用心得 之 ✨ Unity同一工程打包出多个安卓apk,不相互覆盖按照安装说明
Unity使用心得 之 ✨ Unity同一工程打包出多个安卓apk,不相互覆盖按照安装说明
Unity使用心得 之 ✨ Unity同一工程打包出多个安卓apk,不相互覆盖按照安装说明
|
Java 开发工具 Android开发
Unity 之 导出为Android工程及在AndroidStudio中使用记录
从Unity工程导出为Android工程,将导出工程在AS打开,并调试其编译通过,Unity和Android 互调
767 0
Unity 之 导出为Android工程及在AndroidStudio中使用记录
|
Android开发 图形学
Unity 之 AndroidStudio打开导出Android工程详解
本文记录使用AndroidStudio打开Unity导出的Android工程, 并进行调试, 打出APK
886 0
Unity 之 AndroidStudio打开导出Android工程详解
|
图形学 C++ C#
Unity工程无代码化
Unity工程无代码化目的Unity默认是将代码放入工程,这样容易带来一些问题。 代码和资源混合,职能之间容易互相误改。 当代码量膨胀到一定程度后,代码的编译时间长到无法忍受。新版的unity支持通过asmdef来将代码分成多个dll工程,有所缓解。
1892 0
|
4月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
220 6