目录
A.简介
此文是对unity文件夹,和一些awake(),Start(),Update()等一些方法的详细介绍
B. 文件夹结构
Assets:这是存放项目各种资源(如模型、材质、脚本、场景等)的主要文件夹。
Library:Unity 自动生成的库文件夹,包含项目导入资源的预处理数据和缓存。
Logs:存储 Unity 运行时产生的日志文件,用于排查问题和错误。
obj:包含中间编译文件和对象文件。
Packages:用于存放 Unity 项目所使用的包(Package)的相关信息和资源。
ProjectSettings:保存项目的各种设置,如输入设置、图形设置、物理设置等。
Temp:临时文件存储文件夹,可能包含临时生成的数据或缓存。
UserSettings:存储用户特定的设置,例如编辑器布局、窗口大小等。
.vsconfig:与 Visual Studio 相关的配置文件。
Assembly-CSharp.csproj:C# 项目文件,用于在 Visual Studio 中打开和管理 C# 代码。
One.sln:解决方案文件,用于在 Visual Studio 中打开整个项目的解决方案。
这些文件夹和文件在 Unity 项目的开发和运行中都有着特定的作用,共同构成了一个完整的 Unity 项目结构。
下面是Assets文件夹内:
Scenes(场景文件夹):
用于存放 Unity 场景文件(.unity)。Scripts(脚本文件夹):
专门存放 C# 或其他编程语言编写的脚本文件,用于控制游戏逻辑和对象行为。Prefabs(预制体文件夹):
预制体是可重复使用的游戏对象模板。将经常使用或需要统一管理的游戏对象制作成预制体存放在此。Textures(纹理文件夹):
存储各种图像纹理资源,如图片文件。Materials(材质文件夹):
包含用于渲染物体的材质文件。Animations(动画文件夹):
存放动画剪辑(Animation Clip)等动画相关资源。Audio(音频文件夹):
用于保存游戏中的声音和音乐文件。Plugins(插件文件夹):
放置第三方插件或自定义的原生插件。Editor(编辑器扩展文件夹):
其中的脚本仅在 Unity 编辑器中运行,用于自定义编辑器的功能和行为。
例如,在一个冒险游戏项目中:
Scenes
文件夹保存了不同的关卡场景,如MainLevel.unity
和BonusLevel.unity
。Scripts
中有控制角色移动、与 NPC 交互等功能的脚本。Textures
存放角色的皮肤、地图的背景等纹理。
编写的一些编辑器本身的一些功能脚本,要放在Editor文件夹内,插件要放在Plugins(插件文件夹)
通过合理组织和分类项目资源到不同的文件夹,可以提高项目的可维护性和开发效率。
C.常用函数
Awake
函数:
- 执行时机:在脚本实例被创建时立即调用,并且在整个游戏生命周期中只被调用一次,无论该脚本是否启用。
- 用途:常用于对象的初始化操作,比如获取其他游戏对象的引用、初始化变量、设置一些全局的配置等。因为它在
Start
函数之前调用,所以适合进行一些不依赖于其他脚本初始化完成的操作。
Start
函数:
- 执行时机:在对象第一次启用脚本后的第一帧更新之前调用,仅在对象激活时调用一次。
- 用途:通常用于进行依赖于其他脚本初始化完成后的设置,或者一些在游戏开始时需要执行的一次性操作。
Update
函数:
- 执行频率:每帧都会被调用(帧速率取决于设备性能和设置)。
- 用途:用于实现游戏对象的实时逻辑更新,比如处理玩家输入、移动、动画播放等与游戏实时状态相关的操作。
FixedUpdate
函数:
- 执行频率:以固定的时间间隔调用,通常用于处理与物理相关的操作,因为物理模拟是基于固定的时间步长。
- 用途:例如控制刚体的运动、施加力等物理行为,以获得更稳定和准确的物理效果。
LateUpdate
函数:
- 执行频率:在
Update
函数之后每一帧调用。- 用途:常用于跟随后处理的逻辑,比如摄像机跟随玩家的移动,确保在其他对象的位置和状态更新后再进行相关操作。
OnEnable
函数:
- 执行时机:当脚本组件被启用时调用。
- 用途:可以在此进行一些需要在启用时执行的初始化或重置操作。
OnDisable
函数:
- 执行时机:当脚本组件被禁用时调用。
- 用途:用于清理资源、停止某些正在进行的操作等。
OnDestroy
函数:
- 执行时机:当对象被销毁时调用。
- 用途:进行资源释放、清理内存等最终的清理工作。
OnCollisionEnter
、OnCollisionStay
、OnCollisionExit
函数:
- 执行时机:分别在与其他碰撞体开始碰撞、持续碰撞、结束碰撞时调用。
- 用途:处理碰撞相关的逻辑,比如造成伤害、触发事件等。
OnTriggerEnter
、OnTriggerStay
、OnTriggerExit
函数:
- 执行时机:分别在进入触发器、在触发器内停留、离开触发器时调用。
- 用途:常用于实现特殊的交互区域,如触发剧情、加载新场景等。
OnGUI
函数:
- 用途:用于绘制用户界面(GUI)元素,如按钮、文本框、滑块等。在每一帧都会被多次调用以处理 GUI 渲染。
OnMouseDown
、OnMouseUp
、OnMouseEnter
、OnMouseExit
等鼠标相关函数:
- 用途:分别在鼠标按下、抬起、进入、离开游戏对象时触发,可用于实现与鼠标交互的特定逻辑。
OnBecameVisible
和 OnBecameInvisible
函数:
- 用途:当游戏对象在摄像机中变得可见或不可见时调用,可用于优化资源加载或执行特定的视觉效果。
OnAnimatorIK
函数:
- 用途:用于在动画播放过程中控制反向动力学(Inverse Kinematics,IK),以实现更自然的动画效果。
OnParticleCollision
函数:
- 用途:当粒子与其他碰撞体发生碰撞时调用,可用于处理粒子与环境的交互效果。
OnJointBreak
函数:
- 用途:当关节断开时触发,适用于处理与关节相关的物理事件。
D. 支持的资源类型
在 Unity 中,常见支持的图片、模型和音乐格式如下:
图片格式:
- PNG
- JPEG
- TGA
- BMP
模型格式:
- FBX
- OBJ
- glTF
音乐格式:
- MP3
- WAV
- OGG
需要注意的是,虽然 Unity 支持这些格式,但在实际项目中,根据具体的需求和性能考虑,可能会更倾向于使用某些特定的格式。
例如,对于图片,如果需要透明效果,PNG 格式通常是较好的选择;对于音乐,MP3 格式在文件大小和兼容性方面表现较好,而 WAV 格式则在音质上更优。