Lin Minquan's Blog

体验科技改变生活

广州Unity VR大师课程

主讲人是Carl Callewaert,同时有个翻译的工程师,在一个五星级酒店。主要讲Unity5.3的VR功能,做VR程序时的特别设置、要求,现场教大家做了个塔防游戏,并把它改为VR版本。 现场我做好后的源代码 链接: http://pan.baidu.com/s/1gejrZqz 密码: tfa2 加了Cardboard SDK,更新到https://github.com/linmq/Unity3D-2016-VR-Masterclass-Guanzhou 下面是一些笔记: Asset Store里有VR Sample,可以参考。 不用Normal Map? Statics 中的 SetPass Calls 比 Batches (以前的Draw Calls)重要。 Framer Debugger功能 减少Draw Calls推荐的插件Mesh Baker, Simplygon Enable Virtual Reality Supported时,无法控制main camera位置,可以建个空物体,把main camera放在二级节点。 优化方面的设置(Build Settings -> Player Settings): Standalone(连接主机的VR,如Oculus, VIVE) 开启GPU Skinning Rendering path: deferred Color Space: Linear Android(Gear VR, Cardboard等) 开启Multithread Rendering HTC VIVE等在转圈时会缠住用户,不能转一整圈。游戏设计时要注意这个。 要可以自定义高度来适应用户的身高。 检测VR游戏做得好不好有一点:闭上一只眼睛时,能否让人感觉到3D的深度。于是就得用真实世界中的物体在眼睛看起来的大小。游戏中物体的大小要相对。如果只在三维中放一个简单的靶,没有其它东西进行对比,就不是一个好的设计,无法知道靶的大小。需要有其它能够相对大小的物体进行比较。 genius loci – perspective(游戏中怎样来感受透视) 用逐渐缩小的效果来体验perspective 也用光影 light – shadow来感觉perspective 未来新功能:Unity VR Editor 阅读更多 →

如何在异地打狂犬疫苗

1、如何在异地打狂犬疫苗:带上本地的病历和狂犬疫苗盒子,直接到异地的大医院打。 春节期间我这小地方医院的轮班医生,居然说“那你可能要把其它几针带走”。狂犬疫苗的保存有温度要求,2~8度,携带也不方便。我搜了下相关资料,狂犬病暴露预防处置工作规范(2009年版)(链接1),有提到“原则上就诊者不得携带狂犬病疫苗至异地注射”。那其实即便我把疫苗带到深圳,也得有医院愿意帮我打针。打了几个电话后,北京大学深圳医院说异地把疫苗带来,要是打完出了问题,扯不清到底是疫苗保存的问题,还是医院打针的问题。 另外,不同疫苗品牌、不同批次的问题,临床上没有对各种疫苗、批次间进行过测试。所以还是很麻烦的。后面到深圳后,问的医院总共是打四针的,而我之前打的是五针的,真的是太复杂了。第一家医院(小医院)说他这边是打四针的,无法帮我继续打五针的。问了家更大的医院,他们说四针的也有五针的方案,所以大家到导地后要去大医院继续打。 2、被狗咬的紧急处理方法: 千万不要急着去医院诊治,而是应该立即、就地、彻底冲洗伤口,万一找不到水源,甚至可以用人尿代替冲洗,然后再设法找水源。 冲洗伤口一定要快,以最快速度把沾染在伤口上的狂犬病毒冲洗掉。因为时间一长病毒就进入到人体组织,沿着神经侵犯中枢神经,置人于死地。二是要彻底。由于狗、猫咬的作品往往外口小,里面深,这就要求冲洗时,尽量把伤口扩大,让其充分暴露,并用力挤压伤口周围软组织,而且冲洗的水量要大,水流要急,最好是对着自来水龙头急水冲洗。三是伤口不可包扎。除了个别伤口大,又伤及血管需要止血外,一般不上任何药物,也不要包括,因为狂犬疫苗是有厌氧的,在缺乏气氛的情况下,狂犬病毒会大量生长。 详见下图吧 3、被狗咬的一种方式: 在天已经暗下来,狗狗已经睡觉,然后打开手机的手电筒功能,直接去照着狗狗,打扰它睡觉,也导致它眼睛看不清楚是谁来了,一阵狂叫后还企图用手去安抚。大家引以为戒。 链接1:www.chinacdc.cn/jkzt/crb/kqb/jszl_2201/200912/t20091221_24177.htm 阅读更多 →

2016VR主机的硬件配置

在关注这一块的最新消息,目前最新的就是Oculus Rift和HTC VIVE,这两款都需要连接电脑主机才能运行。Oculus有给出硬件配置要求,VIVE我还没找到具体的硬件配置要求。 Oculus硬件配置要求: NVIDIA GTX 970 / AMD 290 equivalent or greater Intel i5-4590 equivalent or greater 8GB+ RAM Compatible HDMI 1.3 video output 2x USB 3.0 ports Windows 7 SP1 or newer 参考链接:https://www.oculus.com/en-us/blog/the-rifts-recommended-spec-pc-sdk-0-6-released-and-mobile-vr-jam-voting/ www.digitaltrends.com/virtual-reality/oculus-rift-vs-htc-vive/ 问了下两个网友他们跑VIVE的配置,第一个用的是 华硕980Ti i74970k 16G 另一个用的是 CPU是E3-1230 v3 内存8G 显卡970 硬盘SSD,不过他觉得有点卡。 所以有条件的话可以上980。 另外Oculus和NVIDIA有专门给VR用的主机推荐 https://www.oculus.com/en-us/oculus-ready-pcs/ http://www.geforce.com/hardware/technology/vr/where-to-buy 阅读更多 →

尽量少用GetComponent

http://www.cnblogs.com/murongxiaopifu/p/4284988.html 上面链接时有提到有人做了个测试:用GetComponent()获取Transform组件,比预先保存其引用后再调用要慢得多。 我搜了下,找到那个测试。即下面的链接。 http://forum.unity3d.com/threads/cachedmb.130365/ 代码拿来跑了下,结果确实类似。所以在经常要用到的地方少用GetComponent<>(),尽量预先保存引用后再调用。 它的测试代码有一些写法比较有意思,顺便学习了下。 yield return null 表示停顿一帧,才再继续往下走。 这里的计时用到Stopwatch,从字面意思上看就是用来测时间的,用来测一段代码运行的时间。它这里的Stopwatch下面的大括号只是为了让人看得更明白,知道记时开始和结束的地方。 https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1 这里面有用到var,我一直以为C#中是没有var的,js中才有。 搜了下C#中var的用法。 http://zhidao.baidu.com/link?url=mJX9fSA0_N2CaZYPzm3nTMlyBLVNVfMkm5r6IlZHPCWaIguhIJEbDidKBJzy7xPxeQ5bKUSTxQO9KOMPaoI5Pa 阅读更多 →

香港玩具展2016

昨天去看了下香港玩具展,后来才知道是亚洲最大的玩具展,太大了,快速地走一上午才走完了一层。 首先需要在HKTDC官网上申请一下,然后它会给你发邮件,凭邮件里的一个编号,去登记,可以办理入场证件。虽然说是要带名片,但没带名片,填写相关信息也可以办证。 入场时,工作人员会扫描证件上的二维码。 作为软件开发人员,我主要是看跟软件相结合的一些玩具,主要是手机和平板等。这些产品其实还是比较少的,估计是大人很少希望小孩玩手机和平板。 1)AR类的产品; 2)手绘本类的产品; 3)玩具上有触点可以在iPad电容屏上被识别的产品; 4)结合了全息的产品; 有个现象是飞行器类的玩具特别多。 阅读更多 →

Unity3D 5.3 32位安装 No Unsupported Target module loaded

在官网下载并安装了Unity3D 5.3.1 的32位编辑器。为了方便,我都是直接去下载,不用官方给的下载器 Unity Installer。 http://unity3d.com/get-unity/download/archive 准备打包时,发现提示“No Unsupported Target module loaded”,发现得用它的安装器“Unity Installer”来安装打包到各种平台的组件包。怪不得之前下载的Unity Editor 32-bit的安装包才不到300M。 于是我卸载掉Unity Editor 32-bit,下了个Unity Installer重新安装,发现它只能默认安装64bit的Unity Editor,因为它给的安装目录是C:\Program Files,而不是C:\Program Files (x86)。真是麻烦。 同事说得先手动下载安装Unity Editor 32-bit,然后再用Unity Installer安装时才会自动设为C:\Program Files (x86)。于是又得把卸载掉的Unity Editor 32-bit重新装上,才搞定。 话说,32-bit的Editor和64-bit打包出来的exe是不是就是32位和64位的区别了呢? 阅读更多 →

Unity3D OnBecameVisible OnBecameInVisible 无效 没有用

大家有可能在调试的时候发现,在Unity3D的Game窗口中明明物体已经出了摄像机,但还是无法响应OnBecameInVisible。原因是在Unity3D中测试时,需要同时满足物体也出了Scene的窗口,才可以响应OnBecameInVisible。打包成exe出来就没有这个影响。 另外,OnBecameVisible和OnBecameInVisible所在的脚本是需要挂在你要判断的物体上的。 同时,你要用来判断的物体是需要有Renderer Component的。 参考链接: https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnBecameVisible.html 阅读更多 →

台电(Teclast)X98 Air Ⅱ 双系统版 初体验

台电(Teclast)X98 Air Ⅱ 双系统版 初体验 项目上要用个Pad来做个简单的显示功能,没必要用到iPad,搜了下Android Pad,买个Android + Win10双系统来试下。 京东链接:http://item.jd.com/1470251.html 买的时候误以为默认频率是2.16GHz,买了之后才知道最高睿频2.16GHz,默认是1.33GHz。 这个性能跑安卓是没什么问题,跑Win10就觉得比台式机慢多了。 我主要测试的是图形性能,显示一个卡通角色的脸(10万面片),感觉安卓的效果要比Win10好得多。 电池全部耗尽后,再开机需要启动两次才能启动起来。 阅读更多 →

怎样通过官方手段快速从Win7升到Win10

你要等Win7或Win8慢慢地自动更新,那还会安装多余的补丁(反正都要装Win10了,再给Win7 Win8打补丁没意义)。 https://www.microsoft.com/en-sg/windows/windows-10-upgrade 进入上面链接,点击“Upgrade now”,用下载下来的工具就可以直接更新到Win10。 阅读更多 →