<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Champion_Lee的专栏]]></title><description><![CDATA[一入IT深似海。]]></description><link>https://blog.youkuaiyun.com/lichaoguan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lichaoguan]]></copyright><item><title><![CDATA[UGUI学习——Sprite Pack]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44804731</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44804731</guid><author>lichaoguan</author><pubDate>Wed, 01 Apr 2015 11:43:01 +0800</pubDate><description><![CDATA[自定义Sprite Pack （图片打包），相当于NGUI的Atlas。
 
感谢雨松大大、、
 
将此脚本放在Editor文件夹下。
using System;
using System.Linq;
using UnityEngine;
using UnityEditor;
using UnityEditor.Sprites;
using System.Collections.Gene]]></description><category></category></item><item><title><![CDATA[c# 泛型T类型参数T的约束where]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44676901</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44676901</guid><author>lichaoguan</author><pubDate>Fri, 27 Mar 2015 14:55:21 +0800</pubDate><description><![CDATA[在定义泛型类时，可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类，则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束：




约束


说明




T：结构


类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。有关更]]></description><category></category></item><item><title><![CDATA[UGUI学习——小知识点]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44593935</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44593935</guid><author>lichaoguan</author><pubDate>Tue, 24 Mar 2015 16:24:53 +0800</pubDate><description><![CDATA[1、控制不同对象的深度，通过transform.SetSiblingIndex()和transform.GetSiblingIndex()设置。
 
2、Sprite上的Packing Tag 同一标识的图片UGUI会把相同图片格式的图片打包成同一图集。如果大于指定图集尺寸或者又具有不同图片格式的图片，那么会再生成同名的其他图集（后缀Group）。
 
3、Sprite上的Packing ]]></description><category></category></item><item><title><![CDATA[UGUI学习——EventSystem]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44591041</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44591041</guid><author>lichaoguan</author><pubDate>Tue, 24 Mar 2015 14:02:54 +0800</pubDate><description><![CDATA[UGUI的EventSystem介绍


创建uGUI控件后，Unity会同时创建一个叫EventSystem的GameObject，用于控制各类事件。可以看到Unity自带了两个Input Module，一个用于响应标准输入，一个用于响应触摸操作。Input Module封装了对Input模块的调用，根据用户操作触发各Event Trigger。理论上我们可以编写自己的Input Modu]]></description><category></category></item><item><title><![CDATA[UGUI学习——Canvas]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44590983</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44590983</guid><author>lichaoguan</author><pubDate>Tue, 24 Mar 2015 13:59:13 +0800</pubDate><description><![CDATA[UGUI 的Canvas介绍
 








Update：两种编辑模式：
Blueprint：在此模式下，物体不会旋转和缩放。
Raw Edit：在此模式下，调整物体的Pivot和Anchor不会改变物体的位置和尺寸。
 



Constant Pixel Size：保持UI元素大小不变，无论屏幕尺寸如何变化。
Scale Factor：保持大小的比例 ]]></description><category></category></item><item><title><![CDATA[【多线程】线程的同步]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44173883</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44173883</guid><author>lichaoguan</author><pubDate>Tue, 10 Mar 2015 12:51:55 +0800</pubDate><description><![CDATA[多线程共享一个进程的地址空间，虽然线程间通信容易进行，但是多线程同时访问共享对象时需要引入同步和互斥机制。
线程同步：多个任务按照约定的顺序相互配合完成一件事，基于信号量的概念提出了一种同步机制，由信号量来决定线程是继续运行还是阻塞等待。
线程互斥：线程间同步访问临界资源时的互相等待，引入互斥锁的目的是用来保证共享资源数据操作的完整性。互斥锁主要用来保护临界资源，每个临界资源都有一个互斥锁来保]]></description><category></category></item><item><title><![CDATA[Unity优化小总结]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44155313</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44155313</guid><author>lichaoguan</author><pubDate>Mon, 09 Mar 2015 15:28:16 +0800</pubDate><description><![CDATA[【参考】网上资源汇总


一、优化部分总结
1、更新不透明贴图的压缩格式为ETC4bit，因为Android市场的手机中的CPU有多种，每家的CPU支持不同的压缩格式，但他们都兼容ETC格式。
2、透明贴图，选择RGBA16bit或者RGBA32bit。
3、减少FPS，在ProjectSetting -->Quality中的VSync Count参数会影响FPS。选项EveryVBl]]></description><category></category></item><item><title><![CDATA[【多线程】C#多线程]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44100015</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44100015</guid><author>lichaoguan</author><pubDate>Fri, 06 Mar 2015 15:18:23 +0800</pubDate><description><![CDATA[一、关于c#多线程的使用
在实例化Thread的实例时，需要提供一个委托，在实例化这个委托时所用到的参数是线程将来启动时要运行的方法，在.net中提供了两种启动线程的方式，一种为带参启动，一种为不带参启动。
1、不带参数的启动方式
使用ThreadStart委托启动线程。
using UnityEngine;
using System.Collections;
using System.T]]></description><category></category></item><item><title><![CDATA[进程和线程]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/44097149</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/44097149</guid><author>lichaoguan</author><pubDate>Fri, 06 Mar 2015 11:13:27 +0800</pubDate><description><![CDATA[该文章由网上资源整合~


一、进程和线程的定义
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动，是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体，是cpu调度和分派的基本单位，它是比进程更小的能独立运行的基本单位，线程自己基本上不拥有系统资源，只拥有一点在运行中必不可少的资源（如程序计数器，一组寄存器和栈），一个线程可以创建和撤销另一个线程。线程是进程中的一]]></description><category></category></item><item><title><![CDATA[UML类图]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43951217</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43951217</guid><author>lichaoguan</author><pubDate>Thu, 26 Feb 2015 10:59:39 +0800</pubDate><description><![CDATA[【参考】本文所有素材、代码、文字来自大话设计模式


Unified Modeling Language (UML)又称统一建模语言或标准建模语言
 







“动画”矩形框表示一个类，类图分三层，第一层显示类的名称，如果为斜体表示抽象类。第二层是类的特性，通常就是字段和属性。第三层是类的操作，通常是方法或行为，注意前面的符号，‘+’表示Public，‘-’表示Pri]]></description><category></category></item><item><title><![CDATA[Shader其他整理]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43270003</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43270003</guid><author>lichaoguan</author><pubDate>Thu, 29 Jan 2015 13:29:48 +0800</pubDate><description><![CDATA[1、Culling阴影面剔除
Culling阴影面剔除是一种优化技术。所有的多边形都有正反两面，而你永远只能看见其中一面，不信的话拿张纸板或者一面镜子看看你能不能同时看到两面。通常多边形面向屏幕里面的背面，我们看不见，所以会将该面剔除。
Cull Off 关闭阴影面剔除
Cull Back 剔除背面
Cull Front 剔除正面
 
2、Depth Testing深度测试
Dept]]></description><category></category></item><item><title><![CDATA[Surface Shader（可编程渲染管线 表面着色器）]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43229883</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43229883</guid><author>lichaoguan</author><pubDate>Wed, 28 Jan 2015 14:21:54 +0800</pubDate><description><![CDATA[1、Unity 3d官方文档上对WorldNormalVector的解释
float3 worldNormal； INTERNAL_DATA -will contain world normal vector if surface shader writes to o.Normal. Toget the normal vector based on per-pixel normal map, u]]></description><category></category></item><item><title><![CDATA[Vertex and Fragment Shader（可编程渲染管线）]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43229851</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43229851</guid><author>lichaoguan</author><pubDate>Wed, 28 Jan 2015 14:19:21 +0800</pubDate><description><![CDATA[一、引言
Vertex and Fragment Shader:最强大的Shader类型，下文中简称V&F Shader，属于可编程渲染管线. 使用的是CG/HLSL语法。分为2个部分vertex顶点部分和Fragment像素部分。
二、语法
1、例子如下

Shader "Custom/Exam1" 
{
	Properties {
	_MainTex ("Texture", 2D)]]></description><category></category></item><item><title><![CDATA[Fixed Function Shader（固定渲染管线）]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43229767</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43229767</guid><author>lichaoguan</author><pubDate>Wed, 28 Jan 2015 14:15:33 +0800</pubDate><description><![CDATA[一、引言
Fixed Function Shader 属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的Fallback（之后有详细介绍）。使用的是ShaderLab语言，语法与微软的FX files 或者NVIDIA的 CgFX类似。
二、语法
shader例子参见附件
1、Pass 表示渲染管线
一个Pass表示一个渲染管线，当存在多个Pass时，即在前一]]></description><category></category></item><item><title><![CDATA[Shader综述]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43153549</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43153549</guid><author>lichaoguan</author><pubDate>Mon, 26 Jan 2015 16:03:37 +0800</pubDate><description><![CDATA[一些基本概念
Shader和Material
如果是进行3D游戏开发的话，想必您对着两个词不会陌生。Shader（着色器）实际上就是一小段程序，它负责将输入的Mesh（网格）以指定的方式和输入的贴图或者颜色等组合作用，然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等，加上对应的Shader，以及对Shader的特定的参数设置，将这些内容（Shader及输入参数）打包]]></description><category></category></item><item><title><![CDATA[设计模式总结]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43051269</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43051269</guid><author>lichaoguan</author><pubDate>Fri, 23 Jan 2015 09:18:03 +0800</pubDate><description><![CDATA[【全文设计模式参考】：http://www.cnblogs.com/zhili/p/DesignPatternSummery.html
一、引言
经过这段时间对设计模式的学习，自己的感触还是很多的，因为我现在在写代码的时候，经常会想想这里能不能用什么设计模式来进行重构。所以，学完设计模式之后，感觉它会慢慢地影响到你写代码的思维方式。这里对设计模式做一个总结，一来可以对所有设计模式进行一个梳理，]]></description><category></category></item><item><title><![CDATA[组合模式]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43018851</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43018851</guid><author>lichaoguan</author><pubDate>Thu, 22 Jan 2015 14:08:02 +0800</pubDate><description><![CDATA[一、引言
在软件开发过程中，我们经常会遇到处理简单对象和复合对象的情况，例如对操作系统中目录的处理就是这样的一个例子，因为目录可以包括单独的文件，也可以包括文件夹，文件夹又是由文件组成的，由于简单对象和复合对象在功能上区别，导致在操作过程中必须区分简单对象和复合对象，这样就会导致客户调用带来不必要的麻烦，然而作为客户，它们希望能够始终一致地对待简单对象和复合对象。然而组合模式就是解决这样的问题。]]></description><category></category></item><item><title><![CDATA[备忘录模式]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43017055</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43017055</guid><author>lichaoguan</author><pubDate>Thu, 22 Jan 2015 11:30:39 +0800</pubDate><description><![CDATA[一、引言
在上一篇博文分享了访问者模式，访问者模式的实现是把作用于某种数据结构上的操作封装到访问者中，使得操作和数据结构隔离。而今天要介绍的备忘者模式与命令模式有点相似，不同的是，命令模式保存的是发起人的具体命令（命令对应的是行为），而备忘录模式保存的是发起人的状态（而状态对应的数据结构，如属性）。下面具体来看看备忘录模式。
二、备忘录模式的定义和类图
从字面意思就可以明白，备忘录模式就是对]]></description><category></category></item><item><title><![CDATA[访问者模式]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43015733</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43015733</guid><author>lichaoguan</author><pubDate>Thu, 22 Jan 2015 10:14:44 +0800</pubDate><description><![CDATA[一、引言
访问者模式是封装一些施加于某种数据结构之上的操作。一旦这些操作需要修改的话，接受这个操作的数据结构则可以保存不变。访问者模式适用于数据结构相对稳定的系统，它把数据结构和作用于数据结构之上的操作之间的耦合度降低，使得操作集合可以相对自由地改变。
二、访问者模式的定义和类图
数据结构的每一个节点都可以接受一个访问者的调用，此节点向访问者对象传入节点对象，而访问者对象则反过来执行节点对象]]></description><category></category></item><item><title><![CDATA[责任链模式]]></title><link>https://blog.youkuaiyun.com/lichaoguan/article/details/43014663</link><guid>https://blog.youkuaiyun.com/lichaoguan/article/details/43014663</guid><author>lichaoguan</author><pubDate>Thu, 22 Jan 2015 08:51:55 +0800</pubDate><description><![CDATA[一、引言
在现实生活中，有很多请求并不是一个人说了就算的，例如面试时的工资，低于1万的薪水可能技术经理就可以决定了，但是1万~1万5的薪水可能技术经理就没这个权利批准，可能就需要请求技术总监的批准，所以在面试的完后，经常会有面试官说，你这个薪水我这边觉得你这技术可以拿这个薪水的，但是还需要技术总监的批准等的话。这个例子也就诠释了本文要介绍的内容。生活中的这个例子真是应用了责任链模式。
二、责任]]></description><category></category></item></channel></rss>