Unity特效学习:动画

Unity动画创建

  • 选中物体后按Ctrl+6可以开启动画编辑器。
    image

Unity特效学习:粒子

参数

  • 只记录一些特别的参数
  • Prewarm: 预热,效果是直接播一个周期后的效果。也就是呈现一个周期的最终效果。目前来看应该是用到一些一开始就呈现效果的场合。
  • StartSpeed:这个是很常规的参数,但是当为负数时粒子方向会相反。值得留意。
  • Color:
    • Gradient:梯度,更像是设定一个颜色的变化范围。但是某个粒子从创建之后颜色不会变化。
    • Random:粒子颜色从两个值随机取
    • 还有梯度随机
    • 纯粹随机:这个可以自定义N个颜色区间。
    • 梯度编辑器很强大。注意:点击颜色条上沿添加的节点是调整alpha的,下沿是调整颜色的。藏的好深啊。

Gamma校正与线性空间

前言

  • 近期看了一篇文章,主要讲了如何处理lightmap在Android平台下下偏暗的问题。引发了对gamma校正的好奇。

Unity Android二次开发经(血)验(泪)谈(史)

主要参考的是这篇文章,不过在这个期间遇到了各种的问题,在这里写出来,希望看到的人能够少走弯路。

准备工作

  • 安装Android Studio(以下用AS代替),然后通过它下载Android SDK和tools。
  • AS目前已经是3.0版本,在3之前不支持java8,也就是说没有lambda和一些新的特性。
  • 从AS上可以下载到的build-tool是27,但是最新的tools是unity不支持,会在输出工程的时候报错,目前我使用的是26。
  • PS:实际上在这几天的尝试过程中使用27在unity端会有一个can not get xx list的错误,通过网上查询说是build tools版本的问题。而AS端似乎也有问题,不过没有记清楚。

浅析Timeline结构

结构

PlayableDirector Timeline
PlayableGraph Graph
TrackGroup TrackGroup
TrackAsset AnimationTrack PlayableTrack CinemachineTrack CustomTrack
TimelineClips TimelineClips TimelineClips TimelineClips
PlayableAsset AnimationClip (Motion) CustomPlayableAsset CinemachineShot CustomClip
PlayableBehaviour PlayableBehaviour PlayableBehaviour CinemachineShotPlayable PlayableBehaviour

Unity返回Value的协程

起因

  • 其实一直以来就有个想法,希望能让unity中的coroutine返回一个具体的数值,比如int,比如string或者一个GameObject。最近也查了些资料,然后总结一下这个功能如何实现。

AssetBundle学习笔记:Resources文件夹

Resources文件夹

  • 这个章节内容不多,但是也很有用。我们可以从这个章节中学习如何更合理的使用它。

Resources系统的最佳实践

不要使用它

  • 是的,不要使用它。因为它有以下问题:
    • 使用 Resources 文件夹会让内存颗粒度管理变得更困难
    • 不正确的使用 Resources 文件夹会增加应用启动时间(因为要创建上一章讲的映射图)和包的大小,随着在 Resources 文件中的文件增加,管理这些文件会变得很困难。
    • Resources系统降低了项目自定义分发内容到具体平台的能力,消除了增量更新的可能。AssetBundle 变体是 Unity 用来在不同设备上调整内容的基础。

AssetBundle学习笔记:资产、对象和序列化

前言

  • 这篇及后续的几篇笔记是我阅读A guide to AssetBundles and Resources的一些记录。官方的这个系列文章详细的阐述了unity是管理资源的。从一个asset的导入开始,unity就在背后开始了它的工作。它为每个资源创造了一个mate文件,给予了资源一个唯一的ID,从此这个资源的一切都与这个ID紧密结合到了一起。可能我们的一些操作会导致资源丢失它的mate文件,这会造成一些很不好的后果。
  • 与此同时,系列文章中还重点阐述了什么是AssetBundle,如何下载AssetBundle和如何从AssetBundle中加载asset。
  • 最关键的是最后一章,在这一章中详细的描写了AssetBundle的制作策略。AssetBundle可以说是unity中至关重要的一个概念,但是在日常的工作中按照怎么样的颗粒度来划分AssetBundle,如何平衡AssetBundle的精细度和方便性,这一直以来是一个让人头痛的问题,第四章中给出了一些答案。

5.6混合光照

原文地址

原有混合光照的问题

  • 5.6之前的光照存在一个严重的问题就是: 混合光照仅当只有一个定向光时才能正常工作。
  • 这是什么个意思呢?
    • 首先说一下unity的GI一直以来都是依靠烘焙来做的,但是在unity5中加入了PRGI。
    • 目前的unity在一个场景中可以混合使用烘焙光照和实时光照,一部分静态对象使用烘焙好的光照和影子,而一些非静态的对象可以继续接受实时光照的影响。这个需要我们把Light Type设置为Mixed。
    • 不过静态对象会既受烘焙的影响又受实时光的影响,从而产生不好的效果。mixed模式就是为了解决这个问题而出现的,理想情况下,混合模式会为你料理好一切,照亮相同平衡范围内的动、静态对象(从而保留了视觉逼真度与一致性)。只是一切都不是那么的美好,事实上是动态物体不会从spotlight上产生阴影。
    • 需要特别声明一下,我自己的测试中完全没有发现上面的问题,目前不知道原因。

AssetBundle学习笔记:4、AssetBundle的下载与asset的加载

AssetBundle的下载

下载AssetBundle

  • 首先需要理解的是这个下载就是指的从网络下载。因此只有WWW和 WWW.LoadFromCacheOrDownload两个方法。
  • www是不带缓存的,而后者是带缓存的。
  • LoadFromCacheOrDownload的version参数,如果缓存中不存在,或者version低于指定的版本就会重新下载,否则直接从缓存拿数据。缓存数据应该是始终在磁盘上的,而5.3以后缓存文件也压缩为LZ4(好像是可配置的),所以读取cache的数据很可能与LoadFromFile是等效的。
  • 如果多个AssetBundle使用WWW.LoadFromCacheOrDownload下载,每帧只能完成一个。
  • LoadFromCacheOrDownload中如果发现缓存文件夹已经满了,会优先删除最近没有使用的cache,但是如果磁盘本身就满了或者说cache folder已经满了(这个东西是有容量限制的)那么会把AssetBundle数据直接按照stream的形式放到内存,这个和new WWW的做法完全一样。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×