Unity startup orientation handling issue in iOS8 横屏 bug

笔者的项目一直在Unity 4.3下开发,最近,在升级到xcode6以后,在iOS8设备上测试发现一个有趣的现象:

原本运行正常的横屏游戏,到了iOS8设备上,变成了竖屏运行,并且仍然是横屏的内容,那UI是一个惨不忍睹。Unity和xcode里的Device Orientation设置一直为“Lanscape Left”和"Lanscape Right"

目前Unity官方已在Release 4.5.3p1版本解决了该问题,对于4.5版本的童鞋非常方便,直接打上最新Patch就好

可惜的是,对于Unity 4.3版本,目前仍然没有官方解决方案。

在论坛上几番搜索、尝试,最后我们采取了这样的临时解决方案:

修改iPhone_OrientationSupport.mm文件,将第10、11行的以下两句 -

case landscapeLeft:         return CGAffineTransformMakeRotation(M_PI_2);
case landscapeRight:        return CGAffineTransformMakeRotation(-M_PI_2);

替换成 -

case landscapeLeft:         return CGAffineTransformIdentity;
case landscapeRight:        return CGAffineTransformIdentity;

问题暂时得以解决。

时间: 2024-10-18 04:00:49

Unity startup orientation handling issue in iOS8 横屏 bug的相关文章

xcode6+ios8 横屏下启动画面不显示问题修改

本文转载自汉果博客 » xcode6+ios8 横屏下启动画面不显示问题修改 最近我做游戏 发现xcode6+ios8 横屏下启动画面不显示   显示黑屏 . 设置横屏后 设置catalog 添加使用的图片.在iphone6plus 下是横屏 显示启动画面  在 其他iphone设备是不显示启动画面的 .ipad也显示启动画面.只有iphone有问题 . 最后有人指导,我记录下 . 1.如果你的游戏支持横屏 切iphone ipad 都支持 则启动图片你要准备 横竖 所有尺寸的图片.2.在inf

移动端H5之动态设置html的font-size的横屏BUG修复以及横屏提示 by FungLeo

移动端H5之动态设置html的font-size的横屏BUG修复以及横屏提示 by FungLeo 前言 在上一篇 移动端之在不同尺寸大小的手机上展示同一效果解决方案 中,我们考虑的只是默认竖屏的情况.很显然,如果用户手机允许屏幕旋转,那么在横屏的情况下,页面就变得很恶心了. 因此我们需要进行一个处理,来判断浏览器是否是横屏,在横屏的情况下,要使用高度值来计算html的font-size. 代码 因为项目引入了jquery,因此下面的代码全部是jquery语法. function htmlFon

iOS8 UILabel BUG ? text不显示

以前的一个项目,今天发现有个地方在iOS8上面不显示文本,用的是UILabel 于是调试了一下代码,大致发现了原因: 当在一个UILabel上添加同样是UILabel的subView的时候,如果给父Label设置背景颜色(setBackgroundColor:)但没有设置Text(setText:),那么子Label设置的text就显示不了,真是一个奇怪的问题. 下面有3种解决办法: 1.将父Label改成UIView 2.不设置父Lable的背景颜色 3.设置父Label的Text( [sup

ios8 横屏状态栏不显示解决方法

解决方法:在plist文件中将 View controller-based status bar appearance 设置为NO  在application:didFinishLaunchingWithOptions:中添加下面代码[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; [[UIApplication sharedApplication]

NGUI在Unity中因更改窗口区域而出现Bug的处理

最近,在Unity5.0.1中遇到了NGUI中的一些BUG问题,比如,你用NGUI开发进行拖拽Sprite 的功能,或者在一些Lable上使用了dynamic font, 然后把它编译成可在PC上运行的exe可执行 文件 (记得 Player Settings的Resolution中勾上Resizealbe Window),  当它运行时,这时你就 会发现问题来了,比如打开时是720*480大小的窗口区域,然后你通过拖拽窗口边界,或者直接 进行窗口最大化放大,这时你会发现UI Root中的Spr

运用Unity实现依赖注入[结合简单三层实例]

一:理论部分 依赖注入:这是 Ioc 模式的一种特殊情况,是一种基于改变对象的行为而不改变类的内部的接口编程技术.开发人员编写实现接口的类代码,并基于接口或者对象类型使用容器注入依赖 的对象实例到类中.用于注入对象实例的技术是接口注入.构造函数注入.属性(设置器)注入和方法调用注入. Unity是微软企业库一部分,是一个轻量级.可扩展的依赖注入容器,支持构造函数.属性和方法调用注入: 针对依赖注入以前我也写过一篇结合三层的文章:spring.net 结合简单三层实例 二:实例简介 1:本实例将通

HTML5中判断横屏竖屏

HTML5中判断横屏竖屏 在移动端中我们经常碰到横屏竖屏的问题,那么我们应该如何去判断或者针对横屏.竖屏来写不同的代码呢. 这里有两种方法: 一:CSS判断横屏竖屏 写在同一个CSS中 1 2 3 4 5 6 @media screen and (orientation: portrait) {   /*竖屏 css*/ } @media screen and (orientation: landscape) {   /*横屏 css*/ } 分开写在2个CSS中 竖屏 1 <link rel=

iOS 8 强制横屏

最近用到视频播放功能:(Vitamio, 注:在Build Setting 里面的 Other Link Flag 添加-all_load) iOS 8的屏幕旋转比较坑, 使用以下代码可以强制旋转 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation == UIInterfaceOrientationLand

Unity IOC/DI使用

一.IOC介绍 IOC(Inversion of Control),中文译为控制反转,又称为“依赖注入”(DI =Dependence Injection) IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些联系在一起. 其原理是基于OO设计原则的The Hollywood Principle:Don't call us, we'll call you(别找我,我会来找你的).也就是说,所有的组件都是