zoukankan      html  css  js  c++  java
  • 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中操作啦。。

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

  • 相关阅读:
    Kafka.net使用编程入门(三)
    Kafka.net使用编程入门(一)
    在linux机器上面安装anaconda和相关软件
    textrank的方法,大概懂了
    中文分词库及NLP介绍,jieba,gensim的一些介绍
    排序相关指标
    阿里NLP总监分享-NLP技术的应用与思考
    我一直跑的分类LSTM模型原来是这一个,新闻分类网络
    Vue.js@2.6.10更新内置错误处机制,Fundebug同步支持相应错误监控
    掌握 Async/Await
  • 原文地址:https://www.cnblogs.com/123ing/p/3822987.html
Copyright © 2011-2022 走看看