【STL】无序容器unordered_set,unordered_map,unordered_multiset,unordered_multimap
本文的所有语句都经本人验证,均正确使用。由于本文涉及内容比较多,为了尽可能的讲详细些,会把各种例子附上,所以代码样例会比较多,也为了更好的布局,本系列将分开讲解,并且前期为了更加贴合实战需求,暂时只对一些常用的STL容器和基本功能进行讲解。为了使每篇文章具有一定的独立性,后续的文章大多数会将之前文章涉及的知识点中提取,并且在后续会将相应的例子补上。本文STL系列知识参考《C++语言程序涉及(第5版)》
【数据结构与算法】超详细哈夫曼编码JAVA解释
依据文档要求,用户需要输入源文件和目标文件名,那么如何将提取源文件内容是重点,常见的提取方式是提取源文件的字符,即采用char数组存储,然而这种方式只能实现对文本文件的压缩和解压,不能对非文本文件进行压缩和解压,并且要实现任何文件的哈夫曼编码,只能对源文件中的字节进行哈夫曼编码,而采用int数组在实现转换字节的理解和编程上困难,故本文采用byte数组进行模拟,并且通过输入流提取源文件的字节数组。当递归到叶子节点时,将节点的字节值作为哈夫曼编码map的key,将对应的哈夫曼编码字符串作为map的value。
网格(Mesh)基础
Mesh概念:Mesh是模型的网格,通过点构成线,再由线构成三角形,最后由三角形构成面,然后通过材质来进行网格表面的表达,如阴影,贴图等。Unity除了ui的mesh,其他都需要MeshFilter来确定网格形状,通过Material以及MeshRenderer来进行网格渲染。
H.265流媒体播放器EasyPlayer手机端播放画面出现强制拉伸现象的解决办法
EasyPlayer现有多个版本,包括EasyPlayer-RTSP、EasyPlayer.js、EasyPlayerPro等,可支持RTSP、RTMP、HTTP、HLS、UDP、RTP、File等多种流媒体协议播放。
UGUI源码解析三:EventData
EventData主要是用来封装事件系统中的数据。主要以下类组成:1.AbstractEventData:事件数据的抽象基类,主要用于判断事件数据是否使用2.BaseEventData:事件数据基类,继承自AbstractEventData,主要封装了几个事件系统角色的引用3.AxisEventData:轴事件数据类,继承自BaseEventData,主要封装了与轴事件相关的数据,手柄和键盘中控制轴向相关时主要用这个类型。
【Unity】动态设置脚本执行顺序DefaultExecutionOrder
相当于在Project Settings中手动设置了脚本执行顺序100。在类名前使用特性DefaultExecutionOrder。
【Unity】Cinemachine混合导致的LateUpdate中计算异常
CinemachineBrain中默认的BlendUpdateMethod是使用LateUpdate更新,我们常用的也是此模式。我们所写的其他脚本默认执行顺序为0。所以我们的LateUpdate其实是在CinemachineBrain位置混合之前执行。但在此模式下,由于Cinemachine插件默认将此脚本的执行顺序设置为100。如果此时通过主相机,进行坐标切换,如本地转世界,世界转本地,则会导致结果异常。应将编写的脚本的脚本执行顺序调整到CinemachineBrain之后。
【Unity】为网格生成顶点法线(Mesh.RecalculateNormals计算异常的解决方案)
如果Mesh中的某个顶点,在三角形标号数组中,即画了正面的网格,又画了反面的网格,则会导致RecalculateNormals计算错误,该点法线计算结果为(0, 0,0)。:法线数组存放Mesh每个顶点的法线,数组大小与顶点坐标对应,normals[i]对应顶点vertices[i]的法线。对于双面网格,将顶点数组增加一倍,用于绘制反面的网格,分别放入Mesh的三角形标号数组中,以保证每个点法线计算正确。如下图,左边物体有正确的法线,可以接收光照信息,右侧物体无法线,无法接收光照。
今日推荐
周排行