<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[分享即学习]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_36719607</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_36719607]]></copyright><item><title><![CDATA[Image透明度点击简述以及Unity2019之后存在无法点击的BUG修复]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/134353590</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/134353590</guid><author>weixin_36719607</author><pubDate>Sat, 11 Nov 2023 21:25:04 +0800</pubDate><description><![CDATA[自Unity2019之后Unity将UGUI模块从内置库修改成了通过PackageManger引入的方式。Image就来源于com.unity.modules.imgui模块。其实代码大体代码跟2018是一致的，但是还是有些细微差别，Image透明度点击不命中就是2019之后才有的问题，2018版本是没有这个问题的，我都怀疑是开发人员抄代码没抄全。首先这个点击不命中是在你使用图集的方式打包UI图片时出现，Unity使用SpriteAtlas自动打包图集。]]></description><category></category></item><item><title><![CDATA[Unity项目包体优化经验方法论（Android平台）]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/132701579</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/132701579</guid><author>weixin_36719607</author><pubDate>Wed, 06 Sep 2023 00:29:31 +0800</pubDate><description><![CDATA[本篇文章主要讲解对于Unity Android平台也就是APK包体的优化经验，使用哪些工具能够更加便利的定位资源重灾区。本篇讲解的方法中对于Unity资源使用的AssetBundle的方式，如果使用addressable或其他资源管理方式，我还不是很清楚是否适用，没有去验证过。]]></description><category></category></item><item><title><![CDATA[ShaderGraph Vertex Position节点无法连接]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/130595454</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/130595454</guid><author>weixin_36719607</author><pubDate>Wed, 10 May 2023 10:35:10 +0800</pubDate><description><![CDATA[作为Shadergraph新手在制作顶点动画的时候遇到了顶点着色器中Position节点没法连接的问题，在仔细阅读文档的时候，发了问题，这里特此记录。这个时候需要去检查顶点着色器中是否存在纹理采样，如果存在纹理采样是不是使用的。，如果不是就没法进行连接。]]></description><category></category></item><item><title><![CDATA[UnityShaderBook中消融dissolve详解]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/130515939</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/130515939</guid><author>weixin_36719607</author><pubDate>Fri, 05 May 2023 22:36:53 +0800</pubDate><description><![CDATA[消融这个效果算得上游戏开发中用的比较多的一个效果，表现游戏对象消失的时候经常用到，这个效果实现也非常简单，因此在《UnityShader入门精要》中也就短短几句话讲完了，这里我想针对书中的效果详细讲解一下。，我这里就不贴出源代码了，可以照着看。消融效果的核心是使用函数，将的像素裁剪掉首先Disslove中包含两个Pass，一个前向渲染、一个阴影渲染，我们下面挨个解析。]]></description><category></category></item><item><title><![CDATA[Unity TextMeshPro文本存在背景框的问题研究]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/130412867</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/130412867</guid><author>weixin_36719607</author><pubDate>Fri, 28 Apr 2023 01:04:52 +0800</pubDate><description><![CDATA[在使用TextMeshPro的时候遇到了字体黑底的问题，类似下图这样当字体较大的时候表现正常，当缩小到一定程度就会出现黑底。这个情况让人第一时间就是怀疑SDF计算缩放的时候存在问题。在我们重新导出字体，调整图集字体大小以及Padding后，让SP/PD值差不多大于3%就能解决这个问题这个SP/PD就是Padding值/Samping Point SizeSP/PDby theincreasetheordecreasethePadding。]]></description><category></category></item><item><title><![CDATA[Unity-iOS工程导出Xcode自动构建方法]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/128179021</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/128179021</guid><author>weixin_36719607</author><pubDate>Sat, 10 Dec 2022 15:17:50 +0800</pubDate><description><![CDATA[Unity-iOS发布基本流程首先在Unity中导出Xcode工程，然后在Xcode工程中设置IOS打包的一些流程，诸如引入lib、framework或其他资源、设置签名及其他编译设置、加入编译脚本等等操作。这些操作如果每次都是在导出Xcode后手动操作，一来浪费时间，二来容易出错。自动设置好Xcode工程后我们就可以使用xcodebuild命令自动构建Xcode工程，使用ExportOptions.plist配置自动发布ipa或者正式包的流程。]]></description><category></category></item><item><title><![CDATA[解决Mac下使用emmyLua调试遇到“dynamic libraries not enabled； check your Lua installation”]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/127854291</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/127854291</guid><author>weixin_36719607</author><pubDate>Mon, 14 Nov 2022 20:05:44 +0800</pubDate><description><![CDATA[这个上官方的解答，这里说下具体做法。下面我导出的上lua53的mac os库，其他版本同理。添加“ADD_DEFINITIONS(-DLUA_USE_DLOPEN)“2.删除“plugin_lua53”目录（确保待会儿导出你看得到修改）遇到这个问题上因为XLua不开启dynamic libraries。这个时候你就可以看到导出了“plugin_lua53“这个文件夹。4.执行“make_osx_lua53.sh“3.修改CMakeLists.txt。6.重启unity即可。]]></description><category></category></item><item><title><![CDATA[Unity寻路报错“SetDestination“ can only be called on an active agent that has been placed on a NavMesh.]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/126711102</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/126711102</guid><author>weixin_36719607</author><pubDate>Mon, 05 Sep 2022 19:07:16 +0800</pubDate><description><![CDATA[至于为什么会出现这种情况，我猜想是首次添加Detour Crowd的时候没有成功，失败的原因也很多，因为无法去debug，只能有这种猜想。这个报错我在Editor与测试APK总都没有遇到过（如果遇到肯定早想办法解决了~），等项目上线了，发现bugly上报非常多这个报错。让我非常费解，幸运的是我找了NavMeshAgent的源码，才找到了一个稍微安全一点避免错误的方式。如果是，那就好办，将transform.position来修改坐标的方式替代为使用agent.Warp来修改。恭喜你，跟我遇到了相同的问题~]]></description><category></category></item><item><title><![CDATA[修复Unity编译时“AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout”错误]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/126201771</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/126201771</guid><author>weixin_36719607</author><pubDate>Sun, 07 Aug 2022 10:29:03 +0800</pubDate><description><![CDATA[要解决这个报错首先我们要了解是什么东西。aapt 全称为 Android Asset Packaging Tool，即为Android资源打包工具。作为unity开发人员，一般跟Android打交道比较少，感兴趣的同学可以先去官网学习学习。]]></description><category></category></item><item><title><![CDATA[xlua增加扩展c/c++库方法]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/122742698</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/122742698</guid><author>weixin_36719607</author><pubDate>Sat, 29 Jan 2022 13:52:36 +0800</pubDate><description><![CDATA[xlua增加扩展c/c++库方法

xlua官方提供了一个扩展库文档，如果你看了还是遇到些问题，可以参考这篇文档。

xlua官方扩展文档：

https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/XLua%E5%A2%9E%E5%8A%A0%E5%88%A0%E9%99%A4%E7%AC%AC%E4%B8%89%E6%96%B9lua%E5%BA%93.md

本篇文章主要说明下在使用编译过程中需要注意的问题。

注意：下面示例都是以lua]]></description><category></category></item><item><title><![CDATA[【Bug记录】UnityEngine.Object与System.Object判空混用引起的问题记录]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/122611284</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/122611284</guid><author>weixin_36719607</author><pubDate>Thu, 20 Jan 2022 23:11:13 +0800</pubDate><description><![CDATA[上面之所以会出问题，就是在于我在资源卸载后会调用Resources.UnloadUnusedAssets对没用的资源进行卸载，这个过程是unity内部过程，而WeakReference是托管堆对象，需要gc后这个引用才会为空，而unity资源实际都是派生于UnityEngine.Object，这些实际上对应了c++对象，都是存在于非托管堆上。因此我推测（如有问题请指正），出现这个bug的时候是在，unity已经释放资源，通过UntiyEngine.Object == null已经为true，但是c#还没有触]]></description><category></category></item><item><title><![CDATA[Unity加载优化-将基于LZMA的ab压缩方案修改为LZ4压缩的过程]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/121257948</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/121257948</guid><author>weixin_36719607</author><pubDate>Wed, 10 Nov 2021 23:14:32 +0800</pubDate><description><![CDATA[# 观前提示

本文适合需要了解LZMA以及LZ4进行ab打包方案同学，以及会将一些资源管理的方案。如果恰好你也用xlua-framework，那就更适合你了。

# 优化起因

最近新游戏在Iphone6上出现了闪退的情况，出现闪退是在加载完成后的一瞬间，用脚指头想都知道内存超过上限了，查了下Iphone6内存为1GB，可使用最大内存上限为645M，理应是一个很高的内存值，由于新游戏是一款3d大地图城建游戏，模型建筑特别多，内存也出现溢出。这让我不得不想办法优化内存以及加载速度，一般的内存优化是从纹理，模]]></description><category></category></item><item><title><![CDATA[Unity在Canvas上画线（Draw Line）实现]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/120498039</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/120498039</guid><author>weixin_36719607</author><pubDate>Sun, 26 Sep 2021 23:59:41 +0800</pubDate><description><![CDATA[# 前言

目前Unity官方提供的UI扩展包中包含了UILineRenderer组件，本篇实现与UILineRenderer实现一致，主要讲解其基本使用与实现过程。不想看的同学可以直接下载官方扩展包。

代码库：unity-ui-extensionshttps://bitbucket.org/UnityUIExtensions/unity-ui-extensions/wiki/browse/

# 正文

canvas上的渲染均通过CanvasRenderer，unity-ui扩展包实现了一套ui基础类U]]></description><category></category></item><item><title><![CDATA[计算点到任意两点之间连线上的最近点【Unity数学】]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/120417068</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/120417068</guid><author>weixin_36719607</author><pubDate>Wed, 22 Sep 2021 16:23:25 +0800</pubDate><description><![CDATA[我们已知P1，P2，P3点，要计算P3到P1-&gt;P2上的最近点，在上面这幅图中最近点则是P2这个点。计算步骤如下：

1.首先我们计算P3点到P1-&gt;P2线段上的正交投影点C点

2.根据P1-&gt;C比上P1-&gt;P2的长度得出比率

3.将比率限制到[0,1]区间内

4.获得比率之后就跟上篇计算两点之间的任意点计算一致，起点向量P1加上P1-&gt;P2乘以比值得到P3到P1-&gt;P2上的最近点

计算代码如下：


public Vector2 GetClosestPoi...]]></description><category></category></item><item><title><![CDATA[计算两点之间任意一点坐标【Unity数学】]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/120412961</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/120412961</guid><author>weixin_36719607</author><pubDate>Wed, 22 Sep 2021 12:55:18 +0800</pubDate><description><![CDATA[今天来分享一下计算两点之间任意一点的坐标方式，分为3d及2d点的计算。思路大概就是起点坐标加上根据比例计算出来的相对于起点的偏移


    /// &lt;summary&gt;
    /// 获取两点之间的点
    /// &lt;/summary&gt;
    /// &lt;param name="start"&gt;&lt;/param&gt;
    /// &lt;param name="end"&gt;&lt;/param&gt;
    /// &lt;param name="pro]]></description><category></category></item><item><title><![CDATA[Unity摄像机居中聚焦场景中对象的方法]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/118164849</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/118164849</guid><author>weixin_36719607</author><pubDate>Wed, 23 Jun 2021 23:45:58 +0800</pubDate><description><![CDATA[# 前言

在游戏场景中，经常需要平移摄像机然后聚焦对象，今天就来讲讲这部分是如何实现。

# 正文

# 思路

我们可以让摄像机从屏幕中心点发射一个射线到场景平面（Plane）中，得到当前屏幕中心点在场景中的位置，然后对于目标点的差值就是我们需要移动摄像机的距离。

# 代码实现


//聚焦对象
 private void CameraFocusAt(Transform target)
    {
        var cp = CalcScreenCenterPosOnPanel();
     ]]></description><category></category></item><item><title><![CDATA[【Bug修复记录】Unity Fog真机不生效相关问题]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/117294273</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/117294273</guid><author>weixin_36719607</author><pubDate>Wed, 26 May 2021 16:01:31 +0800</pubDate><description><![CDATA[# 前言

最近在场景中使用了unity自带的globalfog时出现了真机上不生效的问题。这篇博客主要是记录这个问题的解决过程。

#正文

##问题描述

在Editor模式下模型能够与雾效融合实现雾效效果，但是到了真机出现了模型不能跟雾效融合，导致模型感觉在雾效上面。

##问题原因

先说下原因，是因为之前使用的模型shader使用的surfaceshader，在shader中设置了Emission自发光参数导致，但是我看到编译后的shader（如下图）也使用了UNITY_APPLY_FO...]]></description><category></category></item><item><title><![CDATA[学习记录-C#调用静态方法，实例方法的调用]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/114555006</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/114555006</guid><author>weixin_36719607</author><pubDate>Mon, 08 Mar 2021 23:18:46 +0800</pubDate><description><![CDATA[最近开始沉下心来重新研究C#，看到关于CLR如何调用方法感觉很有意思。

CLR（Common Language Runtime）提供了两个指令来调用方法：

- call 这个IL指令假定变量不为null

- callvirt 使用这个IL指令，编译这个调用时，JIT编译器会生成代码来验证变量是不是null，如果是，cllvirt指令会造成CLR抛出NullReferenceException异常



由于callvirt指令会校验null，因此执行速度会比call慢。书中提到callvirt可调用.]]></description><category></category></item><item><title><![CDATA[解决Lua获取unity 文本内容时存在\u200B（8203）字符问题]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/110404602</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/110404602</guid><author>weixin_36719607</author><pubDate>Mon, 30 Nov 2020 20:22:14 +0800</pubDate><description><![CDATA[使用lua string.gsub将问题字符替换为空字符。代码如下：


-- 从unity侧获得的文本字符串
local unity_text_string = xxxx
unity_text_string = string.gsub(unity_text_string ,utf8.char(8203),'')

--unity_text_string此时不包含空字符


...]]></description><category></category></item><item><title><![CDATA[Unity开发UGUI模块开发经验之ScrollView的使用及优化]]></title><link>https://blog.youkuaiyun.com/weixin_36719607/article/details/106203000</link><guid>https://blog.youkuaiyun.com/weixin_36719607/article/details/106203000</guid><author>weixin_36719607</author><pubDate>Mon, 18 May 2020 23:16:43 +0800</pubDate><description><![CDATA[-前言-

已经好久没有写博客了。最近开始了Unity的开发工作，一开始都是做做UI写写逻辑，目前主要任务就是摸透Unity UI的模块开发。本章就来了解下最近用得笔记多的ScrollView功能。

在Unity中ScrollView功能是单一的滚动区域，但是我们日常游戏开发中，使用ScrollView所需要的功能更像是使用List一样，View中是重复的prefabs组成的，根据数据不同而展示不同内容的item。其实如果不考虑性能及个性的优化的话，自己认为Unity的ScrollView功能非常强大，并]]></description><category></category></item></channel></rss>