• Unity3D与iOS的交互设计<ViewController 的跳转>


    原地址:http://www.aichengxu.com/article/%CF%B5%CD%B3%D3%C5%BB%AF/28797_12.html

    Unity3D与iOS的交互设计<ViewController 的跳转>,有需要的朋友可以参考下。

    
    

    这也是第一次做这样的需求,也是公司的需要呀。做出这个真是一言难尽呀。。。

    小弟主要不是搞iOS开发的,一直以来都是开发Android开发,只是昨天被老大叫过去做一下iOS的二维码扫描。有点iOS基础的我,只好到处搜索了。然后,二维码扫描做好了,遇到了一个难题,就是将做好的二维码扫描放到Unity3D上去。这个好难呀。。。

    刚开始吧,一直找不打rootController,尝试了多次后,只好放弃了。最后自己继承了一个View,仿制AlertDialog填充全屏,这样算是草草了事。

    具体操作如下:

    1.这是Unity3D提供的一个按钮点击方法 <这个方法是根据Unity3D工程师大哥提供的,自己在 UnityAPPController类中手动添加的,至于为什么是这个,我也不是很清楚,反正这个方法,Unity3D类中会调用,并执行下去>

    extern "C" void setupCamera(){
        //这是创建的一个视图控制器对象,当然,是为了调用它里面的stepC方法
        UnityAppController *uni=[[UnityAppController alloc]init];
        //这是需要调用的方法
        [uni stepC];
    }

    2.在UnityAppController中实现stepC方法

    - (void)stepC{
        //创建需要弹出的视图
        self.alert = [[MLCarAlert alloc]init];
        // 自定义高度
        self.alert.height = [UIScreen mainScreen].bounds.size.height;
        [self initNav];
        // 显示Alert
        [self.alert show];  
    
    
    这样的话,就实现了视图的跳转,当然,有一个问题就是,自定义的dialog没有获取到焦点,这让我很头痛。还好按钮只有一个,所以,在创建dialog的时候,我再定义了一个导航栏,通过导航栏添加按钮,使用这个按钮就解决了。<当然,如果布局控件是在UnityAppController中添加的,就不会造成失去焦点这个问题,这个问题后来我也没有解决,因为事情太多了。忙不过来。>
    
    
    今天的时候,老大又让我做一个界面,这个界面控件就很多了。所以,上面那种方法就不行了。最后怎么办呢?
    还好,找到了这样的一个方法。
    
    
    不停的查找,不停的研究,不停的搜索,后面终于在 iPhone_View.mm 中找到了我需要的rootViewController,如下:
    UIViewController *UnityGetGLViewController()<span style="font-family: Arial, Helvetica, sans-serif;">{</span>
    <span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">	</span> return GetAppController().rootViewController;</span>
    <span style="font-family: Arial, Helvetica, sans-serif;"> }</span>
    <span style="font-family:Arial, Helvetica, sans-serif;">这样,就得到了Unity3D的rootViewController</span>
    <span style="font-family:Arial, Helvetica, sans-serif;">
    </span>
    <span style="font-family:Arial, Helvetica, sans-serif;">然后就好办啦,将自己的ViewController copy 到工程中,</span>
    <span style="font-family:Arial, Helvetica, sans-serif;">创建:TableFormViewController *table=[[TableFormViewController alloc]init];
    </span>
    <span style="font-family:Arial, Helvetica, sans-serif;">跳转:[UnityGetGLViewController() presentViewController:table animated:YES completion:nil];</span>

    这样的话,就可以进自己的ViewController中操作啦。。

    如果,有高手路过,还请指点指点呀。

  • 相关阅读:
    Linq的一些常见Demo
    有一名员工发现日历已经7天没有翻了,于是他连着翻了7页,7天的总和刚好是138,问这一天是几号?
    20块钱,1块钱1瓶,两个空瓶子可以换一瓶,问最多可以喝几瓶?
    【转】Java编程之字符集问题研究
    Reset / Validate Buffer
    Article Master Data Deviation
    STAD Parameters
    Linux11.2 MySQL常用命令
    Linux11.1 设置更改Mysql的root密码及连接mysql
    Linux5.10 告警系统
  • 原文地址:https://www.cnblogs.com/123ing/p/3822987.html
Copyright © 2020-2023  润新知