Unity公开课中,有些内容谈到了这方面的内容,相对于查找网上的资源,学习官方提供的教程算是比较直接的方式。基于这些,同时结合一些其他资料,在这里整理一下有关的知识点。
Unity中AudioClip的导入设置
为了减少最后导出包体的大小,通常会对导入的音频文件做一些通用设置。将其写成一个工具栏的按钮,便于一键操作。
Unity导出XCode Workspace项目
XCode中,Project和Workspace的关系就类似于.net里Project和Solution。现在Unity的外部依赖一般都在用EDM4U管理,也就是External Dependency Manager For Unity,EDM可以选择导出项目的类型。
EDM4U Github地址
各个版本EDM4U UnityPackage
CSharp使用代码在新Terminal窗口执行命令
当通过代码调用其他系统命令或者程序时,需要弹出一个新的终端窗口,并在这个窗口中执行命令,命令执行完成后,这个窗口则会自动关闭。
在代码中通过MSBuild编译CSharp项目
MSBuild命令是微软提供的编译CSharp项目的一种方式。如果有这样的需求,将一个单Project的Solution编程生成DLL文件,然后将DLL文件作为依赖添加到Unity工程中,相比于每次都打开CSharp工程编译,通过代码进行这个操作较为方便。
快速排序
直白的说,快速排序的主要思想是分治,将一个大数组,分成两个数组,然后对两个数组分别排序。对小数组排序的时候,同样按照这种思想,分成两个,再排序。直到不能再分,也就是长度为1,那么这个小数组就排好,当所有的小数组都排好了的时候,整个大数组也就排好了。
DateTime的DateTimeKind参数
在DateTime的构造方法里,有个DateTimeKind类型的参数,在了解不同参数的区别后,可能会有一些新的理解。
XmlDocument里的NamespaceURI
当使用XmlDocument给Xml中的标签增加带前缀的属性时,需要明确指定namespace uri,如果使用root的,或是其他节点的,不会生效,简单在此做个记录。
关于CRLF和LF的问题
之前没有遇到过这方面的问题,只到这次遇到了,才注意到这个问题。在Mac生成的代码文件,再在Windows上生成覆盖一次,文件内容没有变化,但是git提示文件发生了改变,原因便是换行符的问题。
Unity使用VideoPlayer
https://docs.unity3d.com/cn/2021.1/Manual/class-VideoPlayer.html
官方使用文档,参数不多,且介绍的很详细,一般来说,都是使用VideoClip的方式,照着文档来就可以正常走通。但是,如果把视频资源打进AssetBundle里,当在Android 9及更低版本的手机上时,就会一片黑色,无法正常播放。