unity3d 屏幕适配 iPhone X 解决方案
2017-11-09 14:17
525 查看
添加获取手机型号方法
在unity导出的xcode工程里面 查找路径 Unity-iPhone/Classes/Unity/DisplayManager.mm修改方法如下
说明一下 以上是unity4.7 的修改方法 不同版本的unity 修改的地方可能不一样
#import <sys/utsname.h> + (NSString*)getDeviceVersion { struct utsname systemInfo; uname(&systemInfo); NSString *deviceVersion = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; return deviceVersion; }
在unity导出的xcode工程里面 查找路径 Unity-iPhone/Classes/Unity/DisplayManager.mm修改方法如下
- (void)updateScreenSize { CGSize layerSize = _view.layer.bounds.size; NSString *deviceVersion = [这里调用上面的获取型号方法]; if ([deviceVersion isEqualToString:@"iPhone10,3"] || [deviceVersion isEqualToString:@"iPhone10,6"]) { layerSize = CGSizeMake(744, 375); } CGFloat scale = UnityScreenScaleFactor(_screen); _screenSize = CGSizeMake(layerSize.width * scale, layerSize.height * scale); } - (id)createView:(BOOL)useForRendering showRightAway:(BOOL)showRightAway; { if(_view == nil) { NSString *deviceVersion = [这里调用上面的获取型号方法]; if ([deviceVersion isEqualToString:@"iPhone10,3"] || [deviceVersion isEqualToString:@"iPhone10,6"]) { CGRect bounds = CGRectMake(34, 0, 744, 375); _window = [[UIWindow alloc] initWithFrame:bounds]; } else { _window = [[UIWindow alloc] initWithFrame: _screen.bounds]; } _window.screen = _screen; if(_screen == [UIScreen mainScreen]) { _view = [GetAppController() initUnityView]; NSAssert([_view isKindOfClass:[UnityView class]], @"You MUST use UnityView subclass as unity view"); } else { _view = [(useForRendering ? [UnityRenderingView alloc] : [UIView alloc]) initWithFrame: _screen.bounds]; } _view.contentScaleFactor = UnityScreenScaleFactor(self.screen); [self updateScreenSize]; if(showRightAway) { [_window addSubview:_view]; [_window makeKeyAndVisible]; } } return self; }
说明一下 以上是unity4.7 的修改方法 不同版本的unity 修改的地方可能不一样
相关文章推荐
- unity3d 图集图片出现切边的解决方案 ios8的屏幕横屏解决方案 以及屏幕适配
- iPhone屏幕尺寸、分辨率及适配
- Android开发:最全面、最易懂的Android屏幕适配解决方案
- iPhone屏幕尺寸、分辨率及适配
- 获取移动端设备的屏幕信息(简单适配iphoneX)
- Android开发:最全面、最易懂的Android屏幕适配解决方案
- iPhone多尺寸屏幕适配--等比例数值计算
- iphone第十节:屏幕适配(Masonry约束)
- 小羊驼和你一起学习cocos2d-x之二(屏幕匹配、多分辨率解决方案、分辨率适配)
- iOS开发之App开发团队必须知道的 iOS 11 更新点几iPhoneX的屏幕适配
- iPhone屏幕尺寸、分辨率及适配
- iPhone屏幕投射到Mac的解决方案
- iOS:界面适配(三)--iPhone不同机型或设备不同尺寸适配(屏幕适配)和系统适配
- iPhone屏幕适配 程序启动后状态栏字体变大
- quick cocos2dx 屏幕适配采用ShowAll策略导致黑边的解决方案
- iPhone屏幕尺寸、分辨率及适配
- 简单适配3.5寸,4寸iPhone屏幕的方法
- Unity3D关于UIRoot的屏幕适配方法
- Android 屏幕适配:最全面的解决方案
- iPhone屏幕尺寸、分辨率及适配