<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oyqho的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oyqho</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oyqho]]></copyright><item><title><![CDATA[UnityEngine.Accessibility命名空间]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/140587301</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/140587301</guid><author>oyqho</author><pubDate>Sun, 21 Jul 2024 13:52:35 +0800</pubDate><description><![CDATA[你可以把new Color[5]改成new Color[100]试试，会发现GetColorBlindSafePalette的返回值只有15，而打印出来的颜色也只有15种，尽管你申明了一百个，但colors中只有colors[0]到colors[14]的颜色是不重样的，colors[15]及后面的颜色值都是和前面重样的无效颜色了。至于为啥上限是只返回15个，我也不知道，Unity也没说，网络上也查不到相关资料。描述里面有不同颜色不同亮度对应不同的编号，可以进行一一对应，如下是我写出的一个测试代码。]]></description><category></category></item><item><title><![CDATA[Unity减小空项目打包体积]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/134483298</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/134483298</guid><author>oyqho</author><pubDate>Sat, 18 Nov 2023 20:36:24 +0800</pubDate><description><![CDATA[查找发现，System.Xml.dll和System.dll这两个文件就占了差不多2.5Mb，直接删除，确保在程序中不引用即可。（至于其余的一些琐碎的dll包，如果不懂的话就尽量别删除了，又不占多少空间，删了反而可能有麻烦）在打包出来的文件夹里，找到Data文件夹，再进入Managed文件夹内，就可以看到很多dll文件夹，其中有一些dll体积很大，但是又不需要使用。经过删除，只保留了两个包，一个是UI的包，另外一个是我用的Rider编辑器的包。删除了这么一大堆没有用的东西，包体积减小了0.5Mb。]]></description><category></category></item><item><title><![CDATA[Unity安卓项目录音权限报错]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/134430676</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/134430676</guid><author>oyqho</author><pubDate>Wed, 15 Nov 2023 22:11:04 +0800</pubDate><description><![CDATA[在Logcat查看安卓日志信息的时候，发现了这么一句报错：Error MscSpeechLog SpeechRecognizer stopListening failed, is not running。最后发现，原来是安卓手机的录音权限没有开导致的。Unity安卓项目录音权限报错。开一下录音权限，就ok了。]]></description><category></category></item><item><title><![CDATA[无重复字符的最长子串]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/132510940</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/132510940</guid><author>oyqho</author><pubDate>Sat, 26 Aug 2023 13:59:32 +0800</pubDate><description><![CDATA[【代码】三数之和。]]></description><category></category></item><item><title><![CDATA[链表-两数相加]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/132503719</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/132503719</guid><author>oyqho</author><pubDate>Fri, 25 Aug 2023 22:00:59 +0800</pubDate><description><![CDATA[【代码】链表-两数相加。]]></description><category></category></item><item><title><![CDATA[PCL高版本的bug问题]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/130591265</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/130591265</guid><author>oyqho</author><pubDate>Tue, 09 May 2023 23:33:13 +0800</pubDate><description><![CDATA[虽然说着简单，但是我用了三天，几乎把网上所有能找到的方法都尝试过了，才总算在1.11.1版本上找到了希望，并配置成功，于是记录一下博客。在安装PCL的时候，我最开始使用的是VS2022版本加上PCL 1.13.0，这两个都是最新的版本，结果就出现了一大堆的奇怪错误。在百度上根本查不到，不过我在谷歌上倒是看到了一点信息，翻译过来大概的意思就是说PCL高版本有一些BUG，所以可以降低版本解决报错。直到我把PCL版本降低到1.11.1的时候，vs版本为2019，才终于成功的配置好了PCL的环境。]]></description><category></category></item><item><title><![CDATA[VS实用偷懒快捷键]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/130032567</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/130032567</guid><author>oyqho</author><pubDate>Sat, 08 Apr 2023 18:28:37 +0800</pubDate><description><![CDATA[在做项目的时候，经常会遇到要修改一个变量的名称这种事情，重点来了，通常修改一个变量，需要修改几十个地方，如果手动的去修改的话，就问你麻不麻烦？而如果要批量的解除注释，也是一样的，先要选中需要批量解除注释的代码，按住Ctr不要松，按下K松开，最后按下U，就可以批量解除注释的代码了。Ctr+C的第二个用法：将光标移动到需要复制的某一行，然后按下Ctr+C，即可把那一行的内容全部复制，之后进行粘贴即可。当光标在某一行的时候，按下Alt键，再按下↑或者↓，就可以直接移动光标所在的行，也是一个比较方便的快捷键。]]></description><category></category></item><item><title><![CDATA[字符串3-字符串中的第一个唯一字符]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/130028476</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/130028476</guid><author>oyqho</author><pubDate>Sat, 08 Apr 2023 14:16:23 +0800</pubDate><description><![CDATA[【代码】字符串3-字符串中的第一个唯一字符。]]></description><category></category></item><item><title><![CDATA[字符串2-整数反转]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/130027182</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/130027182</guid><author>oyqho</author><pubDate>Sat, 08 Apr 2023 12:17:49 +0800</pubDate><description><![CDATA[这道题用了点取巧的办法进行暴力破解，等以后再来详细研究。]]></description><category></category></item><item><title><![CDATA[字符串1-反转字符串]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/130026570</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/130026570</guid><author>oyqho</author><pubDate>Sat, 08 Apr 2023 11:29:00 +0800</pubDate><description><![CDATA[【代码】字符串1-反转字符串。]]></description><category></category></item><item><title><![CDATA[数组10-旋转图像]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/130026465</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/130026465</guid><author>oyqho</author><pubDate>Sat, 08 Apr 2023 11:20:57 +0800</pubDate><description><![CDATA[【代码】数组10-旋转图像。]]></description><category></category></item><item><title><![CDATA[Canvas画布下的渲染顺序]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129999790</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129999790</guid><author>oyqho</author><pubDate>Thu, 06 Apr 2023 21:29:52 +0800</pubDate><description><![CDATA[上图中，HP_Panel_max是一个空物体，我会在这个空物体下动态的创建血条UI，而这个血条UI是最后被渲染的，所以当重叠时会被下面的所有UI给遮挡住。Canvas画布会先渲染最下面的子物品，然后再依次往上进行渲染，所以，把血条的位置给放在Canvas下的第一个位置就ok了，就能达到我的需求了。本来我还想着要搞什么复杂的东西，比如创建两个Canvas，但是在研究了一番之后，我发现在Canvas画布下的子物品其实也是有渲染顺序的。我发现我的Canvas下面，既有静态的UI界面，也有动态创建的血条UI。]]></description><category></category></item><item><title><![CDATA[LitJson做简易排行榜]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129992863</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129992863</guid><author>oyqho</author><pubDate>Thu, 06 Apr 2023 16:36:09 +0800</pubDate><description><![CDATA[这是我为了做排行榜专门创建一个类，在这个类的Start中，我首先用一个if判断了在Application.persistentDataPath路径下是否存在了我需要创建的文件，如果没有的话就进行if里面的初始化创建，如果有的话就不创建（必须进行判断）。第五步，排行榜数据的更新。如上图所示，这一段代码是专门用来做展示用的，可以将时间转换为时分秒，当玩家打开排行榜的时候，就调用该脚本获取存储时分秒的数据，并用Text进行显示。第四步，做一个排行榜的UI，然后要获取Text组件来进行排行榜的数据的显示。]]></description><category></category></item><item><title><![CDATA[限制游戏角色不能移动出屏幕外]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129942613</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129942613</guid><author>oyqho</author><pubDate>Mon, 03 Apr 2023 23:46:56 +0800</pubDate><description><![CDATA[举个很简单的例子，假如最小值是0，最大值是100。可以看到，Clamp纯粹就是用来限定value的值的，使得value的值小于最小值的时候返回最小值，大于最大值的时候返回最大值，如果在最大值和最小值之间则返回value。第一个Vector3，前面两个0，指的是屏幕左下角，而那个61.8f，是指游戏角色距离相机的距离。第一个参数是value，第二个参数是最小值，第三个参数是最大值。我们需要让角色敌人在屏幕内，这样玩家才能看得到，玩家体验才会更好。这样，就可以将角色的位置始终锁定在屏幕范围内。]]></description><category></category></item><item><title><![CDATA[血条制作以及移动]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129942439</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129942439</guid><author>oyqho</author><pubDate>Mon, 03 Apr 2023 23:29:52 +0800</pubDate><description><![CDATA[很简单，比如说，我需要把血条挂在角色的脑袋上，那么，我这个空物体的位置就在角色的脑袋上（这个空物体是角色的子物体，这样就可以跟随角色一起移动），就是这样。然后下面那句代码，hp_Panel就是血条（血条的黑色Image为父物体，绿色Image为子物体，这里是移动父物体hp_Panel），将血条移动到我第一句代码所设置的3D位置所代表的屏幕坐标。而如果HP大于0的话，就先算出HP的比例，然后下面调用localScale对x进行按比例缩小，就可以实现血条的控制了。角色的血条都是绿色的。]]></description><category></category></item><item><title><![CDATA[工具类的管理]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129942075</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129942075</guid><author>oyqho</author><pubDate>Mon, 03 Apr 2023 23:04:14 +0800</pubDate><description><![CDATA[然后我还创建了一个静态的s_prefab，在Start里面，把public的拖拽的引用赋值给了静态的s_prefab，如此一来，就可以用拖拽的预制体来实现静态方法了。实际上，在每一个工具类里面，我都封装了一个或者多个静态方法，这样很方便在其它类里面进行调用。static静态的变量是不能被显示在unity中的，因为静态变量是属于类的，所以unity中创建的对象没办法显示。当然，这只是我目前的想法，说不定这个管理方法也存在很多缺陷，但对于我目前做的这个小游戏来说已经足矣。没办法，出于下策，只能弄成这样了。]]></description><category></category></item><item><title><![CDATA[PlayClipPoint声音太小的问题]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129783016</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129783016</guid><author>oyqho</author><pubDate>Sun, 26 Mar 2023 19:17:57 +0800</pubDate><description><![CDATA[也就是说，让声音在摄像机的位置播放。（虽然发出声音的地方不在摄像机的位置，但是我们可以通过这个方法强行让声音在摄像机的位置播放，毕竟，如果玩家都听不到这个声音了，那就没什么用处了。我之前要添加声音的时候，都是通过给物体增加AudioSource组件来播放的。所以如果将第二个参数设置的位置离摄像机太远的话，玩家就听不到声音了。只需要把该静态方法的第二个参数传入摄像机的位置就可以了。我把音量设置为1，但是还是听不到声音，声音极小极小。玩游戏的时候，是通过摄像机来听游戏里面的声音的。我按照官方的来使用了。]]></description><category></category></item><item><title><![CDATA[物体摧毁时发出摧毁音效]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129740153</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129740153</guid><author>oyqho</author><pubDate>Thu, 23 Mar 2023 21:42:14 +0800</pubDate><description><![CDATA[于是我就把子弹消失（destroy）和摧毁敌人的音效（Play）一起放在碰撞检测的函数中，结果就报错了。这一次得到了教训，那就是千万不能让物体被摧毁和音效播放放在一起执行，否则一定会报错。遇到一个这样的需求：当子弹和敌人接触时，子弹会消失，然后同时发出摧毁敌人的音效。直到我用Invoke延迟了子弹的消失后，才解决这个问题。尝试了各种办法都无法解决。物体摧毁时发出摧毁音效。]]></description><category></category></item><item><title><![CDATA[数组9-两数之和]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129677852</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129677852</guid><author>oyqho</author><pubDate>Mon, 20 Mar 2023 22:12:33 +0800</pubDate><description><![CDATA[【代码】数组9-两数之和。]]></description><category></category></item><item><title><![CDATA[Unity快捷键详解]]></title><link>https://blog.youkuaiyun.com/oyqho/article/details/129673784</link><guid>https://blog.youkuaiyun.com/oyqho/article/details/129673784</guid><author>oyqho</author><pubDate>Mon, 20 Mar 2023 19:09:38 +0800</pubDate><description><![CDATA[很简单，也就是说，无论在任何时候都可以使用，是不限定视图和工具集的，只要是在unity编辑器里面，就能够使用的快捷键。（通常来说，全局快捷键会更加重要而且常用，所以如果要记快捷键的话，可以优先考虑记全局快捷键）（我都找了一遍，但是并没有找到关于鼠标的快捷键操作，比如Alt+鼠标左键，这种快捷键这上面并没有。可以通过在如下图所示箭头所指的方向搜索指定的命令，进行快捷键的查询，比如我下图搜索旋转，然后就会出现旋转的快捷键是E。而除了这些基本的快捷键外，其实unity还内置了许多的快捷键，只不过不常用而已。]]></description><category></category></item></channel></rss>