IOS开发2-使用Xcode 更改工程Unity界面为IOS原生界面
1.在如图Xcode图标那里右键选择New Group创建文件夹 (起名为NvtiveCode)
2.Command+N创建一个类(这里是创建ios原生界面)选择Cocoa Touch Class 然后Next
3.填写Class(类名) Subclass of 继承更改为UnityAppController 下一步
4.选择位置(直接下一步)
5.系统会生成两个文件 一个.h文件 一个 .m文件
6.剪贴.h文件里面的代码 粘贴到.m文件 如图2位置(这个操作过程中一定不要编译)
这个类是要放回Unity的 在这里写是因为有提示
7.删除.m文件里面的.h的引入代码 如图选中部分
8.修改.m文件名为.mm 删除.h文件
9.以下步骤开始更改它的启动界面
10.创建控制器 方法
11.创建控制器属性
-----------------------------------------------------
目前该类 代码
#import "UnityAppController.h"
@interface MyAppCtrl : UnityAppController
// 创建一个属性 和C# public 创建属性类似
@property(nonatomic,strong)UINavigationController *navc;
// 实现一个方法
-(void)createUI;// 这个方法名是固定的不要随意更改
@end
@implementation MyAppCtrl
// 实现方法
-(void)createUI
{
// 根视图控制器
// 在OC里面是用 alloc 和 init 创建对象
_rootController=[[UIViewController alloc]init];
// UIScreen mainScreen 屏幕的宽度
_rootView=[[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];
}
@end
12.创建一个新的类(该类为启动时要显示的类)
类名为 MyMainViewController
继承修改为 UIViewController
13. 返回MyAppCtrl.mm文件在里面引用MyMainViewController.h
#import "MyMainViewController.h"
14.在 MyAppCtrl.mm 里面调用主控制器
15.为了测试方便 设置ios原生界面为红色
回到MyMainViewController.m类添加以下代码 如图
self.view.backgroundColor=[UIColor redColor];
16.把MyAppCtrl.mm 文件拖到unity工程***意文件存放目录,并删除xcode里的
MyAppCtrl.mm
17.command + B 编译,不要重新导,只编译ARCKRAppController 会自动编译到xcode项目下
20. .mm类全部代码
//
// MyAppCtrl.m
// Unity-iPhone
//
// Created by nongxiaodi on 2018/2/14.
//
#import "UnityAppController.h"
#import "MyMainViewController.h"
@interface MyAppCtrl : UnityAppController
// 创建一个属性 和C# public 创建属性类似
@property(nonatomic,strong)UINavigationController *navc;
// 实现一个方法
-(void)createUI;// 这个方法名是固定的不要随意更改
@end
@implementation MyAppCtrl
// 实现方法
-(void)createUI
{
// 根视图控制器
// 在OC里面是用 alloc 和 init 创建对象
_rootController=[[UIViewController alloc]init];
// UIScreen mainScreen 屏幕的宽度
_rootView=[[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];
// 显示的控制器
MyMainViewController *VC=[[MyMainViewController alloc] init];
self.navc=[[UINavigationController alloc ]initWithRootViewController:VC];
[_rootView addSubview:self.navc.view];
[_window bringSubviewToFront:_rootView];
[_window makeKeyWindow];
}
@end
IMPL_APP_CONTROLLER_SUBCLASS(MyAppCtrl)// 固定写法 () 里面该类的名称