有关Unity和iOS4.0的新说明,以及Unity3支持mod格式

亲爱的Unity用户,我再次感谢你们的耐心.感谢你们的支持!

很多人都对开发移动设备兴趣很大,特别是使用Unity创造iPhone游戏而叫棒!,我们一直密切的关注这iOS 4.0的开发服务条款.虽然我们也相信Unity使用C#和JavaScript会没问题的.有一些没有被苹果公司证实的小道消息.不过,苹果公司今天仍审批Unity开发的游戏,也挑选了一些优秀的Unity游戏做推荐.一直以来我们也投入大的经历和资源在Unity iPhone的开发,其中包括即将到来的Unity3.0的许多新功能.但是由于新的开发服务条款的公布,我们也开始了一项应急方案的工作,以防万一.现在请允许解释一下这应急计划的具体内容,让每个人都知道”B计划”的模样.

你可能知道,Unity大多是通过C++优化和通过Objective-C封装的.游戏逻辑是由开发者用C#和JavaScript写的,这两者都运行在.NET中.这个方案的优点在于,我们能够不用复杂的语言实现我们想要的功能,.NET能快速的开发,且接近于即时的编译,又能在同一时间生成高度优化的代码.并且在iPhone上最终编译成符合旧的iOS服务条款的静态机器码.此外iPhone也很容易利用Objective-C代码去访问API,诸如游戏中心等等,这真的是一个两全其美的事情.

由于Unity支持.NET可能与服务的新条款冲突,我们正在研究一种可以在整个游戏中不创建任何使用.NET代码的解决方案.这种情况下所有的脚本API使用c++来操纵.这当然不理想,像有代码量会加长很多.相比C#和JavaScript,C++无疑复杂的多.

但老实说,这并不太糟糕.Unity仍旧有资源管理,着色语言等一些列工具,当然还有引擎的优化.我们也同样保持了Unity的JavaScript和C#的特点:享受似的开发工作.变量仍旧可以在检视面板中去定义.从本质上讲我们正在创建一个基于C++的.NET编译器,使得我们能纯粹的托管C++在Webplayer和其它平台上.在iOS中C++代码将被苹果的Xcode工具所编译.这确实是非常强大的组合.在Unity的编辑器,你可以快速的高效率的开发,在设备上你又可以拥有纯粹的native C.

但是,事实上,当你做一个简单的游戏逻辑时,C++并不是十分复杂,让我们看几个不同的例子.

这是一个非常简单的JavaScript脚本,用来旋转游戏中的物体.

这是用C++编写相同功能的代码.

正如你可以它们基本相同,并不是差别很大.再举个复杂点的例子
这是在iOS设备上利用重力感应和触摸来控制飞行器飞行和发射导弹的游戏:

下面的同样是由C++来实现相同的功能:

同样,与JavaScript对比,我们没有在C++中写太多的代码,甚至与C#相比,它们的差异更小.

我们将继续关注以Unity开发iPhone,iPod touch和iPad.虽然我们不认为C++是编写游戏代码的最好语言,但是C++在内存占用和设备性能上的巨大优势,这是一个伟大的特点,作为开发者,谁不想更多的减少内存占用和提高游戏的性能能呢.

我们仍然不能相信苹果将迫使选择一个具体的语言去开发.正如我先前所说.苹果公司仍然能通过审批Unity开发的游戏,可你们也应该放心,如果形势有变化,我们也不用太担心,因为我们已经准备了B计划.

原文:http://blogs.unity3d.com/2010/07/02/unity-and-ios-4-0-update-iii/

—————————————————–
在Unity3.0中,我们添加了一个令人振奋的新消息,就是用户能在Unity中能像使用其它资源一样使用*.mod文件中的音乐和声音了.先看看Unity3的视音频功能预览视频吧.http://blogs.unity3d.com/2010/06/25/unity-3-feature-preview-audio/

当我开始测试Unity新的音频功能的时候,对*.mod文件我只有基本没什么想法.也不知道能做些什么.我就问我们的音频程序员Søren,他说这文件格式体积小,音质还好.所以我肯定和他说让他试试.当比较了文件大小和音频质量后,我很惊讶,我认为这更适合在网页游戏中传输使用.

这条博文翻译不下去了,太多专业短语不会翻译.放弃了..反正就是说Unity3中支持*.mod文件了.

ps:翻译注明来处1vr.cn,否则MJJ!!

Unity开发Pc单机游戏硬件码注册实现分享

前阵子写的一个单机注册插件,看Unity群里有朋友要求共享,就整理了一下,发到这里共享给大家.本程序相关代码用易语言黑月编写.我觉得什么工具不重要,重要的是能得到结果.是吧.

可以实现的效果如上图,功能包含单机硬件码注册,试用时限限制.取的是客户机的CPU码作为硬件码.经过打乱后显示给客户端的RegBox.exe,客户将硬件码提供给作者,作者利用算号器Keygen.exe算出符合该硬件码的序列号再发给客户,客户打开客户端注册程序RegBox.exe,输入序列号,将信息存入客户机(含有软件到期时间),此时不做验证.当运行Unity游戏时,验证序列号是否正确且验证是否超出试用时限.不同状态有不同返回值.方便作者在Unity中做响应.

在压缩包的BuildExe目录是已经编译好的文件.默认情况下在Unity中直接调用CheckAppSn.dll处理判断,分发时附上RegBox.exe既可.但如果想更改序列号计算方式以免与其它同样使用这个插件的作者重复的话.你可以自行修改计算方式.这个也非常简单.

本插件dll及exe源码需要易语言+黑月打开.黑月工具下载地址(http://www.basic8.com.cn/post/1.html),修打开RegDll.e及Keygen.e代码,修改里面入下图部分既可.其中类似1234567这种数字都可以随意修改,相当于加密密钥.保证Regdll与Regbox中一致就行了.

本插件也包含了注册时间限制,默认是限制软件只有三个月试用时间.如修改时间长度需要打开RegBox.e代码后修改如下部分.

如果不需要时间限制这个功能,可以打开Regdll.e源码,注释掉如下判断段既可.

附件的Project目录中是Unity调用插件的项目文件.E_Code目录是插件的易语言源文件.

ps:如提示有病毒,基本可以忽略,易语言被误杀是历史遗留问题.不是我能解决的.呵呵.

附件:
本地下载:点击下载此文件
镜像下载:http://u.115.com/file/f03b46cacd