摘要: "Ran out of trampolines of type 0/1/2" 运行时间错误通常出现在使用大量递归泛型时。要看到这个错误需要连接着设备直接将项目build到设备里运行调试才能看到,您可以暗示 AOT 编译器分配更多type 0、type 1 或 type 2 trampolines。此... 阅读全文
posted @ 2014-07-01 21:31 Ash Tang 阅读(2442) 评论(0) 推荐(0) 编辑
摘要: 想当年,想弄iOS的版本必须弄台mac机器,虽然一开始要弄iOS的时候觉得在mac上开发感觉挺高富帅的,但是做多了之后就觉得在mac上开发各种不方便。现在好了,Unity3D 4.3开始支持在Windows切换到iOS平台,可以设置iOS特定参数,并且打包iOS的Assetbundle,赶脚方便多了。补充:经过测试并向Unity支持确认,在Windows下打包iOS的Assetbundle会比在mac上打要慢,我自己的测试结果是比打Android的要慢3-4倍,据了解此问题已作为Bug提交到dev team了,原因仍未确定,又一坑爹设定啊! 阅读全文
posted @ 2013-12-06 20:39 Ash Tang 阅读(2311) 评论(0) 推荐(0) 编辑
摘要: Unity 4.2加入了支持WinPhone发布,本来是一件令人开心的事情,不过最近听了Unity技术支持的一个事情后就发现,原来发布WinPhone版也是一个坑。实际上如果你用Unity做小游戏发布到WinPhone没什么问题,最好还是用Resource.Load()的方法加载资源,如果想做一个MMO发布到WinPhone将会是一件很有挑战性的事情,主要是做MMO一般要用Assetbundle,而在WinPhone里不能卸载Assetbundle部分的资源,因为WinPhone操作系统的内存管理策略比较坑爹,在程序切到后台再切会来的时候,内存会刷新一遍,而Asset必须依赖Assetbund 阅读全文
posted @ 2013-12-06 19:48 Ash Tang 阅读(2134) 评论(0) 推荐(0) 编辑
摘要: 前天Build Assetbundle的时候出错了,导致打包失败,具体日志内容如下:An asset is marked as dont save, but is included in the build:Asset: 'Assets/Resources/Characters/NPC/NPC_1010.prefab'Included from scene: 'Assets/Scenes/InitScene.unity'UnityEditor.BuildPipeline:BuildAssetBundle(Object, Object[], String, Bui 阅读全文
posted @ 2013-12-04 16:19 Ash Tang 阅读(3067) 评论(0) 推荐(0) 编辑
摘要: 之前在Unity讨论Q群里总是有不少同学求项目资源和源码神马的,其实这种资源在官网很多,而且都比较规范和专业,很有参考价值,链接:https://www.assetstore.unity3d.com/不过再有同学说里面的资源都是收费的,再右边有个标签选择“Top Free”可以过滤免费的出来,排前面的都是unity官方的demo,打开自己想下的那个点击“Open in Unity”,在Unity的Asset Store里下载,在这里下载要有Unity的帐号,注册免费,不影响破解,可以放心使用。 阅读全文
posted @ 2013-12-04 14:32 Ash Tang 阅读(3248) 评论(0) 推荐(0) 编辑
摘要: 关心Unity版本的变化以及了解未来版本的内容是专业做Unity的同学必备的功课,下面我来说一下我对4.0以后版本的一些见解。v4.0:这个版本比3.5有较大的跳跃,首先最大卖点是新的动作系统Mecanim,有了这套动作系统,可以比较方便的实现很多高级的动作设置,如可以交给美术调动作融合,动作骨骼带动角色位移,使用humanoid可以共用动作,使用humanoid可以做不同肢体独立运动,IK,实现多个动作之间的融合等等。不过这个版本的Mecanim也很不成熟,第一没有动作事件,第二动作切换控制不是那么方便,第三controller不能打包成Assetbundle,这是最大的硬伤。其次到新的粒子 阅读全文
posted @ 2013-12-03 22:30 Ash Tang 阅读(9168) 评论(3) 推荐(0) 编辑
摘要: 我现在参与的项目是做MMO手游,目标平台是Android和iOS,iOS平台不能动态加载dll(什么原因找乔布斯去),可以直接忽略,而在Android平台是可以动态加载dll的,有了这个就可以实现代码更新,不过实际上,在unity里要用上动态加载dll是有很多限制的(不了解的话就是坑)。限制1:在Android手机里动态加载dll不能使用Assembly.LoadFile(string path),只能使用Assembly.Load(byte[] rawAssembly)这个接口,所以要自己想办法先读出来。限制2:动态加载的脚本不能在编辑器里挂在prefab上。限制3:如果脚本在动态dll里, 阅读全文
posted @ 2013-12-02 21:49 Ash Tang 阅读(23905) 评论(10) 推荐(1) 编辑
摘要: 之前在越狱手机里找到《永恒战士3》的程序发现是用Unity做的,拷出资源出来看的时候发现里面有游戏程序集,立马抽出来反编译了一下,发现里面的代码只有方法签名,没有方法体,还以为用什么高端混淆工具做的,后来问了Unity技术支持后了解到,发布iOS平台后,dll只会留着方法签名部分,具体实现都已经转成native code,要破解比较困难,太好了,妈妈再也不用担心以后发布iOS平台代码被破解了!补充:要实现去掉方法体还需要设置一下,在Player Settings里Other Settings下,Stripping Level要选Strip ByteCode,或者更高的Stripping Lev 阅读全文
posted @ 2013-12-02 21:24 Ash Tang 阅读(7337) 评论(3) 推荐(0) 编辑
摘要: 从Unity4.2开始,为了减少首包大小,不会默认将所有Shader引擎加到游戏程序中,据Unity技术支持人员所说,Unity会将Shader引擎打包到Assetbundle资源中,但是我测试发现不行(可能是我打开方式不对...),不过只要将用到的Shader加到Editor->Graphics Settings的Shader列表里再进行打包即可。 阅读全文
posted @ 2013-12-02 14:36 Ash Tang 阅读(25771) 评论(3) 推荐(1) 编辑
摘要: 我们在做能自动生成试卷的考试系统时,常常需要随机生成一组不重复随机数的题目,在.net Framework中提供了一个专门用来产生随机数的类System.Random。 对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。伪随机数的选 择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要。... 阅读全文
posted @ 2013-01-30 20:42 Ash Tang 阅读(697) 评论(0) 推荐(0) 编辑