![](https://img-blog.csdnimg.cn/6609f12bd02b4af0acf91b8411c9ab0c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
unity笔记
unity学习笔记
傻Q爱
游戏开发爱好者
展开
-
Unity中常见的脚本生命周期函数及顺序
需要注意的是,这个顺序并不是严格的,有些函数会在特定条件下被调用,例如OnGUI()只会在有GUI时才会被调用。同时,如果有多个脚本附加在同一个GameObject上,它们的生命周期函数也会按照某种顺序进行调用,但这个顺序是不确定的,因此应该尽量避免在不同的脚本中使用相互依赖的生命周期函数。LateUpdate():在 Update 之后调用,用于在 Update 逻辑执行完成后进行一些额外的操作。Awake():当对象被创建时调用,用于初始化对象的引用和状态。原创 2023-04-27 08:12:29 · 2234 阅读 · 0 评论 -
Unity上线部署与发布
发布游戏:一旦游戏通过测试并且准备好发布,就可以将发布包上传到目标平台的应用商店或其他发布渠道,例如Google Play、App Store等。调整项目设置:在Unity编辑器中,需要进行一些项目设置的调整以确保项目能够在目标平台上正常运行,例如调整分辨率、屏幕适配、平台特定的设置等。测试和优化:在将发布包发布到目标平台之前,需要进行测试和优化,以确保游戏在目标平台上能够正常运行,这可以包括性能测试、兼容性测试、UI测试等。构建发布包:在Unity编辑器中选择目标平台,进行构建,并生成一个发布包。原创 2023-05-07 14:34:22 · 869 阅读 · 0 评论 -
Unity UI管理要怎么做?包括一些什么东西?
UI(User Interface,用户界面)管理是游戏开发中一个非常重要的部分,它主要负责游戏中各种菜单、按钮、提示框等用户交互界面的创建、布局、显示、更新和销毁。UI的数据绑定和事件处理:在UI中,通常需要将数据与UI进行绑定,比如将游戏中的玩家信息与UI中的头像、金币等显示相关联。UI的创建和管理:在游戏中,UI需要动态创建、显示和销毁,同时还需要考虑UI的布局、层级等问题。比如UI的颜色、字体、图标等需要统一,按钮的位置、大小、样式等需要符合一定的规范。原创 2023-04-21 14:47:55 · 533 阅读 · 0 评论 -
Unity PlayerPrefs、JsonUtility
JsonUtility是Unity内置的一个用于序列化和反序列化Json数据的工具,可用于存储和读取复杂的游戏数据,如游戏设置、存档等。PlayerPrefs是Unity内置的一种轻量级数据存储方式,可用于存储少量的游戏数据,如分数、解锁状态等。注意:使用JsonUtility存储和读取数据时,需要将数据转换为Json格式的字符串,并将其保存在本地文件中,因此需要注意数据的安全性和完整性。Unity中有两个常用的数据存储方式:PlayerPrefs和JsonUtility。原创 2023-05-07 12:15:18 · 1083 阅读 · 0 评论 -
unity Lua热更新原理
Unity中的Lua热更新是指在游戏运行过程中,可以动态更新Lua脚本代码,而无需重新编译整个游戏项目。一般情况下,初始时会加载本地的Lua脚本文件,随后在需要更新时,通过资源管理系统下载服务器上的最新Lua脚本文件。这些库提供了在游戏运行时执行Lua脚本的功能。总的来说,Unity中实现Lua热更新的原理就是利用Lua解释器和资源管理系统,实现动态加载和执行最新的Lua脚本文件,从而实现游戏的更新和功能扩展。更新Lua脚本:当有新的Lua脚本文件可用时,通过资源管理系统将新的Lua脚本文件下载到本地。原创 2023-06-14 10:21:31 · 482 阅读 · 0 评论 -
Unity的渲染
Unity的渲染是通过使用Graphics API(Graphics Processing Interface)来实现的,常见的API有OpenGL和Direct3D。在Unity中,渲染管线(Render Pipeline)负责渲染场景,其中包括三个主要阶段:几何体处理(Geometry Processing),光照计算(Shading)和输出(Output)。在几何体处理阶段,Unity会根据场景中所有的3D模型、粒子、天空盒等等来生成一个场景中的三角形网格(Mesh)。原创 2023-04-24 13:50:54 · 3721 阅读 · 0 评论 -
unity 摄像机消耗什么?
遮挡剔除(Occlusion Culling):如果场景中存在大量物体,即使这些物体不在摄像机的视野范围内,摄像机也需要对它们进行遮挡剔除处理,以减少渲染开销。综上所述,摄像机消耗的主要资源是 CPU 和 GPU,而具体消耗的大小则和场景中物体的数量和复杂度、摄像机的分辨率、帧率等因素有关。如果场景中的物体数量较多或复杂度较高,可以通过优化遮挡剔除等方式来减少摄像机的消耗。渲染:摄像机需要根据场景中的物体渲染出对应的图像。摄像机的渲染开销主要和场景中的物体数量、复杂度以及材质等因素有关。原创 2023-04-21 14:48:05 · 261 阅读 · 0 评论 -
C# A*算法
A*算法是一种广泛使用的路径搜索算法,通常用于寻找在给定地图或图形中,起点到目标点之间的最短路径。它是一种基于贪心策略的启发式搜索算法,可以在大多数情况下找到最短路径。原创 2023-04-24 13:51:44 · 1703 阅读 · 1 评论 -
unity XML进行文件读写
XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它可以将数据存储在文本文件中,以便于读取和处理。总的来说,XML 文件读写可以方便地存储和读取数据,但相对来说可能会比较慢,因为需要进行序列化和反序列化操作。上面的代码创建了一个 PlayerData 对象,然后使用 XML 序列化器将该对象写入 XML 文件中。需要注意的是,这里的文件路径是在应用程序目录下创建的。上面的代码从 XML 文件中读取了一个 PlayerData 对象,并输出了该对象的属性值。原创 2023-04-26 19:05:06 · 871 阅读 · 0 评论 -
C# 性能优化和Unity性能优化
使用并发集合:如果需要处理并发的数据结构,可以使用 .NET Framework 中提供的并发集合,例如 ConcurrentDictionary、ConcurrentQueue 等等。例如,如果需要频繁地插入和删除元素,那么链表比数组更适合,因为链表的插入和删除操作比数组更快。避免使用反射:反射是一个非常强大的工具,但它的使用会导致性能损失。如果需要在循环中创建对象,应该尽量重用对象,或者使用对象池。总之,C# 性能优化是一个需要综合考虑的问题,需要从各个方面入手,不断优化代码,提高性能。原创 2023-05-16 21:12:54 · 1352 阅读 · 0 评论 -
Unity Light(光源)、LightMap、Light Probes
使用Light组件可以为场景中的物体增加逼真的光照效果,提高场景的真实感。在使用Light组件时,可以设置光源的颜色、强度、阴影等属性,以及光照的范围和衰减等参数。需要注意的是,使用光照效果可能会对性能产生一定的影响,特别是在移动设备等资源有限的平台上。Directional Light(方向光):模拟远处的太阳光或月光,光线是平行的,不受位置影响,常用于模拟白天或夜晚的整体光照。Point Light(点光源):从一个点向四面八方发射光线,模拟点光源,例如灯泡、蜡烛等,可以产生辐射状的光照效果。原创 2023-05-17 12:59:01 · 1090 阅读 · 0 评论 -
Unity阴影(Shadow)、Shadowmap
需要注意的是,阴影的计算和渲染是相对消耗资源的操作,对于性能要求较高的场景,需要进行适当的优化和权衡,例如降低阴影的分辨率、限制阴影的投射范围或使用静态预计算的方法。级联阴影图(Cascade Shadow Maps):用于近距离和远距离阴影投射效果不同的场景,将远处物体的阴影分为多个级联阴影贴图,以提高阴影的质量和细节。阴影可以增加场景的真实感,并在视觉上提供深度和空间感。阴影遮罩(Shadow Masks):使用阴影遮罩技术,通过在场景中创建特定的遮罩对象,限制阴影的投射范围,从而优化实时阴影的性能。原创 2023-05-17 13:02:12 · 1888 阅读 · 0 评论 -
unity 动画系统
Unity动画系统是Unity中非常重要的一部分,它提供了一个强大的框架来实现动画。Unity动画系统可以处理几乎所有的动画需求,从简单的2D动画到复杂的3D动画。Unity动画系统的核心是动画剪辑(Animation Clip)。动画剪辑是一个存储动画数据的文件,其中包含动画的关键帧数据、曲线信息和其他与动画相关的设置。使用Unity的编辑器可以创建和编辑动画剪辑,也可以使用代码进行创建和编辑。Unity动画系统的基本工作流程是创建一个动画剪辑,然后将其与游戏对象的动画组件相关联。原创 2023-05-17 13:04:02 · 729 阅读 · 0 评论 -
Unity 粒子系统
可以通过编辑器界面或编写脚本来设置和调整粒子的属性和行为,并与其他功能模块进行交互和控制,实现更复杂和多样化的粒子效果。粒子的生命周期和衰减(Particle Lifecycle and Decay):粒子具有生命周期,可以设置粒子的寿命和衰减效果。通过调整粒子的生命周期和衰减参数,可以控制粒子的持续时间、逐渐消失的效果等。粒子发射器(Particle Emitter):粒子发射器是粒子系统的核心组件,用于发射和控制粒子的生成和发射。通过调整发射器的参数,可以控制粒子的初始位置、速度、方向、发射速率等。原创 2023-05-17 13:04:26 · 699 阅读 · 0 评论 -
Unity 数据管理(整个游戏的数据怎么管理,数据系统怎么设计)
高性能:考虑到游戏数据系统需要支持高并发的访问,需要采用高性能的数据存储方案,比如采用内存数据库、缓存等方式,提高系统的性能。数据一致性:保证不同的数据操作之间的一致性,比如数据的写入和读取操作需要互斥,防止数据出现脏读或不可重复读等问题。数据缓存:为了提高游戏的性能,通常需要将游戏数据进行缓存,比如将常用的数据放在内存中,减少数据库读写操作。除此之外,还需要考虑数据的版本控制、数据的迁移、数据的验证等问题,以保证数据的质量和稳定性。原创 2023-04-21 14:49:31 · 1520 阅读 · 0 评论 -
Unity 四元数和欧拉角的关系
欧拉角和四元数之间的转换可以通过Unity中的Quaternion和Transform组件中的rotation属性来完成。可以使用Quaternion.Euler函数将欧拉角转换为四元数,也可以使用Quaternion.ToEulerAngles函数将四元数转换为欧拉角。但是需要注意的是,欧拉角存在万向锁(Gimbal Lock)的问题,即当旋转角度接近90度时,会出现某个轴失去旋转自由度的问题。而四元数则不存在万向锁的问题,因此在旋转计算时,建议使用四元数来进行计算。原创 2023-04-21 13:57:06 · 491 阅读 · 0 评论