在UnityViewControllerBase.mm脚本添加
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
//UIEdgeInsets edgeInsets = [self.class safeAreaInset:self.view];
CGRect winSize=[UIScreen mainScreen].bounds;
if([self.class isPhoneX]){
winSize.size.width-=68;
winSize.origin.x=34;
NSLog(@"Need Change Screen Size");
}else if([self.class isPhoneXR]){
winSize.size.width-=76;
winSize.origin.x=38;
NSLog(@"Need Change Screen Size");
}else{
NSLog(@"Not Change");
}
self.view.frame = winSize;
AppController_SendUnityViewControllerNotification(kUnityViewDidLayoutSubviews);
}
+ (BOOL)isPhoneX {
BOOL iPhoneX = NO;
if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {//判断是否是手机
return iPhoneX;
}
CGRect winSize=[UIScreen mainScreen].bounds;
if (winSize.size.width == 812&&winSize.size.height==375) {
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
if (mainWindow.safeAreaInsets.bottom > 0.0) {
iPhoneX = YES;
}
}
return iPhoneX;
}
+ (BOOL)isPhoneXR {
BOOL iPhoneX = NO;
if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {//判断是否是手机
return iPhoneX;
}
CGRect winSize=[UIScreen mainScreen].bounds;
if (winSize.size.width == 896&&winSize.size.height==414) {
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
if (mainWindow.safeAreaInsets.bottom > 0.0) {
iPhoneX = YES;
}
}
return iPhoneX;
}
在UnityViewControllerBase+iOS.mm脚本修改
-(BOOL)prefersHomeIndicatorAutoHidden
{
return YES;
}