<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MorphyYang的博客]]></title><description><![CDATA[每日三省]]></description><link>https://blog.youkuaiyun.com/morphyyang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; morphyyang]]></copyright><item><title><![CDATA[win10开放远程多用户桌面连接]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/113849156</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/113849156</guid><author>morphyyang</author><pubDate>Thu, 18 Feb 2021 17:06:16 +0800</pubDate><description><![CDATA[最近美术需要借用我的电脑一起跑下渲染，为了图方便，我直接给她开通了远程桌面登陆，当同事远程登陆后，不幸的是我居然被踢出系统登陆了。我花了点时间大概了解了下window的远程桌面登陆，发行其实window server系统是支持多用户远程同时登陆的，关键在于window系统服务TermService，win10家庭版和专业版该功能都被阉割了。

简单搜索了下，发现早已经有牛人提供了工具RDPWrap。RDPWrap目前最新版本是1.6.2，地址https://github.com/stascorp/rdpwr]]></description><category></category></item><item><title><![CDATA[Nodejs+Express中页面控制器及脚本自动加载设计]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/78325140</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/78325140</guid><author>morphyyang</author><pubDate>Tue, 24 Oct 2017 01:09:21 +0800</pubDate><description><![CDATA[Express自身带强大的路由功能，这让我们可以详细拆分项目的需求，设计出优美的restful风格对外API。为了方便实现上述功能，我加入了页面控制器及脚本自动加载设计：


比如针对会员模块，我们在app.js中指定了模块的路由文件
app.use('/member', require('./routes/member'));


首先：针对POST和GET方法，分别定义如下路由规]]></description><category></category></item><item><title><![CDATA[基于Unity的游戏项目客户端服务器寻路同步方案]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/78307787</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/78307787</guid><author>morphyyang</author><pubDate>Sun, 22 Oct 2017 01:38:15 +0800</pubDate><description><![CDATA[Unity中目前提供的基于Navmesh的网格寻路，如果仅仅是单机游戏，其实功能还是能满足的，当然，如果你做的是大规模兵海流的 rts游戏，Unity的网格寻路还是会碰到多人寻路相互挤压的问题。


    由于我们目前的工作主要集中在手游，而又以联网RPG游戏为主。由于Unity并未开源Navmesh寻路组件，而Navmesh其实上是开源寻路项目RecastNavigation的作者做的升]]></description><category></category></item><item><title><![CDATA[关于游戏中“追求线”浅析]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/78300503</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/78300503</guid><author>morphyyang</author><pubDate>Fri, 20 Oct 2017 23:30:33 +0800</pubDate><description><![CDATA[游戏从发明开始那天，本质上就是一种体验。就像象棋为了体验战争，击剑为了体验搏斗；自从电脑游戏发明以来，我们有了更直观更容易表现的方式给与视觉上的体验。


    好的电脑游戏，能够让人废寝忘食，耗费大量时间和精力而乐此不疲。先抛开其他角度上的观点，单纯从游戏体验者角度出发，是什么愿意导致游戏体验者有长期的动机能够持续不断进行一个游戏呢？有一个游戏设计领域术语“追求线”，可以很好解释这个问题]]></description><category></category></item><item><title><![CDATA[利用purecss和zepto构建响应式网站]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/78289961</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/78289961</guid><author>morphyyang</author><pubDate>Thu, 19 Oct 2017 21:53:56 +0800</pubDate><description><![CDATA[目前打算推出一个针对pc和移动端的响应式网站，花了点时间考察了下目前的各类方案。做游戏开发时间太长了，没想到短短几年WEB前端技术已经突飞猛进，选择实在是太多了，最终列出几个组合方案：

bootstrap + jquery：扩展组件和js组件够多，引用的js库体积偏大。vue + vue扩展组件库：vue是MVVM框架，抛弃传统js库直接操作dom方式，使用数据绑定方式更新UI，也可以加入r]]></description><category></category></item><item><title><![CDATA[Disruptor无锁队列浅析]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/78279363</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/78279363</guid><author>morphyyang</author><pubDate>Wed, 18 Oct 2017 23:39:09 +0800</pubDate><description><![CDATA[近期在看操作系统相关资料的时候，阅读到“信号量与PV操作”，主要分三块：互斥控制，同步控制，生产者与消费者问题。因为我日常与服务器及消息队列打交道较多，对生产者与消费者问题比较感兴趣，正好之前曾经研究过“Disruptor无锁队列”的实现原理，正好再结合PV操作重新回顾下：
    注：PV操作中P为荷兰文passeren的缩写，意思是通过。V为荷兰文vrijgeven的缩写，意思是释放。]]></description><category></category></item><item><title><![CDATA[nodejs+express搭建中遇到的坑]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/78268300</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/78268300</guid><author>morphyyang</author><pubDate>Tue, 17 Oct 2017 23:28:50 +0800</pubDate><description><![CDATA[近期做一个小项目，除了需要正常的web-server功能，还需要在后台定时执行数据统计和挖掘。参考现成的两种方案nodejs和nginx-lua后，最终因为npm社区的强大（其实是我比较懒，npm现成的东西实在是太多了）选择了nodejs。

安装nodejs
    nodejs平台上最有名的就是express这款web开发框架。window平台安装nodejs过程比较顺利，不过在linu]]></description><category></category></item><item><title><![CDATA[Win10系统使用Unity5和Oculus runtime0.8.0开发Oculus Rift DK2环境配置最终解决方案]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/52914627</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/52914627</guid><author>morphyyang</author><pubDate>Mon, 24 Oct 2016 20:15:07 +0800</pubDate><description><![CDATA[最近将开发用操作系统升级到Win10，为了兼容Steam平台，同步发布Vive版本的游戏demo，将Unity也升级到5.4，突然发现之前一直正常的Oculus Rift DK2无法正常显示了。主要现象是：
1. Unity VR选项设置为OpenVR后，启动VR头盔只显示一个白色空场景，但是位置追踪设备是确正常的。
2. Unity VR选项设置为Oculus后，VR头盔没有任何响应。
怀]]></description><category></category></item><item><title><![CDATA[UNITY 5.4.0发行说明中文版（不包含bug修正部分）]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/52135112</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/52135112</guid><author>morphyyang</author><pubDate>Mon, 15 Aug 2016 16:41:38 +0800</pubDate><description><![CDATA[Unity5.4.0是一个非常重要的版本，在图形性能、跨平台支持方面、特别是VR多平台支持都有许多改进。透过Unity发行说明能够从总体上了解这个版本的功能变换，对项目开发非常有帮助，因为工作需要自己临时翻译了一份中文版，不免有错误的地方，请大家见谅，欢迎帮忙修正，后续有时间会把bug修正部分也一并翻译过来。]]></description><category></category></item><item><title><![CDATA[Unity3d Remote调试]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/38561401</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/38561401</guid><author>morphyyang</author><pubDate>Thu, 14 Aug 2014 17:24:11 +0800</pubDate><description><![CDATA[手游研发过程中，不停发版本到真机调试是非常痛苦的，在阅读Unity官方文档时候]]></description><category></category></item><item><title><![CDATA[Unity3d中不经意中易出的小错误]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28431597</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28431597</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:24:02 +0800</pubDate><description><![CDATA[错误一：
运行时一直提示“couldn't be created because there is no script with that name”，仔细观察代码没有发现任何问题，后来不经意发现，c＃文件名和文件中类名称不一致，修改一致后正常。]]></description><category></category></item><item><title><![CDATA[Unity3D中脚本编译的顺序]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28429075</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28429075</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:23:38 +0800</pubDate><description><![CDATA[Unity3d支持三种语言的脚本，所有脚本都是实时动态编译成.net动态链接库，每当修改脚本并保存，动态编译过程将被唤醒。整个编译过程分为四步骤：
1.所有在"Standard Assets", "Pro Standard Assets" 和"Plugins"的脚本被首先编译。
在这些文件夹之内的脚本不能直接访问这些文件夹之外脚本。不能直接引用或它的 变量，但是可以使用GameObject.S]]></description><category></category></item><item><title><![CDATA[c#中yield的用法详解]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28428817</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28428817</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:23:25 +0800</pubDate><description><![CDATA[一. yield是c＃2.0以后为了简化迭代器加入的一个新特性。 yield 关键字只允许出现在在迭代器块中，有两种用法：
1. yield return ;
  这是一个隐式转换的返回值，将计算 expression 并将结果以值的形式返回给枚举器对象。expression 必须可以隐式转换为 yield 类型的迭代器，且必须为IEnumerable、IEnumerable、IEnumera]]></description><category></category></item><item><title><![CDATA[c#中const与readonly的区别]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28428637</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28428637</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:22:54 +0800</pubDate><description><![CDATA[C#中定义常量有两种方式，一种叫做静态常量，使用“const”关键字定义，const定义的值是在编译期间确定的。只能在声明时通过常量表达式指定其值。另一种叫做动态常量，用“readonly”关键字来定义。两者区别如下：

1. const只能修饰基元类型、枚举类型或字符串类型，即限制const类型必须属于值类型范围，且其值不能通过new来进行设置，readonly没有限制；

2. con]]></description><category></category></item><item><title><![CDATA[关于c#泛类型参数T的约束]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28428467</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28428467</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:22:39 +0800</pubDate><description><![CDATA[c#支持泛式编程，在我们定义泛型类时，可以加入泛类型参数T的约束。为什么需要参数约束呢，官方是这么说的：
如果要检查泛型列表中的某个项以确定它是否有效，或者将它与其他某个项进行比较，则编译器必须在一定程度上保证它需要调用的运算符或方法将受到客户端代码可能指定的任何类型参数的支持。

当实例化类时用于类型参数的类型种类施加限制。如果实现代码尝试使用某个约束所不允许的类型来实例化类，则会产生编译]]></description><category></category></item><item><title><![CDATA[Unity3d编辑器中missing an assembly reference System.Data的处理办法]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28427547</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28427547</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:22:04 +0800</pubDate><description><![CDATA[由于需要在Unity3d中处理Sqlite数据连接，在脚本工程中用c＃写好了，工程也顺利编译通过了，切换到Unity3d编辑器中运行，结果弹出错误“The type or namespace name 'Data' does not exist in the namespace 'System' ”，看提示应该是说System.Data的assemble信息丢失。不应该啊，检查了下MonoDeve]]></description><category></category></item><item><title><![CDATA[分析Poco中ServerApplication监听中断机制]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28427381</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28427381</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:21:42 +0800</pubDate><description><![CDATA[使用Poco::Util::ServerApplication构建Tcp服务器，我们打算在住循环中设置中断机制，仔细考察Poco代码，发现已经提供一个比较完善的方案。
Poco::Util::ServerApplication监听中断机制，主要是通过waitForTerminationRequest()实现的，该函数被调用后，将阻塞调用他的线程，直到收到监听的信号，函数源码如下。

void]]></description><category></category></item><item><title><![CDATA[使用gdb调试内存重复释放导致的malloc_error_break错误崩溃]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28427199</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28427199</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:21:09 +0800</pubDate><description><![CDATA[目前使用Poco::Util::ServerApplication构建服务器application，根据Poco官方文档自己扩展Poco::Net::TCPServerConnectionFactory，开启服务器tcp绑定监听。代码片段如下：
Poco::Net::ServerSocket cServerSocket(1300);
FxTcpConnectionFactory cFactor]]></description><category></category></item><item><title><![CDATA[关于Mac系统下Unity3d的android编译错误android (invokation failed)]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28427105</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28427105</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:20:48 +0800</pubDate><description><![CDATA[连续碰到几次Mac系统下Unity3d发布android apk的问题，提示android编译错误android (invokation failed)，这类错误，一般是由于android sdk tool与unity3d不兼容造成的。解决办法有两个：
1. 安装r21 android sdk tools，unity3d官方在论坛声明了，r22以上版本sdk tool存在兼容与unity3d现有]]></description><category></category></item><item><title><![CDATA[SVN提交被忽略的链接库文件(.a,.so)]]></title><link>https://blog.youkuaiyun.com/morphyyang/article/details/28426885</link><guid>https://blog.youkuaiyun.com/morphyyang/article/details/28426885</guid><author>morphyyang</author><pubDate>Wed, 04 Jun 2014 17:19:21 +0800</pubDate><description><![CDATA[在Macosx和linux下svn全局配置是默认忽略链接库文件的，但是一般第三方库我们需要上传到仓库，如果你不想更改ignore全局属性，或者已经建立workcopy，可用如下办法解决：
1. 进入终端，切换到链接库文件所在目录
2. 执行$svn add *.a将静态库加入svn版本，$svn add *.so将动态库加入svn版本。]]></description><category></category></item></channel></rss>