求教,unity和IOSunity原生技术转屏的冲突问题

unity3D与iOS原生工程项目合并以及合并过程中的问题 - 简书
unity3D与iOS原生工程项目合并以及合并过程中的问题
由于公司项目的需要,需要将unity3D工程跟原生工程合并, 所以不得不接触unity3D, 本文是将unity3D导出的iOS代码移植到Xcode本地建的工程中, 上代码:首先,总体来说,总的步骤分为两大块, 第一,你需要从unity3D中导出Xcode第二,你需要将导出的iOS代码部分移植到你想要的本地iOS项目中.第一部分, unity3D导出Xcode项目1.打开你的unity工程,然后点击上边菜单栏file中的build settings
2. 接着会弹出一个如下的框, 点击switch platform 选择iOS平台,
3. 点击player settings... 配置参数如下图
4. 配置完成后点击build, 等待完成,这个过程可能会时间长点,稍安勿躁, 完成之后是这样的
5.然后打开文件iOS文件夹是这样的,我们需要的重要核心的代码都在画红线的这几个文件夹中,所以,我们下面就需要把这几个画红线的文件夹拷贝到我们需要的iOS原生项目中.
第一部分导出Xcode工程已经完成,这部分很简单, 接着,我们就开始第二大部分,也是很容易出错的地方,尤其是配置需要注意.第二部分, unity3D导出Xcode项目导入到原生的iOS项目中
1.Unity导出的工程中的bundleId要和你本地iOS项目的id一致2.修改bit code为NO3.删除Main.storyboard,代码设置控制器(方便切换window)4.将Classes,Libraries,MapFileParser.sh拖入到项目(选中Copy items if needed,选中Create groups)将Data拖入到项目(选中Copy items if needed,选中Create folder references)注意:文件拖进工程的方式不完全一样,注意勾选的地方
5.添加framework(注意Optional的三个)
6.添加Header Search Paths和Library Search Paths
7.other C Flags -& -DINIT_SCRIPTING_BACKEND=1
8.添加User-Defined (UNITY_RUNTIME_VERSION版本号与导出工程的Unity版本号需要一致)
9.添加Run Script
10.把Unity/Classes/Prefix.pch的代码复制到新建的pct文件, 并把classes文件夹下的pct文件删除,注意,这里的删除并不是彻底的删除, 而是从列表中删除,选择中间这个, 以下步骤中所说的删除都是这个意思,请牢记哈!
11. 将Classes/main.mm全部内容复制到main.m 并把扩展名改为.mm
12. 修改UnityAppController.h
13.在AppDelegate.h .m中添加如下代码
到这里基本上已经完成从本地iOS跳转到Unity项目里了,接下来,是我在做的过程中遇到的问题.1.Unknown type name 'UnityViewControllerBase'解决办法就是把它改成UIViewController2.iOS本地应用跳转unity的时候出现黑屏原因是你的u3d工程集成了EasyAR插件,而这个插件下有个Assets/Plugins/iOS/EasyARAppController.mm,@interface EasyARAppController : UnityAppController,这是整个app启动时的第一个controller,自己修改合并这个controller就OK了或者是将EasyARAppController.mm的内容复制到你的自定义的子类中去,然后删除引用也是OK的看下图
在UnityAppController.mm里这个方法中写
然后就OK了以上就是全部了呦,欢迎大家指正, 多多交流!!!// 转载请注明原地址呦!
拾取生活点滴,重温来时之路。【图片】新手求助...关于ios适应多尺寸的屏幕和模拟器的问题【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:77,709贴子:
新手求助...关于ios适应多尺寸的屏幕和模拟器的问题收藏
如题做完了一个小游戏准备发布一下,谁知最后导出的时候出问题了。平台是ios,用iphone5s实机检测没问题,想测试其他设备但苦于不是土豪手头没有只能用xcode的模拟器,于是在模拟器上就变成下面图的这个样子偏到一边去了这张图是模拟iphone5s的,ipad和iphone6也一样效果而且在unity中显示也正常还有个细节就是,刚打开模拟器的时候unity的图标显示正常,然后过一阵就偏到左边了unity上各种版本都显示正常:iphone5s实机也正常:求助各位大神!!!!谢谢!!!T T
达内unity3d培训全程&实战教学&,unity3d金牌讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
你的模拟器横制了吧
游戏还是日文的
问下 你是xcode是什么版本 unity是什么版本-------小贴士:TankWar 我的独立游戏作品 隶属于 mmotps类型的端游/手游/页游的坦克战欢迎到tankwar百度贴吧
登录百度帐号推荐应用主题 : Unity 3d和iOS交互的问题
级别: 侠客
UID: 140721
可可豆: 1605 CB
威望: 983 点
在线时间: 741(时)
发自: Web Page
来源于&&分类
Unity 3d和iOS交互的问题&&&
Unity 3d+iOS,AR功能的交互和相互之间的通信,3个Errors,提示信息如下:Undefined symbols for architecture armv7:&&&__PressButton1&, referenced from:&&&&&&_SDK__PressButton1_m in Bulk_Assembly-CSharp_0.o&&&& (maybe you meant: _SDK__PressButton1_m)&&&__PressButton0&, referenced from:&&&&&&_SDK__PressButton0_m in Bulk_Assembly-CSharp_0.o&&&& (maybe you meant: _SDK__PressButton0_m)ld: symbol(s) not found for architecture armv7clang: error: linker command failed with exit code 1 (use -v to see invocation)原因:Unity调用Xcode封装的函数,声明时需要用extern &C&;可以在UnityAppController.mm中写如下代码:extern &C& void _PressButton0(char str[]){&&&&NSString * yy = [NSString stringWithCString:str encoding:NSUTF8StringEncoding];&&&&NSLog(@&%@&,yy);&&&&UIAlertView *alert = [[UIAlertView alloc] init];&&&&[alert setTitle:yy];&&&&[alert setMessage:@&你打开了第一个视图&];&&&&[alert addButtonWithTitle:@&确定&];&&&&[alert&&show];}extern &C& void _PressButton1(char str1[]){&&&&NSString * yy = [NSString stringWithCString:str1 encoding:NSUTF8StringEncoding];&&&&NSLog(@&%@&,yy);&&&&UIAlertView *alert = [[UIAlertView alloc] init];&&&&[alert setTitle:yy];&&&&[alert setMessage:@&点击了第二个按钮&];&&&&[alert addButtonWithTitle:@&确定&];&&&&[alert&&show];}在C#中定义的函数为:private static extern void _PressButton0 (string str);private static extern void _PressButton1 (string str1);具体详见链接:
级别: 圣骑士
UID: 595660
可可豆: 1330 CB
威望: 1006 点
在线时间: 1094(时)
发自: Web Page
&& 这东西以前玩过&&Unity弄个室内第一人称行走&&切换视角&&(就是看看家居)Unity里面弄好了,也试过没问题了&&扔到Xcode里面&&刚体碰撞检测失效了 Unity里面能被墙挡住的 导入Xcode就变成穿墙了 反正感觉坑特别多&&&& 再也不想弄了
级别: 侠客
UID: 140721
可可豆: 1605 CB
威望: 983 点
在线时间: 741(时)
发自: Web Page
回 1楼(雪夜风暴) 的帖子
听说iOS系统以后会推出3D的模块,这样的话,用系统原生的,肯定比Unity这么导来导去效果要好很多的。
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版关于IOS屏幕的旋转问题 - CSDN博客
关于IOS屏幕的旋转问题
处理IPhone屏幕的旋转是我们经常遇到的,当你做一个应用既然满足竖屏又要满足横屏,这就要求我们会处理屏幕旋转的问题!
方法一:自动布局
1.将项目中界面的四种手持方式都点上;
2.取消Use A
3.选择界面中某个控件然后到属性工具栏中去找到AutoSizing功能,勾选对应的绝对定位的线条
4.重写可以旋转的方法
-(BOOL)shouldAutorotate
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskA
方法二:手动布局一(通过代码改view种控件的坐标)
1.重写可以旋转的方法
-(BOOL)shouldAutorotate
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskA
2.勾选上项目中支持的四种手持类型
3.取消Use Autolayout
4.代码实现:
//每当屏幕旋转的时候都会触发一个
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
//如果是是横屏状态
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft )
self.l1.frame = CGRectMake(20, 25, 110, 110);
self.l2.frame = CGRectMake(162, 25, 110, 110);
self.l3.frame = CGRectMake(304, 25, 110, 110);
self.r1.frame = CGRectMake(20, 178, 110, 110);
self.r2.frame = CGRectMake(162, 178, 110, 110);
self.r3.frame = CGRectMake(304, 178, 110, 110);}
方法三:手动布局二(在xib中新建一个支持横屏的view通过双view切换实现)
1.在xib文件中拖一个view控件,选择Orientation属性为横屏
2.布局好界面
3.将横纵view分别在controller.h文件中创建对应的属性,命名为
@property (retain,
nonatomic) IBOutlet UIView *landspaceV
@property (retain,
nonatomic) IBOutlet UIView *portatiorV
4.代码实现
宏定义实现角度转弧度
#define degreesToRadia(x) (M_PI * (x) / 180)//参数要加括号 ,尤其是参数附近特别要加括号
-(BOOL)shouldAutorotate
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskA
//每当屏幕旋转的时候都会触发一个
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
//如果是是横屏状态
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft )
self.l1.frame = CGRectMake(20, 25, 110, 110);
self.l2.frame = CGRectMake(162, 25, 110, 110);
self.l3.frame = CGRectMake(304, 25, 110, 110);
self.r1.frame = CGRectMake(20, 178, 110, 110);
self.r2.frame = CGRectMake(162, 178, 110, 110);
self.r3.frame = CGRectMake(304, 178, 110, 110);
self.view = self.landspaceV
//self.view.transform = CGAffineTransformI
self.view.transform = CGAffineTransformMakeRotation(degreesToRadia(270));
self.view.bounds = CGRectMake(0, 0, 480, 300);
else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
self.l1.frame = CGRectMake(37, 20, 110, 110);
self.l2.frame = CGRectMake(37, 162, 110, 110);
self.l3.frame = CGRectMake(37, 304, 110, 110);
self.r1.frame = CGRectMake(190, 20, 110, 110);
self.r2.frame = CGRectMake(190, 162, 110, 110);
self.r3.frame = CGRectMake(190, 304, 110, 110);
self.view = self.landspaceV
//self.view.transform = CGAffineTransformI
self.view.transform = CGAffineTransformMakeRotation(degreesToRadia(90));
self.view.bounds = CGRectMake(0, 0, 480, 300);
else if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
self.view = self.portatiorV
self.view.transform = CGAffineTransformI
self.view.bounds = CGRectMake(0, 0, 320, 460);
else if(toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
self.view = self.portatiorV
//self.view = self.landspaceV
//self.view.transform = CGAffineTransformI
self.view.transform = CGAffineTransformMakeRotation(degreesToRadia(180));
self.view.bounds = CGRectMake(0, 0, 320, 460);
模拟屏幕旋转
commond + 方向键
本文已收录于以下专栏:
相关文章推荐
1、两个Orientation1.1设备的物理方向(UIDeviceOrientation) typedef NS_ENUM(NSInteger, UIDeviceOrientation) {
猫猫分享,必须精品原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u一:效果二:项目代码这个Demo用的几个控制器分别画了不通的xib...
在开发中,有时整个项目不支持横屏,但是在某个页面的时候(比如打开地图)我们需要做一些调整。首先,在iOS的UI控件中有一个transform的属性,这个属性就能帮我解决问题。
比如我们双击某个页面,...
如果希望所有界面不可以xuan zhuan
iOS 6的rotation改变了很多。先来看看官方的描述  //ios-6-beta-4-change-log-now-available/
...
在iOS6下shouldAutorotateToInterfaceOrientation被弃用,现在iOS6下有三个新方法处理屏幕旋转:
// 是否支持屏幕旋转
- (BOOL)shouldAu...
iOS8之后的屏幕旋转和iOS6,7有很大不同,项目中自己之前遇到过这样的需求,从A界面呈现B界面,如果A横屏则呈现出的B也为横屏,如果A竖屏则呈现出的B也为竖屏,实现代码如下:
//当前屏幕高...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 unity原生技术 的文章

 

随机推荐