月份:2009年9月

Unity iPhone 1.5 更新说明

无论在iPhone还是iPod Touch,你将能在App Store上给你的客户意想不到的感受!

显著的性能提升

  • 比1.0.3版本提升了高达3倍的速度.
  • 提升性能的关键是重写代码以充分利用VFP的协处理器的优势,动画蒙皮的速度提升了4倍多.
  • 网格的自动结合以减少Draw calls.

内置反盗版保护

  • 可以确定苹果的DRM在应用程序表被清除和相应的修改应用程序的行为.

更多增强

  • 完全支持Objective C和C++代码来完全访问iPhone 3.x APIs和自定义插件.
  • 允许视频播放,支持屏幕键盘,和GPS定位服务.
  • 在iPhone 3GS上支持8-texture及自动兼容iPhone 3G.

更好的文档

  • iPhone上的专用优化详细说明,新的长达150页教程.让你快速掌握iPhone游戏开发.

Unity iPhone 1.5 升级:http://download.unity3d.com/download_unity/unity_iphone-1.5.0.dmg
Penelope 教程:http://unity3d.com/support/resources/tutorials/penelope

其他功能,改进或改变

范例,资源和参考

  • 加入iPhone标准资源包
  • 更新了手册和参考文档-更新了iPhone章节-性能优化建议,新的API等等.
  • 本机代码编写的实例-查看插件手册页面的下载链接.
  • Penelope范例的工程和教程创建完成-见如何创建触摸移动对应的Player和相机角色控制.

性能优化

  • 改进的遮挡剔除-现在使用较少的内存和更高的效率.
  • 更新线程主循环-现在你能选择NSTimer,线程和OS时间泵(CFRunLoop)方法.线程方法是默认设置了.
  • 许多内部渲染循环优化.
  • 优化蒙皮所使用的VFP协处理器,大大低于GPU计算的皮肤(Unity现在能处理皮肤5Mverts/s)
  • 优化动画骨骼层次.
  • 优化动画系统,以更好的应多更大更复杂的动画.
  • 优化脚本中浮点计算.
  • 优化当”Fast but no exceptions”开启时脚本调用.
  • 在VFP中添加支持四骨骼权重蒙皮.
  • 在VFP中四骨骼权重支持两层UV设定.
  • 在VFP中二骨骼权重支持两层UV设定.
  • 正式替代主循环(而不是NSTimer),获得更好的CPU资源利用率和可明确控制操作系统处理事件所花费的时间(默认情况下启用,可以通过设置#define USE_NSTIMER_FOR_MAIN_LOOP 1 in AppController.mm禁用)

新功能和改进

  • 新增简单的复制波爱护功能.使用iPhoneUtils.isApplicationGenuine属性来确定DRM是否被删除.
  • 现在Basic版也已经支持Application.OpenURL了.
  • 允许在项目设置中设置Timestep的最大值,如果帧速率过低好让引擎跳过一些FixedUpdates.
  • 新增自定义插件的支持(只有高级版).只要在你使用的语言中添加自定义属性
  • [DllImport(“__Internal”)] ,具体相当于在C#中执行XCode的命令.

  • 增加全屏视频回放支持(iPhoneUtils.PlayMovie/PlayMovieURL).
  • 新增支持GPS定位服务(iPhoneSettings.StartLocationService / iPhoneInput.lastLocation).
  • 增加iPhone屏幕键盘的支持(iPhoneKeyboard类).
  • 增加为iPhone屏幕键盘定制的TextField/PasswordField/TextArea等GUI组件.
  • 增加屏幕四个方向的函数iPhoneSettings.screenOrientation.iPhoneSettings.verticalOrientation现在已经过时了.
  • 增加对震动的支持(iPhoneUtils.Vibrate).
  • 在项目设置的Player设置中增加更多设置(包括版本号和用户界面方向设置等属性).
  • 实现了在iPhone 3GS上着色器支持多达八个纹理单位,及在编辑器中添加3GS模拟器.

批次

  • 自动处理静态静态批次-只需要标记你的对象为”Static”,在Build时及在编辑器Play模式时他们将成为一组,不需要额外的脚本.
  • 真实模拟在编辑器中动态和静态的批处理.现在统计窗口将显示预测在iPhone上运行时的DrawCalls和顶点数.
  • 如果他们共享相同的材质,将自动处理合并小的动态物体(当它小于300个顶点).优化OpenGLES的draw-call.
  • 支持任何尺寸静态物体的合并处理.如果他们共享了相同材质和不改变他们的transform节点.在标准资源中准备了CombineForStaticBatching脚本为这种类型的对象处理.
  • 更新静态批次脚本,如果它们没有在原来的网格中则省略掉,节省一些内存.
  • 改进静态批次设置-它不是要为静态合并后的几何体创建额外的游戏对象了,而不是原来的游戏对象渲染器补充.但是你必须使用renderer.worldToLocalMatrix/localToWorldMatrix.在Transform组件中设置着色器参数来代替相似的方法.不这样做可能会留下些隐藏的问题.
  • 在基础版中如果用静态批次或者静态批次脚本在编辑器将输出警告/错误.

更多的改进

  • 如果在同一帧中开始和结束触碰(在很短的一个触碰时间下),Unity将结束阶段推迟到下一帧,从而使脚本能正确的做出反应.
  • 改进GC堆栈管理,现在典型的堆栈应该在200~400KB左右.
  • 改进XCode追加项目的功能.现在将隐藏文件夹而不是从”Classes”和”Libranes”子文件中移除.
  • 在3.0系统的设备商NullReferenceExceptions现在能工作了.(如果调试器因为它停止,只需要点击”continue”即可).
  • Unity现在尊重你的XCode项目了,它再也不会覆盖.你可以放心的添加新文件,修改项目本身或AppController.mm文件,Unity只追加必要的文件.但是请注意,像Libraries,Data,项目根目录始终是覆盖写入的.
  • 在项目设置的Player设置中新增启动画面和图标选择的设置项.
  • 剥离关卡顺序被修改,新顺序如下:Disabled(禁用), Strip Assemblies(组件剥离), Strip ByteCode(字节码剥离), Use micro mscorlib(使用微软mscorlib).
  • 现在计数所有三角形,现在编辑器中废除的三角形不会遗漏计数.因为它们是在一个真正的设备性能中计算(部分3GS iPhone没有postTnL缓存).
  • iPod Touch第三代设备现在可被检测出.
  • 从项目设置中移除与iPhone不相关的设置.
  • 在编辑器中使用震动将在编辑器日志中显示调试信息.
  • 重新开启iPhoneSettings.generation功能.现在返回枚举而不是字符串.及支持iPhone 3GS.
  • 改进iPhoneKeyboard类的视觉外观.
  • 当在nVidia显卡下使用iPhone 3GS模拟器增加”half”(4与8纹理之间).
  • 改进键盘输入的视觉外观.
  • 在项目设置的Player设置中增加iPhone应用程序显示名称等设置.
  • 改进内部统计.新增GC的统计.
  • 开放iPhoneSettings.generation特性.允许查询设备信息.
  • 增加处理进程AppController.mm的默认时间从3毫秒到7毫秒.为一些有些改进了触摸/重力感应,但是稍微会影响其他性能.
  • 在项目设置中重命名”Override Audio”设置为”Override iPod Music”.
  • 如果正在构建包含MovieTexture资源的项目将在编辑器中显示错误信息.
  • 在项目设置的Player设置中新增”Override Audio”选项,来开关当程序开始时iPod后台播放是否停止.
  • 新增互联网可达属性:iPhoneSettings.internetReachability,使用WWW前先用它检查.
  • 添加”Done”按钮为关闭多行输入或数字键盘.对键盘的输入外观和感觉有所改善.
  • 在内部统计中新增剔除时间.
  • 在内部统计中新增垃圾收集器.
  • 屏幕旋转时候的效果.

Bug修复

  • 修正在运行时和用UnityRemote时touch.deltaTime的报告.
  • 修正某些非常特殊情况下使用蒙皮的问题.
  • 修正如果不存在UV1,静态批次脚本将使用UV0,而不是UV1.
  • 修正安装器保证Unity标准范例完整.
  • 修正剩余svn的问题.
  • 遮挡剔除的问题修正.
  • 修正在RenderObjectSorter的崩溃.
  • 修正引擎初始化后当UIWindow已被创建的场景的错误渲染.
  • 修正当iPhone图形模拟器关闭时导入网格资源偶尔崩溃的问题.
  • 小键盘的修正.
  • 修正许可证文本.
  • 修正偶尔出现的设备位置查询对话框.
  • 修正未压缩的音频造成的性能退化问题.
  • 修正游戏开始后iPod music的播放问题.
  • 修正如果iPod music在游戏中停止.压缩的音乐开始播放的问题.
  • 修正在雪豹系统崩溃的Bug.
  • 修正闪屏与第一个场景之间偶尔显示黑框.
  • 修正在iPhone 3GS的有限纹理单位的渲染子系统上上支持超过2个单位.
  • 修正在基于NSTimer的主循环中使用iPhoneSettings.isApplicationGenuine崩溃.
  • 投影机现在也支持静态批次几何体了.
  • 修正使用投影器组件偶尔出现撕裂的投影纹理.
  • 修正导入拥有相同名称的Maya资源的问题.
  • 修正着色器的深度偏移的支持.
  • 脚本参考和文档的各种修正.
  • 修正Unity开始后一些对象分配出现的崩溃.
  • iPod后台音乐播放支持3.0系统.
  • 改进WWW类连接网络故障处理.
  • 修正GUI.BeginGroup对GUI不正确的裁剪.
  • 修正在同一帧中一个声音开始播放后拒绝其他任何声音的播放.
  • 修正如果使用Graphics.DrawMesh API渲染,不正确的材质设置问题.
  • 修正在正交投影中粒子渲染器的比例问题.
  • 在视频正常回放或意外中断之后未压缩音频回放现在已经正常工作.
  • 修正蒙皮网格的自动批次问题.
  • 修正当使用自动批次后alpha混合的顺序不正确问题.
  • 修正一些蒙皮网格无光照的问题.
  • 修正在编辑器中iPhone模拟器错误报告说DOT3不被支持.
  • 修正多个FBX文件导入的问题.
  • 修正某些情况下一个动画时间事件调用播放/停止/改变时间出现无限循环的问题.
  • 修正在AudioSource预设没有实例化后被使用导致音频崩溃的问题.
  • 修正16位纹理导致错误的透明问题.
  • 修正用16位纹理时表现为是没有解压到内存的32位格式.
  • 修正monolinker偶尔崩溃的问题.
  • 修正支持Application.CaptureScreenshot.
  • 修正音频导入对话框仅显示mp3/m4a文件的信息.
  • 修正天空盒被合并为单一纹理而不是定义为6个面片.
  • 修正设置压缩音频的音量.

转载请注明来处1Vr.Cn,否则MJJ!