unity知识笔记

Unity中ab包压缩方案 LZMA 和LZ4比较

压缩大小:lzma比lz4小。
压缩时间:lzma会远远高于lz4.
解压缩时间:lzma的解压缩时间比lz4慢。lz4的解压缩时间比较快。
总结:lzma的压缩比大, lz4的解加载速度,解压缩时间比较快。从压缩比和速度来看lz4会更优

MipMap与LOD是何物?

LOD:
全称Level Of Detail,中文翻译“细节级别渐变”,顾名思义,不同的级别展示不同的细节,那么究竟这个技术是如何运用在游戏项目中的呢?通过例子我们来学习一下。关于为什么要使用这个技术,和游戏优化是密不可分的,使用这个技术可以减少需要处理的模型顶点数目,降低GPU性能瓶颈的风险。
原理:当模型离摄像机(可以是人物摄像机或其他摄像机)很远时,然后根据距离的远近使用不同模型级别,远的时候就选择低级别的模型,近的时候选择高细节模型,这样就可以减少模型上面的顶点和面片数量从而提高性能。

MipMap:
mipmap针对的是纹理贴图,大白话就是,一个模型身上会有贴图,当我们对这个贴图使用了MipMap技术之后,那么在游戏运行中这个模型的贴图会根据摄像机距离模型的远近而调整不同的不同质量的贴图显示。
原理:使用了MinMap技术之后会对这个贴图生成几张精度质量不同的贴图,内存占用变大。
所以关于这个技术是否使用,根据你的项目而定,什么都是有利有弊的。

Mipmap技术有点类似于LOD技术,但是不同的是,LOD针对的是模型资源,而Mipmap针对的纹理贴图资源
MipMap可以用于跑酷类游戏,当角色靠近时,贴图清晰显示,否则模糊显示

Animation和Animator 的区别

在Unity中,Animation和Animator都是用于处理动画的系统,但它们在实现和使用上有一些区别。以下是对它们的区别的系统总结:

Animation(动画系统):

基于关键帧的动画系统:Animation系统使用关键帧来定义动画,你需要手动设置和编辑关键帧的属性值。
针对游戏对象:每个Animation组件附加到一个特定的游戏对象上,用于控制该对象的动画。
需要预先创建动画剪辑:在Animation系统中,你需要在编辑器中创建动画剪辑,每个剪辑代表一个动画状态,然后通过脚本来控制播放这些剪辑。
相对较简单:Animation系统相对简单易用,适用于一些简单的动画需求。

Animator(动画控制器系统):

基于状态机的动画系统:Animator系统使用状态机来定义和控制动画,你需要创建状态机和转换规则来定义动画之间的切换。
针对游戏对象的组件:Animator组件附加到游戏对象上,用于控制该对象及其子对象的动画。
使用Animator Controller控制动画:你需要创建Animator Controller,它包含了状态机和动画状态的定义,然后将Animator组件与Animator Controller关联起来。
支持过渡和条件:Animator系统支持状态之间的过渡,可以通过条件来触发状态之间的切换。
动态调节参数:你可以在运行时通过脚本调节Animator Controller中定义的参数,实现动画的控制和过渡调整。
更灵活和高级:Animator系统提供了更多灵活和高级的功能,适用于复杂的动画需求和交互逻辑。
总结:
Animation系统是基于关键帧的简单动画系统,适用于简单的动画需求,而Animator系统是基于状态机的更复杂和灵活的动画控制系统,适用于复杂的动画需求和交互逻辑。在选择使用哪个系统时,可以根据实际需求和项目的复杂程度进行评估和选择。

需要注意的是,Animation和Animator可以结合使用,根据项目的需求和情况来选择合适的动画处理方式。

携程

在Unity中,协程(Coroutine)是一种特殊的函数类型,用于实现异步操作和协作式多任务处理。它是Unity提供的一种编程工具,用于简化异步编程和时间控制。

协程本质上是一种可以暂停和继续执行的函数,它可以在特定的时间点暂停执行,然后在稍后的时间点恢复执行,而不会阻塞整个程序或线程。这种特性使得协程非常适合处理需要延迟、异步或分阶段执行的任务。

以下是协程的一些特点和用途:

异步编程:协程提供了一种简单且直观的方式来实现异步操作。通过在协程中使用yield return语句,可以将任务划分为多个步骤,并在每个步骤之间进行等待和处理。

时间控制:协程可以用于处理时间相关的操作,例如延迟执行、定时器、动画序列等。通过在协程中使用yield return new WaitForSeconds()等语句,可以实现在指定时间后继续执行下一步操作。

逻辑流程控制:协程可以用于管理游戏中的复杂逻辑流程,例如游戏关卡的切换、任务的执行顺序等。协程的暂停和恢复机制使得可以更灵活地控制程序的执行流程。

效果和动画控制:协程可以用于创建各种效果和动画的控制。通过在协程中逐帧更新对象的属性或状态,可以实现平滑的动画效果。

协程的本质是通过迭代器(Iterator)和状态机(StateMachine)的组合来实现的。在C#中,协程函数被编译成一个迭代器方法,它会返回一个IEnumerator对象。协程函数中的yield return语句会生成一个yield指令,并将协程的当前状态和需要等待的时间等信息保存在IEnumerator对象中。通过迭代器的迭代操作,协程函数可以在需要等待的时间点暂停执行,并在下一次迭代时继续执行。

Unity提供了内置的协程管理器(Coroutine Manager),它负责协程的调度和执行。你可以使用StartCoroutine函数启动一个协程,使用StopCoroutine函数停止一个协程,并使用yield语句控制协程的执行流程。

总之,协程是Unity中一种方便且强大的工具,用于实现异步编程、时间控制和逻辑流程控制。它的本质是基于迭代器和状态机的特殊函数类型,可以将任务分解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当学习Unity3D时,以下是一些重要的笔记: 1. Unity3D基础知识: - 游戏对象(Game Objects)和组件(Components):了解游戏对象的层次结构和组件的作用。 - 场景(Scenes)和摄像机(Cameras):学会如何创建场景并设置摄像机视角。 - 材质(Materials)和纹理(Textures):掌握如何创建和应用材质和纹理。 - 动画(Animations):学习如何创建和控制游戏对象的动画。 2. 脚本编程: - C#语言基础:了解C#语言的基本语法和面向对象编程概念。 - Unity脚本编写:学习如何编写脚本来控制游戏对象的行为和交互。 - 常见组件和功能:掌握常见的Unity组件和功能,如碰撞器(Colliders)、刚体(Rigidbodies)、触发器(Triggers)等。 3. 游戏开发流程: - 设计游戏关卡:了解如何设计游戏场景和关卡,包括布局、道具、敌人等。 - 游戏逻辑实现:将游戏规则和玩家交互转化为代码实现。 - UI界面设计:学习如何设计游戏中的用户界面,包括菜单、计分板等。 - 游戏优化和调试:优化游戏性能,解决常见的错误和问题。 4. 学习资源: - Unity官方文档和教程:官方提供了大量的文档和教程,逐步引导你学习Unity3D。 - 在线教程和视频教程:网上有很多免费和付费的Unity教程和视频教程,可根据自己的需求选择学习。 - 社区论坛和博客:加入Unity开发者社区,与其他开发者交流并获取帮助。 通过系统地学习这些内容,你将能够掌握Unity3D的基础知识并开始开发自己的游戏项目。记得不断实践和尝试,不断提升自己的技能!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值