unity发布iOSunity 获取应用版本号,播放视频在iPhone5上打不开,iPhone6正常

文章前面的话:
下文是在13年写的,基于版本为:&Unity 4.0 &Xcode 4.6
当前开发工具已经过多个版本升级,所以有些地方可能已经与下文描述不符。
若有时间我回头使用新版做个demo,到时更新链接过来。评论可能无法一一回复,各位见谅。
====================&正文分割线 ====================
Start a Unity app from inside a native iOS app
1. 首先,从Unity中将Unity项目导出Xcode工程。(因为Unity生成的工程目录比较麻烦,没有研究,所以从Unity生成工程的基础上进行开发)
2. 生成的Xcode工程包含以下文件。
  其中main.mm文件,是项目的入口文件。
  从代码来看。Unity是使用红色框中的文件(AppController)启动,没有用到蓝色框中的文件。所以我们可以直接使用(iPhone_targer2AppDelegate)
3. 修改入口文件,main.mm
  将启动类,由&AppController&改为&NSStringFromClass([iPhone_target2AppDelegate class])&
NSAutoreleasePool * pool = [NSAutoreleasePool new];
// UIApplicationMain(argc, argv, nil, @"AppController");
UIApplicationMain(argc, argv, nil,
NSStringFromClass([iPhone_target2AppDelegate class]));
[pool release];
4. 在&iPhone_target2AppDelegate&中,就可以正常的使用我们iOS项目了。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]];
[self.window makeKeyAndVisible];
return YES;
5. 接下来就是本文的重点了,怎么启动Unity项目呢。
  [[[AppController alloc] init] startUnity:[UIApplication sharedApplication]];
6. 从Unity项目退出,返回iOS项目。在AppController.mm中加入对Unity的响应,代码如下
  这里使用了Unity和Object-C之间的代码交互。详见:http://alexanderwong.me/post//call-objective-c-from-unity-call-unity-from
extern "C" {
float doExitSelector()
// 使用这个代码会导致应用Crash
// ReleaseViewHierarchy();
// UnityCleanup();
// 所以在这里,使用以下方法:讲Unity暂停,隐藏项目,将iOS项目Window显示
UnityPause(true);
_didResignActive = YES;
Profiler_UninitProfiler();
[[[UnityGetMainWindow() rootViewController] view] setHidden:YES];
[[[iPhone_target2AppDelegate shareApplicationDelegate] window] makeKeyAndVisible];
return 0.0f;
7. 最后注意一点,startUnity方法只能使用一次。多次调用同样会导致应用Crash,并报错:&should not be reached at domain.c&。
  如果需要在Unity和iOS之间多次切换的话,可以在AppController.mm中加入以下方法
- (void)restartUnity {
[[[UnityGetMainWindow() rootViewController] view] setHidden:NO];
[UnityGetMainWindow() makeKeyAndVisible];
if (_didResignActive)
UnityPause(false);
_didResignActive = NO;
  在需要的地方调用:
- (void)onClickTest:(id)sender {
if (appController) {
[appController restartUnity];
appController = [[AppController alloc] init];
[appController startUnity:[UIApplication sharedApplication]];
PS: 有错轻拍
  开发工具版本:Unity 4.0 &Xcode 4.6
阅读(...) 评论()Unity发布的ios包在iphone上声音是从听筒里出来的问题_IOS开发-织梦者
当前位置:&>&&>& > Unity发布的ios包在iphone上声音是从听筒里出来的问题
Unity发布的ios包在iphone上声音是从听筒里出来的问题
在PlayerSettings取消勾选Prepare
iOSforRecording即可
unity官方的解释如下:
Prepare iOS for Recording
When selected, the microphone recording APIs are initialised. This makes recording latency lower, though on s it re-routes audio output via earphones only.
以上就是Unity发布的ios包在iphone上声音是从听筒里出来的问题的全文介绍,希望对您学习和使用ios应用开发有所帮助.
这些内容可能对你也有帮助
更多可查看IOS开发列表页。
猜您也会喜欢这些文章在 iPad 朝向专业化的道路上,iPad Pro 的 Smart Connector 曾被寄予厚望,但那么长时...
在“iPhone 8”上亮相的这些功能可能将成为未来所有苹果设备的标准配置。
据悉,Ice Lake处理器可能配备在2018年底或 2019年初的Mac电脑。
初代iPhone让我们开始对多点触控界面司空见惯,但是说到苹果、乔布斯与多点触控的历史...
科技的进步其实对几乎所有行业都带来诸多影响~
iOS 11一上线就有那么多人可以体验AR,也是绝了!
来看看有没有你心仪的设备,快买买买吧!
为什么不起个叫什么《食物总动员》之类的名字?远比现在这个好多了。
《拯救潘乔2:解谜之旅(Amigo Pancho 2: Puzzle Journey)》是一款益智休闲游戏,玩...
不知道大家还记不记得《哆啦A梦》里有一个超神奇的道具,叫做记忆面包,把想要记住的...
对于一些现实题材的游戏来说,或许怀着怎样的心情去体验远比寻求那些游戏技巧要重要的...
《神话探索者:火神的遗物》是一款由Sunward Games制作,Artifex Mundi发行的冒险解谜...
每次掷出骰子都是心惊胆战,天堂地狱就在一瞬之间,你能体验到10点的骰子指出去之后成...
炎炎夏日,很多小伙伴会选择以游泳的方式来去除这份燥热。而在游戏行业之中,也有不少...
Schlage 今日发布了一款全新 WiFi 适配器,让 iOS 用户能够远程控制家中的 Schlage Se...
目前仍有不少用户在为 iPhone 存储不足的问题而苦恼。
苹果虽推出了车载系统,但支持的车型还不算多。
通过连接 WiFi,在 iOS 设备上可对 LightwaveRF 智能家居系统进行控制操作。
宜家的 Tradfri 智能照明系统涵盖了几乎所有类型的家用灯泡接口。
理想的 iPhone 保护壳应该是轻薄、坚固且价格实惠的。
你需要给自己的 Apple Watch 加上一些不一样的风格。
Sylvania 与飞利浦的智能灯泡 Hue 一样,可以设置为几种不同的颜色或是不同亮度的白光...
本主题需要才能查看,如没有账号,戳我!
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!在 iPad 朝向专业化的道路上,iPad Pro 的 Smart Connector 曾被寄予厚望,但那么长时...
在“iPhone 8”上亮相的这些功能可能将成为未来所有苹果设备的标准配置。
据悉,Ice Lake处理器可能配备在2018年底或 2019年初的Mac电脑。
初代iPhone让我们开始对多点触控界面司空见惯,但是说到苹果、乔布斯与多点触控的历史...
科技的进步其实对几乎所有行业都带来诸多影响~
iOS 11一上线就有那么多人可以体验AR,也是绝了!
来看看有没有你心仪的设备,快买买买吧!
为什么不起个叫什么《食物总动员》之类的名字?远比现在这个好多了。
《拯救潘乔2:解谜之旅(Amigo Pancho 2: Puzzle Journey)》是一款益智休闲游戏,玩...
不知道大家还记不记得《哆啦A梦》里有一个超神奇的道具,叫做记忆面包,把想要记住的...
对于一些现实题材的游戏来说,或许怀着怎样的心情去体验远比寻求那些游戏技巧要重要的...
《神话探索者:火神的遗物》是一款由Sunward Games制作,Artifex Mundi发行的冒险解谜...
每次掷出骰子都是心惊胆战,天堂地狱就在一瞬之间,你能体验到10点的骰子指出去之后成...
炎炎夏日,很多小伙伴会选择以游泳的方式来去除这份燥热。而在游戏行业之中,也有不少...
Schlage 今日发布了一款全新 WiFi 适配器,让 iOS 用户能够远程控制家中的 Schlage Se...
目前仍有不少用户在为 iPhone 存储不足的问题而苦恼。
苹果虽推出了车载系统,但支持的车型还不算多。
通过连接 WiFi,在 iOS 设备上可对 LightwaveRF 智能家居系统进行控制操作。
宜家的 Tradfri 智能照明系统涵盖了几乎所有类型的家用灯泡接口。
理想的 iPhone 保护壳应该是轻薄、坚固且价格实惠的。
你需要给自己的 Apple Watch 加上一些不一样的风格。
Sylvania 与飞利浦的智能灯泡 Hue 一样,可以设置为几种不同的颜色或是不同亮度的白光...
本主题需要才能查看,如没有账号,戳我!
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!史上最全的Unity3D iPhone(IOS)开发问题汇总与解决办法! | Unity3D教程手册
当前位置 :
>> 史上最全的Unity3D iPhone(IOS)开发问题汇总与解决办法!
史上最全的Unity3D iPhone(IOS)开发问题汇总与解决办法!
当试用Unity3D针对ios iPhone开发时会遇到很多问题,以下内容整理来自网络.
本节的内容是说明iphone开发一些最常见和重要的问题。
先决条件:
我刚收到iPhone开发的许可,但我之前从来没有为iPhone开发。我该怎么办呢?
答:下载的SDK ,启动和运行苹果开发者网站,建立您的team,devices和provisioning。我们提供了基本的步骤列表让你开始。
用Unity建造的游戏可否运行在iPhone的模拟器?
答:不可以。iPhone模拟器对于unity不是非常有用,因为它没有模拟iPhone所有的交互方式,而且它模拟的性能和运行在iPhone上是不一样的。您可以直接在Unity内部测试游戏,iPhone将作为一个遥控器使用,当它运行在iphone的远程应用端(Unity remote)上时。然后当您准备好要测试性能和优化游戏时,就将其直接发布(publish)到iPhone中。
Unity Remote:
我该怎样使用Unity Remote?
答:在您的Unity iPhone安装目录,您会看到一个文件夹,名为“Unity Remote” 。这包含了XCode项目,您可以运行和编译Unity Remote安装到您iphone上。安装后,请确保您的设备和开发机是通过WiFi连接到同一网络。在Unity 运行时启动iphone Remote,并在出现的列表中选择您的计算机。现在,只要您点击编辑器中的播放模式,您的iphone设备将作为一个远程控制端用来开发和测试游戏。
我在xcode里产生了一个奇怪的错误,当部署unity Remote到设备时。
答:Unity Remote的identifiler和您提供的provisioning profile不匹配。您必须手动更改此签名在您XCode项目。identifiler必须和您提供的provisioning profile相符。
如果你有一个授权的AppID,上面标有星号作为结束(例如######. com.mycompany .* ),你可以跳过这一段。如果您没有创建AppID,那么你就必须在iphone开发中心的program portal中建立一个。转到program portal,选择AppIDs选项卡上,单击添加编号按钮(右上角) ,输入*在app id名称和您通常使用的签名(例如com.mycompany )之后 。添加新AppID到你的provisioning profile中,请下载并重新安装它。不要忘了之后重新启动XCode。如果您有任何麻烦请查询如何配置授权章节。
打开iphone Remote 项目在XCode中 。在菜单中选择项目“project-&Edit Active Target”unity Remote“ ,将打开一个”unity Remote“信息窗口。选择Properties选项卡。更改identifiler属性字段com.unity3d.UnityRemote为您的AppID。其次是“ UnityRemote ” 。例如,如果您provisioning profile包含######. com.mycompany .* 这个AppID,当更改identifiler字段为com.mycompany.UnityRemote 。在Build菜单中选择清除所有目标,然后编译并再次安装unity Remote。
(不要忘了要更改identifiler,然后才能安装unity Remote到您的设备上)
Unity特性:
我如何使用触摸屏和加速度计?
答:在Scripting reference中,你会找到一些iPhoneInput类,还有iPhoneSettings和其他一些。这些新增的iPhone类负责钩起设备指定功能。
难道iPhone支持unity的地形引擎?
答:在Unity iPhone中目前不支持地形。在iPhone上您需要绘制low poly地形。地形系统没有这个功能,所以使用low poly是更好的选择。
我现有的粒子系统运行在iPhone上时很慢。我应该怎么办?
答: iPhone拥有相对较低的fillrate 。如果您的粒子效果覆盖大部分的屏幕,而且是multiple layers的-这样即使最简单的shader,也能让iphone傻眼。我们建议把您的粒子效果baking成纹理序列图。然后在运行时可以使用1-2个粒子,通过动画纹理来显示它们。这种方式可以取得很好的效果,以最小的代价。
我是否可以在游戏中,使用复杂的物理仿真?
答:iPhone运算物理仿真代价很高,我们建议您尽可能少使用它们。物理需要做很多浮点数运算不适合iPhone的ARM处理器。如有可能,完全避免使用MeshColliders,但必要时它们是可用的。要提高性能,使用一个低的固定帧率在 Edit“Time”-&"Fixed delta Time"。建议控制在10-30。在降低物理帧速率的同时,可以使用刚体插值以实现平滑的动作效果。为了实现完全流畅的帧率而不卡机,最好是选择Fixed deltaTime value base,使您的游戏在iPhone上获得一个平均的帧率 。建议要么1:1或一半的帧速率。例如,如果您获得每秒30张,您应该使用15或30 fps为物理固定刷新率( 0.033或0.066 )
使用UnityGUI的考虑:
使用UnityGUI将会对我的游戏性能产生什么影响吗?
答: 当有许多交互控制时,UnityGUI的使用代价是相当昂贵的,。理想的方法是限制使用UnityGUI游戏菜单,或在游戏运行中尽量少用GUI控制。重要的是要注意,每个对象脚本的OnGUI ( )调用将需要更多的处理器时间,即使它是一个空OnGUI ( )块。最好的方法是禁止此脚本调用GUI元件,如果它没有使用。为此,您可以标记脚本为Enabled=false。
UnityGUI 有没有其他的使用技巧?
尽可能少尝试使用GUILayout。如果您的GUILayout不是都从一个OnGUI调用,您可以停用所有GUILayout渲染使用MonoBehaviour.useGUILayout =这能双倍提高GUI图形渲染性能。最后,尽量少用GUI元件,在绘制三维场景的同时。
设备的图形性能:
什么是网格量化?
答:在iPhone中内存带宽是另一个宝贵的资源,(因为CPU和GPU需要共享带宽) 。 iPhone支持32 ,16和8bit类型的vertex components。量化网格图形数据到这些指定类型,可以尽量压缩顶点数据尺寸(鉴于它可以容忍一些用户指定错误)。由于访问数据量的减少,可以提高性能。
我可以在iphone上使用bumpmapped 吗?
答: iPhone拥有介于TNT2和GeForce1之间的片段处理能力。它可以加或乘两个纹理在一起,但法线贴图只能歇菜。
基本的顶点计数原则是什么?
答:为了实现每秒30张在iPhone上,你应该让每帧顶点计数明显低于7000个。每个场景顶点数量则没有限制。只要您确保不超过7000个顶点在同一可见画面中,就能保证unity的高帧率。使用新的遮挡筛选功能,可以确保只有7000顶点可见。
我收到了很多编译错误Xcode 。这是怎么回事?
答:请确认您选择了“Device”模式,而不是“simulator”。
有时,当我点击“Build and go” ,我看到奇怪的错误。
答:这是一个Xcode的Bug ,并且不破坏您的项目。只要按一下确定以绕过消息,您的游戏应该功能完全正常。
我该如何设定我的应用程序图标在iphone主页屏幕?
答:你需要从Xcode中处理这个 。有一些简单的步骤如下:
创建您的57x57像素png图像。
将其命名为“ Icon.png ” ,并将其放置在Xcode项目的根目录
在Xcode ,右键单击该项目文件中“Group&File”
选择Add...-&Existing files并添加您的图片。
找到Info.plist在Xcode ,双击它
改变“Icon file”属性值为“ Icon.png ”
如何设置启动画面为我的应用(只支持unity iPhone专业版)
答:你需要在Xcode中实现 。有一些简单的步骤如下:
创建一个320x480像素的png图片
其命名为“ Default.png ” ,并将其放置在Xcode项目的根目录
在Xcode ,右键单击该项目文件中“Group&File”
选Add...-&Existing Files并添加您的图片。
【上一篇】
【下一篇】
您可能还会对这些文章感兴趣!}

我要回帖

更多关于 unity 开发应用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信