Unity3D-关于iphoneX适配,简约方式

这个是简单粗暴的方式,但是也有缺点。

一下代码都是在Unity2017.2.1版本测试的。

在导出的xcode工程里面,在UnityAppController.mm中,添加头文件:#import <sys/utsname.h>
该类增加获取机器型号的函数:
- (NSString*)getDeviceVersion
{
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString *deviceVersion = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
    return deviceVersion;
}
在 didFinishLaunchingWithOptions 里面找到 _window 的初始化代码,将这一行代码改为:
CGRect winSize = [UIScreen mainScreen].bounds;
    NSString *deviceVersion = [self getDeviceVersion];
    if ([deviceVersion isEqualToString:@"iPhone10,3"] || [deviceVersion isEqualToString:@"iPhone10,6"])
    {
        winSize.size.height -= 150;
        winSize.origin.y = 75;
    }
    _window = [[UIWindow alloc] initWithFrame: winSize];
数值可以根据需要去调整,这个方式只能调整 App Launch之后的尺寸,Launch的尺寸依然是全屏,比较坑爹

猜你喜欢

转载自blog.csdn.net/pz789as/article/details/80005965
今日推荐