最近花了几天时间去入了一下MMD的大坑。想着渲染几张静画来当一下桌面的壁纸。不过裙子什么的真是太难弄了。物理引擎有点坑。
第二弹
纯黑背景下的微笑miku
第三弹
天台miku
第四弹
黄昏下的教室之新房45°
第五弹
星夜下的爱蜜莉雅
最近花了几天时间去入了一下MMD的大坑。想着渲染几张静画来当一下桌面的壁纸。不过裙子什么的真是太难弄了。物理引擎有点坑。
纯黑背景下的微笑miku
天台miku
黄昏下的教室之新房45°
星夜下的爱蜜莉雅
我们经常会遇到这样那样的网络问题。比如游戏玩着玩着卡死了。游戏丢包。网速上不去等等。可能的原因多种多样。我们要通过一些科学的分析找出原因,才能对症下药。
【可能原因一:电脑<—>路由器】
这种情况其实并不少见。其根本原因是在于网络传输的可靠性低。可能的原因的有很多。比如网卡、网线、路由器过热、路由器老化等等。如何检测?按下win+r输入cmd打开命令行。输入ipconfig
找到我们使用的网卡。比如:
找到网关比如我的网关设置是192.168.1.1
。那么在命令行中输入命令ping 192.168.1.1 -t
对我们的网关进行ping
。具体地址视自己情况而定。后面跟上-t
表示无限期。也就是一直ping
下去。观察返回结果。如果出现如下情况:
在一堆低延时中出现一个高延时。甚至超时。那么就是电脑到路由器之间发生了问题。可能的解决方案如下
PS:按下 Ctrl+C
结束ping
如果出现一直是高延时甚至是超时,那么就是长期不稳定。可能的解决方案如下:
【可能原因二:路由器<—>运营商】
最常见的问题。个人的电脑虽然很卡。但是其实路由器到运营商的线路其实已经满负荷了。说明可能是有陌生人连入了wifi。或者有舍友或者同事占用了网速。唯一的方法是进入路由器的后台界面。查看各个用户的使用情况。把不认识的人的mac地址屏蔽。
相信大家都知道这些方法。网络上也有很多。在此不加赘述。
【可能原因三:运营商<—>因特网】
这种情况多出现在铁通,长宽等二级运营商。这些运营商是从电信、网通等一级运营商购买了他们的带宽,然后再经过一定的分流与调整。下放到普通用户中。其特点是价格便宜,网络不稳定。偶尔还会出现网页无法访问,DNS劫持等情况。这些是用户个人无法解决的。唯一的方法就是上网时段避开高峰期,网络情况就会有所改良。
所以建议不要贪便宜购买二级运营商的网络服务
【可能原因四:因特网<—>服务器】
如果出现其他都正常,就一个不正常。那么很可能是远程服务器出现了故障。比如用户量太大,被黑客攻击,服务器瘫痪、维护、关闭等等。当然也有可能是DNS解析出错。查查自己的HOSTS文件
。看看有没有奇怪的东西。如果有,删掉或在前面加#
号注释掉
HOSTS文件路径:C:\windows\system32\drivers\etc
unity物理碰撞大致能分为两大类:碰撞与触发。其碰撞具体属性由物体上的碰撞器组件(Collider)决定。而物体的物理性质由物体上的刚体组件(Rigidbody)决定。为使两个物体满足碰撞/触发条件。必须满足如下条件:
满足如上条件方可使物体产生碰撞事件
碰撞与触发不同。碰撞会阻碍物体运动而触发不会。其区别由碰撞器组件上Is Trigger标识区别
碰撞函数:
OnCollisionEnter/OnCollisionExit/OnCollisionStay
触发函数:
OnTriggerEnter/OnTriggerExit/OnTriggerStay
进行ios开发有一段时间了,也真实使用了一些好用的第三方库。这里开始进行一些总结。也算为后来者提供一个方向
AFNetworking
进行基于webservice开发的必备互联网套件,然而其实我就没用。个人喜欢比较轻量级一点的东西。相对其他第三方库来说有些重了
github
cocoapods
SDWebImage
MJRefresh
SwiftyJSON
正如我之前所说。其实NSURL(string:String)
这个用法对于输入参数的字符串验证是很蠢的。因为他有自己的一套判定机制。比如在Github API编程中使用如下网址:
https://api.github.com/search/repositories?sort=stars&order=desc&q=stars:>500
NSURL就不认识。因为在他的q字段中有一个特殊字符>
。如果将这段网址直接输入浏览器是毫无问题的。然而NSURL不认。
因为NSURL使用的是web服务最底层的API判定。事实上最基础的浏览器也是无法直接输入这段网址的。因为这是个不合法的网址。之所以我们能在浏览器直接使用是因为浏览器本身对输入的网址进行了转译的操作。这个操作是不可见的。因此解决方案也是让iOS在处理这段带有特殊字符的网址进行转译操作。解决方案如下:
1 | let url = "https://api.github.com/search/repositories?sort=stars&order=desc&q=stars:>500" |
通过stringByAddingPercentEscapesUsingEncoding
方法将网址转译。成功通过编译。
转译后的网址:
https://api.github.com/search/repositories?sort=stars&order=desc&q=stars:%3E500
输入浏览器后会发现和原来的一样。地址栏自动将%3E
转译成>
最近被流氓软件劫持了浏览器主页。打开chrome后会自动跳转到hao360上。真实原因是快捷方式启动时被加入了网站地址的参数。只要删除了就好了。然而桌面上的快捷方式很好修改。但是任务栏中的快速启动栏的快捷方式怎么也不好修改。取消固定重新弄也没办法消除。因此在多番查询后终于找到了其真实地址
任务栏快速启动文件真实地址:
当前用户文件夹下的\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
1 | dispatch_sync(dispatch_get_main_queue()) { |
Letter | Date or Time Component | Presentation | Examples |
---|---|---|---|
G | Era designator | Text | AD |
y | Year | Year | 1996;96 |
M | Month in year | Month | July;Jul;07 |
w | Week in year | Number | 27 |
W | Week in month | Number | 2 |
D | Day in year | Number | 189 |
d | Day in month | Number | 10 |
F | Day of week in month | Number | 2 |
E | Day in week | Text | Tuesday;Tue |
a | Am/pm marker | Text | PM |
H | Hour in day (0-23) | Number | 0 |
k | Hour in day (1-24) | Number | 24 |
K | Hour in am/pm (0-11) | Number | 0 |
h | Hour in am/pm (1-12) | Number | 12 |
m | Minute in hour | Number | 30 |
s | Second in minute | Number | 55 |
S | Millisecond | Number | 978 |
z | Time zone | General time zone | Pacific Standard Time;PST;GMT-08:00 |
Z | Time zone | RFC 822 time zone | -0800 |
NSURL 是 OC 或 Swift编程中对http网络通信很常见的一个方法。常用的方法是NSURL(string: "http://.../")
在这里要注意一点。string的参数中不能有中文字符。否则会报错。
fatal error: unexpectedly found nil while unwrapping an Optional value
需要注意的是。在mac中,和windows不同的是,有很多windows中英文通用的字符在mac中并不通用。比如在Mac中中文的=
与英文的=
并不等价。这点可以在Mac中打开记事本在两个输入法中切换一下输入试试。以及其他的很多字符都会出现这种问题。而两者的差别非常大。又因为输入的是字符串。编译器并不会提示这种问题。因此当编写OC或Swift的时候出现这种摸不着头脑的事情。不放重新输入一遍试试。或许会有意外的收获
对于shader问题。很多处于中低级的Unity开发者都束手无策。在使用Endless Run模板项目的时候会出现报错:Shader error in 'Custom/Curved': variable 'o' used without having been completely initialized at line 42 (on d3d9)
这个问题是说返回的参数o
不完整。解决方案如下:
打开/Assets/Endless Run/Curved.shader
文件。找到v2f vert (appdata_full v){}
函数。在返回变量o
之前进行参数补全。添加如下两行代码:
1 | o.viewDir = v.texcoord1; |
自此你的项目就能够正常运行了