<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jesui的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Jesui</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Jesui]]></copyright><item><title><![CDATA[UnityWebRequest多个下载器并行下载AB包]]></title><link>https://blog.csdn.net/Jesui/article/details/169071759</link><guid>https://blog.csdn.net/Jesui/article/details/169071759</guid><author>Jesui</author><pubDate>Mon, 26 Oct 2026 01:52:51 +0800</pubDate><description><![CDATA[多个UnityWebRequest并行比单个串行更快，程序更复杂。必须弄一个池管理UnityWebRequest，还需要一个AB包状态池，记录每个包是没下载、下载中、下载完成、下载失败。逻辑是：输入一个AB包信息列表，对UnityWebRequest池循环，如果当前是空闲，对AB包状态池循环，如果还没人下载，则给此下载器下载。]]></description><category></category></item><item><title><![CDATA[Unity2018打开GameFramework遇到的问题&GameFramework解读]]></title><link>https://blog.csdn.net/Jesui/article/details/168645335</link><guid>https://blog.csdn.net/Jesui/article/details/168645335</guid><author>Jesui</author><pubDate>Wed, 21 Oct 2026 11:27:17 +0800</pubDate><description><![CDATA[首先是GameFramework的Editor程序集找不到GameFramework命名空间，需要在它的asmdef文件添加对GameFramework和UnityGameFramework.Runtime程序集的引用。]]></description><category></category></item><item><title><![CDATA[Unity无法修改Assembly-CSharp.csproj错误]]></title><link>https://blog.csdn.net/Jesui/article/details/168243021</link><guid>https://blog.csdn.net/Jesui/article/details/168243021</guid><author>Jesui</author><pubDate>Sat, 17 Oct 2026 14:29:44 +0800</pubDate><description><![CDATA[造成的效果包括点击脚本无法加载csproj，也就没有代码提示。单纯用VS打开csproj，在Unity添加脚本，VS不会同步更新。无法删除csproj，好像被某个程序占用了。]]></description><category></category></item><item><title><![CDATA[protobuf-net笔记]]></title><link>https://blog.csdn.net/Jesui/article/details/168130348</link><guid>https://blog.csdn.net/Jesui/article/details/168130348</guid><author>Jesui</author><pubDate>Fri, 16 Oct 2026 12:55:16 +0800</pubDate><description><![CDATA[protobuf-net是直接给C#类打特性来序列化成protobuf二进制消息的库。是为解决C#原生类和pb生成类大量转换代码的痛苦开发的。]]></description><category></category></item><item><title><![CDATA[加载Multiple型Sprite的子Sprite的代码（主资源与子资源）]]></title><link>https://blog.csdn.net/Jesui/article/details/167804300</link><guid>https://blog.csdn.net/Jesui/article/details/167804300</guid><author>Jesui</author><pubDate>Tue, 13 Oct 2026 14:17:26 +0800</pubDate><description><![CDATA[填入png的路径，返回主资源（整个图Sprite）和所有切好的子Sprite。]]></description><category></category></item><item><title><![CDATA[lua特点和代码架构设计]]></title><link>https://blog.csdn.net/Jesui/article/details/167701522</link><guid>https://blog.csdn.net/Jesui/article/details/167701522</guid><author>Jesui</author><pubDate>Mon, 12 Oct 2026 19:44:56 +0800</pubDate><description><![CDATA[为了解决这个问题我们想把函数作为表的成员，然后脚本和表同名，一看表名就知道函数在哪个脚本定义。这不是lua强制的，是我们制定的规范。lua函数必须先定义再调用，如果不分脚本，先写一大堆函数定义再写主线和调用，人容易忘了主线逻辑。lua作为脚本语言，它的函数定义在编译语言相当于在编译期就执行了，所以脚本语言像把编译和执行混在一起的语言。所以我们很自然的想把函数定义放一些脚本，主线脚本先require需要的定义，然后专心写主线。如果要主线要调用函数前写函数定义，函数、主线穿插着来，会没那么乱，但还是奇怪。]]></description><category></category></item><item><title><![CDATA[编辑器在hierarchy的GameObject右键菜单加一个选项，把从根物体transform.Find()要输入的路径拷贝到剪贴板。]]></title><link>https://blog.csdn.net/Jesui/article/details/167585961</link><guid>https://blog.csdn.net/Jesui/article/details/167585961</guid><author>Jesui</author><pubDate>Sun, 11 Oct 2026 15:57:57 +0800</pubDate><description><![CDATA[lua写UI逻辑很常用。]]></description><category></category></item><item><title><![CDATA[UI路径配置SO＞字典json工作流]]></title><link>https://blog.csdn.net/Jesui/article/details/167580220</link><guid>https://blog.csdn.net/Jesui/article/details/167580220</guid><author>Jesui</author><pubDate>Sun, 11 Oct 2026 13:15:12 +0800</pubDate><description><![CDATA[制作编辑器SO，每个UI的路径是一个字段，填UI路径，加上特性，把UI类型填入。导出时反射读取特性，拿到类型，作为键，构造字典，>json导出。读取使用时输入类型参数，得到类型名字，从字典中得到路径。]]></description><category></category></item><item><title><![CDATA[Unity在资源右键菜单加上复制选中资源的文件名选项]]></title><link>https://blog.csdn.net/Jesui/article/details/167223359</link><guid>https://blog.csdn.net/Jesui/article/details/167223359</guid><author>Jesui</author><pubDate>Wed, 07 Oct 2026 18:10:47 +0800</pubDate><description><![CDATA[核心API是给EditorGUIUtility.systemCopyBuffer赋值，以及从Selection获得选中的资源。]]></description><category></category></item><item><title><![CDATA[生成AB包清单]]></title><link>https://blog.csdn.net/Jesui/article/details/167177200</link><guid>https://blog.csdn.net/Jesui/article/details/167177200</guid><author>Jesui</author><pubDate>Tue, 06 Oct 2026 20:46:53 +0800</pubDate><description><![CDATA[我们使用AssetDatabase.GetAllAssetBundleNames();获得项目所有AB包名。我们不在导出文件夹遍历所有文件，因为如果之前打包的资源现在不打包了，打包又没有勾选清空文件夹，还是会生成已经不用的包信息。通过AssetDatabase.GetAllAssetBundleNames();获得所有报名，需要额外生成主包的信息。]]></description><category></category></item><item><title><![CDATA[Unity对象不应该使用null传播的问题]]></title><link>https://blog.csdn.net/Jesui/article/details/167078321</link><guid>https://blog.csdn.net/Jesui/article/details/167078321</guid><author>Jesui</author><pubDate>Sun, 04 Oct 2026 10:54:58 +0800</pubDate><description><![CDATA[unity重写了==null，不管C#层或C++层对象被销毁都是true。.则只能判断C#层是不是null，使用则对象被销毁后还是会执行。]]></description><category></category></item><item><title><![CDATA[Unity在Create菜单创建自定义脚本模板]]></title><link>https://blog.csdn.net/Jesui/article/details/166947822</link><guid>https://blog.csdn.net/Jesui/article/details/166947822</guid><author>Jesui</author><pubDate>Thu, 01 Oct 2026 18:27:52 +0800</pubDate><description><![CDATA[普通脚本模板，带命名空间。]]></description><category></category></item><item><title><![CDATA[Unity URP相机的Renderer选项]]></title><link>https://blog.csdn.net/Jesui/article/details/166688349</link><guid>https://blog.csdn.net/Jesui/article/details/166688349</guid><author>Jesui</author><pubDate>Sat, 26 Sep 2026 12:25:15 +0800</pubDate><description><![CDATA[今天排查游戏帧率暴跌问题。注意到相机的Renderer还是HighFidelity。URP项目的相机Renderer的选项来自Quality下的URP Asset。在Graphics选项下的设置我早已改成Performant，这里还没改。那么这两个设置有什么区别？]]></description><category></category></item><item><title><![CDATA[Unity UGUI DropDown问题]]></title><link>https://blog.csdn.net/Jesui/article/details/166494215</link><guid>https://blog.csdn.net/Jesui/article/details/166494215</guid><author>Jesui</author><pubDate>Wed, 23 Sep 2026 23:09:56 +0800</pubDate><description><![CDATA[预制体里面Content加Vertical Layout Group，Content Size Fitter，然后模板激活一下让布局生效，再隐藏保存。]]></description><category></category></item><item><title><![CDATA[Unity The AssetBundle ‘‘ can‘t be loaded because another AssetBundle with the same files is already ]]></title><link>https://blog.csdn.net/Jesui/article/details/166125975</link><guid>https://blog.csdn.net/Jesui/article/details/166125975</guid><author>Jesui</author><pubDate>Sun, 20 Sep 2026 13:03:33 +0800</pubDate><description><![CDATA[又遇到因为加载AB包使用的是streaming或persistent下的全路径，返回的包名是用AssetImporter指定的路径，是AB包文件夹下的相对路径。那么这里要么把全路径截取成相对路径，要么直接Path.GetFileNameWithoutExtension后对比。]]></description><category></category></item><item><title><![CDATA[Unity CustomEditor没生效]]></title><link>https://blog.csdn.net/Jesui/article/details/165756940</link><guid>https://blog.csdn.net/Jesui/article/details/165756940</guid><author>Jesui</author><pubDate>Thu, 17 Sep 2026 20:43:49 +0800</pubDate><description><![CDATA[新建了一个，把代码全部复制过去，前一个脚本删掉，生效了。把第一个脚本再恢复，删掉第二个，还是无效。第一个脚本之前的名字就是它修改的类+Editor，没生效。改成别的名字A，生效了。为一个MonoBehavior写的CustomEditor，检查器没有变化。后来的某一天，还是名字A，又无效了。把脚本瞎改成名字B，生效了。画检查器函数里加打印，没打印。给第一个脚本改个名字，也生效。]]></description><category></category></item><item><title><![CDATA[在EditorWindow像base.OnInspectorGUI()；那样显示一个类的成员]]></title><link>https://blog.csdn.net/Jesui/article/details/165480980</link><guid>https://blog.csdn.net/Jesui/article/details/165480980</guid><author>Jesui</author><pubDate>Tue, 15 Sep 2026 16:04:43 +0800</pubDate><description><![CDATA[需要一个SerializedObject，然后new SerializedObject(_data);把要显示的对象传进去。这个对象必须继承UnityEngine.Object，C# POCO不能用。如果非要用，可以把POCO作为一个UnityEngine.Object的成员。MonoBehavior、SO能显示，因为它们都是UnityEngine.Object，我们定义的类是它们的成员。感觉没必要这样套一层，还是决定把POCO放在SO里，需要加什么控件用CustomEditor。]]></description><category></category></item><item><title><![CDATA[初始设置animator.SetInteger失效]]></title><link>https://blog.csdn.net/Jesui/article/details/165446071</link><guid>https://blog.csdn.net/Jesui/article/details/165446071</guid><author>Jesui</author><pubDate>Tue, 15 Sep 2026 10:50:31 +0800</pubDate><description><![CDATA[情景：敌人在Start进入警戒状态，通过animator.SetInteger使用枪，但看起来未使用枪，使用后立即打印，没问题，但动画状态机面板未生效。暂停播放并选中该物体，看见武器的约束还没生效，这是一个很初始的时刻。然后又看到人物使用一下武器又放回去。然后我看见一个敌人初始确实使用了枪，但立即又收回去。]]></description><category></category></item><item><title><![CDATA[Unity设置人物位置无效的原因]]></title><link>https://blog.csdn.net/Jesui/article/details/165004371</link><guid>https://blog.csdn.net/Jesui/article/details/165004371</guid><author>Jesui</author><pubDate>Fri, 11 Sep 2026 17:59:01 +0800</pubDate><description><![CDATA[需要把CharacterController关闭再设置。]]></description><category></category></item><item><title><![CDATA[Cinemachine笔记]]></title><link>https://blog.csdn.net/Jesui/article/details/164424652</link><guid>https://blog.csdn.net/Jesui/article/details/164424652</guid><author>Jesui</author><pubDate>Sun, 06 Sep 2026 10:38:49 +0800</pubDate><description><![CDATA[位置受Follow绕x轴、y轴旋转的影响，不受绕z轴旋转的影响。位置受Follow绕y轴旋转的影响，不受绕x轴、z轴旋转的影响。下图当头低下时，相机一直在头世界坐标前方一定的位置，没有随低头下移，结果就是相对头上移了。位置受Follow绕x轴、y轴、z轴旋转的影响。3.人物做一些动作（如跑步）晃动时，应该看见人物身体的晃动，而不是身体在画面里静止，世界晃动；1.人物俯仰时相机始终在人物上半身后面，就是说人物仰视时相机会转到靠下的位置，俯视同理；这种模式下改变相机的旋转不会影响相机视野的旋转。]]></description><category></category></item></channel></rss>