<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HelloCLanguage的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HelloCLanguage</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HelloCLanguage]]></copyright><item><title><![CDATA[游戏开发中的Vector3运算法则的优化]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/107800533</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/107800533</guid><author>HelloCLanguage</author><pubDate>Tue, 04 Aug 2020 23:31:14 +0800</pubDate><description><![CDATA[写在前面：游戏中很多地方都会涉及到数学运算，而在数学运算中，也是有运算效率的区分的，加（+）减法（-）是最快的，其次是乘法（*）和取余（%），接着才是除法（/），开根号（√）的运算会比前面几者都要慢。所以本文章主要处理开根号和除法，尽量在游戏开发中避免。

一、Vector3.Distance优化

经常在游戏开发中会用到计算两个点的距离，当距离小于或者大于某个值时做什么做什么事，多用于小怪的AI计算，但是，这种计算Distance的数学公式是:

距离 = 两点每个分量的差值相加，并开根号。


floa]]></description><category></category></item><item><title><![CDATA[【Newtonsoft.Json】踩坑记录]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/107000652</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/107000652</guid><author>HelloCLanguage</author><pubDate>Sun, 28 Jun 2020 15:48:10 +0800</pubDate><description><![CDATA[今天弄项目在弄的时候，发现一个问题，我在电脑上运行的时候，一点问题没有，但是我打包成apk包后，加载配置表的时候卡住了。
因为没有Log，很难定位问题所在，所以我给项目加上了一个SRDebugger插件，用来显示一下内部的报错信息。
错误提示的是PlatformNotSupportedException，然后看了堆栈是从Newtonsoft.Json 的api: DeserializeObject 中报出的，查了一下是因为版本问题。
然后我就去看了一下项目中的dll的版本，发现是.NET 3.5版本的，然后]]></description><category></category></item><item><title><![CDATA[【unity shader】基于UGUI字体的outline优化]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/105836309</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/105836309</guid><author>HelloCLanguage</author><pubDate>Wed, 29 Apr 2020 12:53:48 +0800</pubDate><description><![CDATA[基于Shader实现的UGUI描边解决方案

找了一下outline的一些优化的实现方案，但是那个方案的两层text叠加或者是image叠在上面会出现颜色偏差问题。

目前已找到对应的问题并进行了一些修复。

归咎原因就是：


color = (val * (1.0 - color.a)) + (color * color.a);

这里计算color值时，没有考虑到color.a大于1的情况，...]]></description><category></category></item><item><title><![CDATA[【Unity Shader】非统一缩放概念]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/104556781</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/104556781</guid><author>HelloCLanguage</author><pubDate>Fri, 28 Feb 2020 15:00:36 +0800</pubDate><description><![CDATA[缩放矩阵



如果三个缩放系数k都相等，我们称为统一缩放，否则是非统一缩放，因为非统一缩放会拉伸或挤压模型，所以会改变与模型相关的角度和比例，这在法线变换时很重要，如果非统一变换，直接使用变换顶点的变换矩阵就会出错。
...]]></description><category></category></item><item><title><![CDATA[Unity Shader零散的知识点]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/100187222</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/100187222</guid><author>HelloCLanguage</author><pubDate>Sun, 01 Sep 2019 22:25:50 +0800</pubDate><description><![CDATA[1.点积（内积）

a·b=(ax,ay,az)·(bx,by,bz)=axbx+ayby+azbz

图形学意义：投影，夹角

矢量a，矢量b，如果a·b&gt;0，两矢量夹角&lt;90°。如果a·b=0，两矢量夹角=90°。如果a·b&lt;0，两矢量夹角&gt;90°。

(ka)·b=a·(kb)=k(a·b) b 对点积其中一个矢量进行缩放的结果，等价于对最后的点积结果进行缩放。

...]]></description><category></category></item><item><title><![CDATA[【unity】关于shader引用默认图片导致的依赖出错问题]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/100034780</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/100034780</guid><author>HelloCLanguage</author><pubDate>Fri, 23 Aug 2019 11:52:41 +0800</pubDate><description><![CDATA[昨天出包的时候遇到了一个问题，我们发现我们的游戏资源引用出现了问题，我们利用manifest文件定位到了依赖关系，并定位到了具体的资源文件，对其进行依赖检查。



我们发现，我的资源引用到了一个莫名其妙的贴图上去，而我们找了资源里面所有可能用到的该贴图的地方，看了依赖的所有材质球，RawImage组件，发现并没有发现引用这个贴图。



最后我们发现，我们材质球使用的shader，对其Selec...]]></description><category></category></item><item><title><![CDATA[UGUI UI事件通用脚本]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/98663516</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/98663516</guid><author>HelloCLanguage</author><pubDate>Tue, 06 Aug 2019 21:28:47 +0800</pubDate><description><![CDATA[UGUI的一个通用EventListener脚本


using UnityEngine; 
using System.Collections; 
using UnityEngine.EventSystems;
using System;


public class UIEventListener : MonoBehaviour, 
IPointerClickHandler, 
IPoi...]]></description><category></category></item><item><title><![CDATA[【安卓开发】【二】活动Activity]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/80850149</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/80850149</guid><author>HelloCLanguage</author><pubDate>Fri, 29 Jun 2018 01:41:21 +0800</pubDate><description><![CDATA[一、手动创建Activity1.找到项目包的位置：app/src/main/java/com.xxxx.xxx目录右键包-&amp;gt;New-&amp;gt;Activity-&amp;gt;Empty Activity取消Generate Layout File和Launcher Activity，第一个是创建一个对应的布局，第二个是将这个新创建的Activity默认为当前项目的主活动。    创建一个新的Acti...]]></description><category></category></item><item><title><![CDATA[【安卓开发】【一】初识安卓]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/80837097</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/80837097</guid><author>HelloCLanguage</author><pubDate>Thu, 28 Jun 2018 02:37:37 +0800</pubDate><description><![CDATA[一、安卓系统架构（四层架构）1.Linux内核层：为安卓设备的各种硬件提供底层的驱动显示驱动、音频驱动、照相机驱动、蓝牙驱动、WIFI驱动、电源管理2.系统运行库层C/C++库提供提醒支持，SQLite库提供数据库支持，OpenGL|ES提供3D绘图支持，Webkit库提供浏览器内核支持3.应用框架层构建应用程序时可能用到的各种API，安卓自带的一些核心应用就是用的这个API4.应用层手机上的应用...]]></description><category></category></item><item><title><![CDATA[实现安卓程序退出后重进自己程序的一个小功能（android，unity）]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/76615068</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/76615068</guid><author>HelloCLanguage</author><pubDate>Thu, 03 Aug 2017 11:16:39 +0800</pubDate><description><![CDATA[关于一个安卓的小功能，关闭安卓程序后可以重新打开你的安卓项目]]></description><category></category></item><item><title><![CDATA[关于游戏开发，如何开发一款游戏（基于unity）]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/73733234</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/73733234</guid><author>HelloCLanguage</author><pubDate>Mon, 26 Jun 2017 11:31:24 +0800</pubDate><description><![CDATA[关于如何开发一款自己的游戏项目（目前只说客户端），就说说自己的个人观点，自己YY的，不喜勿喷。。
首先，要做一款游戏，如果你要做一款有网络的游戏，有用户数据保存的，那么首先就要有一个服务器，然后我们才能基于unity开发的这个客户端去跟服务器通信，（如果是做单机，那么就请忽略这第一步）我们使用unity跟服务器通信这个机制，叫做网络通信，一款游戏刚开始时，会定好准备使用的是什么网络协议，基于什么]]></description><category></category></item><item><title><![CDATA[关于DontDestroyOnLoad与单例一起的使用]]></title><link>https://blog.youkuaiyun.com/HelloCLanguage/article/details/68926753</link><guid>https://blog.youkuaiyun.com/HelloCLanguage/article/details/68926753</guid><author>HelloCLanguage</author><pubDate>Fri, 31 Mar 2017 16:34:58 +0800</pubDate><description><![CDATA[本文转宣雨松的博客： 
http://www.xuanyusong.com/archives/2938Unity中的一个方法DontDestroyOnLoad可以让某些游戏对象在切换场景的时候不是施放，听起来是一个非常好的方法，但是其实如果没用好那么可能就是有问题了。举个例子：在场景1中某一个脚本的Start方法中，DontDestroyOnLoad(A)接着切换到场景2中，理所当然A对象被保留了下]]></description><category></category></item></channel></rss>