<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Testiness_Wind的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Testiness_Wind</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Testiness_Wind]]></copyright><item><title><![CDATA[unity 存档]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/84030809</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/84030809</guid><author>Testiness_Wind</author><pubDate>Tue, 13 Nov 2018 16:26:50 +0800</pubDate><description><![CDATA[存档这个需求拆开来说无非是两部分，存什么和怎么存。

存什么

以我的项目为例，我需要保存游戏对象的种类和坐标作为存档，用户读取存档时，再重新构建场景。

首先，我们需要一个存档类


    public List&amp;lt;int&amp;gt; cubeListIndex = new List&amp;lt;int&amp;gt;();//方块的种类

    public List&amp;lt;Vector3&amp;gt; cu...]]></description><category></category></item><item><title><![CDATA[unity Material的批量修改和单独处理]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/83344495</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/83344495</guid><author>Testiness_Wind</author><pubDate>Wed, 24 Oct 2018 15:47:05 +0800</pubDate><description><![CDATA[蹭一波1024的热度，祝大家节日快乐。

Material

unity为我们提供了Material这一模块，使得我们对游戏对象的各种渲染操作更加便捷。



 

一个完整的Material由shader和Texture组成。



shader：整个Material的面板其实都是由对应的shader决定的，这个可视化的部分由unity shader提供。

Texture：在unity中贴图不...]]></description><category></category></item><item><title><![CDATA[LeetCode 初级算法 C# 只出现一次的数字]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82468797</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82468797</guid><author>Testiness_Wind</author><pubDate>Thu, 06 Sep 2018 21:44:48 +0800</pubDate><description><![CDATA[

思路一

最常规的思路是，把数组双重遍历，如果存在nums[i]==nums[j]就跳出，直到找到不存在重复的元素为止。

思路二

使用 异或 ，看看异或的解释：



具体代码如下：


       pubulic static int FindSingleNumber(int[] nums)
        {
            int temp = 0;
           ...]]></description><category></category></item><item><title><![CDATA[LeetCode 初级算法 C# 存在重复]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82430431</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82430431</guid><author>Testiness_Wind</author><pubDate>Wed, 05 Sep 2018 20:46:29 +0800</pubDate><description><![CDATA[

解法一

时间复杂度O(n^2)方法，将数组遍历两次，最容易想到的方法。


        public static bool CheckRepeat1(int[] nums)
        {
            if (nums.Length &amp;lt; 2) return false;

            for (int i = 0; i &amp;lt; nums.Length...]]></description><category></category></item><item><title><![CDATA[LeetCode 初级算法 C# 旋转数组]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82390031</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82390031</guid><author>Testiness_Wind</author><pubDate>Tue, 04 Sep 2018 20:47:25 +0800</pubDate><description><![CDATA[

解法一

1.每次将数组旋转一位

2.旋转K次

 


        public static int[] nums = new int[7] { 1, 2, 3, 4, 5, 6, 7 };

        public static void Rotate1(int[] nums, int k)
        {
            if (nums.Length == 0...]]></description><category></category></item><item><title><![CDATA[LeetCode 初级算法 C# 买卖股票的最佳时机 II]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82378841</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82378841</guid><author>Testiness_Wind</author><pubDate>Tue, 04 Sep 2018 10:04:23 +0800</pubDate><description><![CDATA[

解题思路

题目中特别强调了同一天不能既卖出又买入，实际上则是一个语义陷阱，乍一看是这么回事，实际上在计算中不用特别处理。

1.本体要求尽可能多的完成交易，首选贪心算法取当前最优解，即如果第二天的价格比第一天高我们就买入卖出，不考虑间隔的问题。

2.假设连续三天价格为A B C，且A&amp;lt;B&amp;lt;C,那么A买入C卖出和A买入B卖出B再买入C再卖出,数学结果是一样的。

3.假设连续四天...]]></description><category></category></item><item><title><![CDATA[LeetCode 初级算法 C# 从排序数组中删除重复项]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82346064</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/82346064</guid><author>Testiness_Wind</author><pubDate>Mon, 03 Sep 2018 11:17:41 +0800</pubDate><description><![CDATA[ 题目

题目 

C#中的数组在声明时必须指定长度，且无法动态的删除数组中的元素，只可以替换，列表可以动态的修改长度。

数组

将数组重新排序，重复元素后移，返回不重复的元素的数量。

空间复杂度 O(1)


        public static int[] nums1 = new int[10] { 0, 0, 1, 1, 1, 2, 2, 3, 3, 4 };

        p...]]></description><category></category></item><item><title><![CDATA[Unity 对象池]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/81118772</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/81118772</guid><author>Testiness_Wind</author><pubDate>Thu, 19 Jul 2018 17:55:17 +0800</pubDate><description><![CDATA[出于对性能的考量，对象池是所有项目都无法绕开的点。

从项目的实际需求和DEMO时的表现来看，我首先需要搭建对象池用于优化游戏性能，毕竟iPhoneX都卡的游戏能卖给谁呢。

单例

创建我们的对象池，首先从单例开始，单例有许多种写法，根据需求来就好了，不必搞得太复杂。

我现在的第一个需求是存放场景中不断重复生成的物体，比如子弹，敌人。


    /// &amp;lt;summary&amp;gt;
   ...]]></description><category></category></item><item><title><![CDATA[unity 2018.1.8 + vuforia 7.2 之 Ground Plane Stage和Plane Finder]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/81109540</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/81109540</guid><author>Testiness_Wind</author><pubDate>Thu, 19 Jul 2018 13:55:35 +0800</pubDate><description><![CDATA[在更新到了最新的版本之后，unity和vuforia都做出了很大的更新，我们主要看一下平面识别的变化。

有一点需要着重强调的是，在7.2版本中，设备追踪变成了全局事件，如果选择开启设备追踪，那么所有的Target都会享受到这一效果。

新版Ground Plane Stage



新的Ground Plane Stage与旧版相比改变了小部分的UI，除此以外没有大的变化。

全新的平面查找器（...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 安卓蓝牙（三）向蓝牙设备发送（Write）消息]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80760089</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80760089</guid><author>Testiness_Wind</author><pubDate>Thu, 21 Jun 2018 14:40:54 +0800</pubDate><description><![CDATA[API插件为我们准备的API是BluetoothLEHardwareInterface.WriteCharacteristic（string name, string service, string characteristic, byte[] data, int length, bool withResponse, Action&amp;lt;string&amp;gt; action）；共七个参数，分别是：设...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 IOS蓝牙（一）权限配置]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80705467</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80705467</guid><author>Testiness_Wind</author><pubDate>Fri, 15 Jun 2018 14:59:41 +0800</pubDate><description><![CDATA[需要导入的插件和安卓一样，都选择Bluetooth+LE+for+iOS+and+Android+v2.3，API不需要改变，不同的地方在于Xcode部署的时候需要设置一番。IOS蓝牙权限配置在Build Phases中搜索文件UnityBluetoothLE.mm，然后在compiler flags中双击填写加入-fno-objc-arc。导入IOS蓝牙框架...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 安卓蓝牙（二）订阅蓝牙及数据解析]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80692091</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80692091</guid><author>Testiness_Wind</author><pubDate>Thu, 14 Jun 2018 14:18:54 +0800</pubDate><description><![CDATA[接上篇，我们写到了连接蓝牙，之后我们就需要订阅蓝牙的信息了。订阅蓝牙消息最后一个参数是一个回调，它会传回三个信息分别是地址、UUID和数据，这个数据是串口通讯中常用的byte[]，出于项目需要，我要进行一次数据转换。    /// &amp;lt;summary&amp;gt;
    /// 订阅蓝牙消息
    /// &amp;lt;/summary&amp;gt;
    public void SubscribeBlu...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 安卓蓝牙（一）初始化蓝牙连接]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80677963</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80677963</guid><author>Testiness_Wind</author><pubDate>Wed, 13 Jun 2018 14:16:17 +0800</pubDate><description><![CDATA[最近在使用Bluetooth+LE+for+iOS+and+Android+v2.3这个插件开发基于安卓设备的蓝牙模块。蓝牙模块大概分成七步：1.建立中心角色2.扫描外设（discover）3.连接外设(connect)4.扫描外设中的服务和特征(discover)    4.1 获取外设的services    4.2 获取外设的Characteristics,获取Characteristics...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 Tips 动态替换materials]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80310707</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80310707</guid><author>Testiness_Wind</author><pubDate>Mon, 14 May 2018 16:28:19 +0800</pubDate><description><![CDATA[我试图替换某个模型的materials时犯了经验错误当我运行时没有任何变化正确的做法是在你试图替换materials时，只能选择将整个数组替换掉，而不是替换数组中的某个值。因为unity规定的...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 IOS打包报错 unity端]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80045977</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80045977</guid><author>Testiness_Wind</author><pubDate>Mon, 23 Apr 2018 09:33:31 +0800</pubDate><description><![CDATA[持续更新中1.dll用于几个位置Plugin 'websocket-sharp.dll' is used from several locations:找到你使用的dll文件，在Inspector界面勾选你需要使用的选项。2.UnityLinker.exe将PlayerSettings中的API Compatibility Level设置为.NET2.0。3.Assertion failed: T...]]></description><category></category></item><item><title><![CDATA[APK发布至应用商店流程]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80008022</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/80008022</guid><author>Testiness_Wind</author><pubDate>Thu, 19 Apr 2018 17:47:25 +0800</pubDate><description><![CDATA[本文是完整的android发布APK流程，以应用宝为例，注意是发布不是打包。1.首先注册腾讯开放平台2.登录并点击应用接入3.选择安卓（免费游戏）4.重点——你必须拥有软件著作权才有权利发布自己的软件5.重点——上传未加固的APK无法通过审核6.软件在加固的时候会删除你之前的安卓签名，你需要手动签名，本文重点，如何签名首先，找到CMD（不要用win+r），一般在C:\Windows\System3...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 Tips 带形参的点击事件]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79898124</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79898124</guid><author>Testiness_Wind</author><pubDate>Wed, 11 Apr 2018 16:04:27 +0800</pubDate><description><![CDATA[最近开始做UI，偶然间发现UGUI提供的按钮支持点击事件带有形参。不带形参：带形参：瞬间思路扩充了很多。]]></description><category></category></item><item><title><![CDATA[unity 2017.3 Tips UGUI 按钮的点击区域被遮挡]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79868739</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79868739</guid><author>Testiness_Wind</author><pubDate>Mon, 09 Apr 2018 16:40:57 +0800</pubDate><description><![CDATA[    最近做UI，偶然间发现有的按钮的响应区域有问题，有的按钮命名点击了却没有响应，后来发现是上面放置的文字挡住了，检查了一番后发现问题出在raycast target上。    UI事件会在EventSystem在Update的Process触发。UGUI会遍历屏幕中所有RaycastTarget是true的UI，接着就会发射线，并且排序找到玩家最先触发的那个UI，在抛出事件给逻辑层去响应。这...]]></description><category></category></item><item><title><![CDATA[unity 2017.3 Tips GIF图片]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79818583</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79818583</guid><author>Testiness_Wind</author><pubDate>Wed, 04 Apr 2018 16:00:39 +0800</pubDate><description><![CDATA[unity原生组件中不支持GIF图片，要么选择撸代码，使用循环的方式强行动图，要么求助插件。跨平台播放gif：AnimatedGifPlayer插件1.导入插件注意这个文件夹，GIF图片必须存放在此文件夹内。2.添加组件Raw Image3.添加组件Animated Gif Player4.点击 Select GIF选择图片5.大功告成...]]></description><category></category></item><item><title><![CDATA[unity shader 入门之路（八）边缘自发光-Glow]]></title><link>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79785681</link><guid>https://blog.youkuaiyun.com/Testiness_Wind/article/details/79785681</guid><author>Testiness_Wind</author><pubDate>Mon, 02 Apr 2018 10:54:57 +0800</pubDate><description><![CDATA[unity5.5以后的镜头后期都被整合进了Post-processing Stack，可以在Asset Store中搜索导入。想实现Glow效果，先要做一些准备工作：1.导入Post-processing Stack2.新建Post-processing文件3.在Main Camera添加Post-processing组件4.把新建的文件拖进去以上都不是重点，重点是shader怎么写：1.New一...]]></description><category></category></item></channel></rss>