LinMinquan's Blog

Experience technology to change life

Unity3D官方的直接下载地址

Unity3D的官方下载网页:https://unity3d.com/get-unity/download/archive 现在Unity3D的下载需要用到官方的工具,叫Unity Installer,公司内部好几台电脑需要升级时每个人都在线下载安装就好麻烦,在网上搜索并猜到其直接下载地址的方法。 以Unity3D 5.3.5f1为例,可以查看到Mac版Editor的下载地址是http://download.unity3d.com/download_unity/960ebf59018a/MacEditorInstaller/Unity-5.3.5f1.pkg?_ga=1.116579589.2817943.1469440554 , 而其实际的下载地址是 http://netstorage.unity3d.com/unity/960ebf59018a/MacEditorInstaller/Unity-5.3.5f1.pkg 只需要稍微改一下URL即可。 参考链接:https://www.reddit.com/r/Unity3D/comments/45ytcg/unity_53_offline_installer/ Read more →

广州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, SimplygonEnable 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 Read more →

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   Read more →

尽量少用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 Read more →

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位的区别了呢? Read more →

Unity3D OnBecameVisible OnBecameInVisible 无效 没有用

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

Unity3D界面上Inspector的Rotation应该是相对于世界坐标的

我们知道在三维中旋转某个轴,该轴是不动的,只是另外两个轴组成的平面在动,这个说法是指绕着自身坐标系旋转,即局部坐标系(Local Coordinate)。一直以来,我以为Unity3D中的界面Inspector上的Rotation是绕着局部坐标系旋转,今天要旋转一个物体时,发现应该是世界坐标系。 当Rotation的X、Y、Z都是0的时候,你旋转某个轴是看不出来,但X、Y、Z上都已经有些值时,你就可以看出来它不是绕你想要的局部坐标系的轴在旋转。 把左上方的Local改为World,就能更好地看出想要的旋转。 Read more →

Unity3D材质丢失的解决办法

Win7 Unity3D 4.2.0f4 同事给我一些Fbx格式的角色动画,包括几个图片文件夹,和一个Materials文件夹。但我在导入Unity3D时,但主角的材质却丢失。 解决办法是把Materials文件夹删掉,然后那个文件夹上右键选择reimport,即可解决问题。 Read more →