工作生活Unity

关于Unity3D与iOS交互

2019-07-02  本文已影响0人  Allonelies

本文主要介绍Unity3D与iOS交互,使用的语言是C#和OC。

主要步骤:

第一部分:Unity3D

1、创建Unity项目,拖2个控件 TestTextTestButton 到场景中。

    (TestText 用于iOS回调的数据展示,TestButton 用于响应Unity3D请求按钮。)

     创建一个脚本 ButtonScript.cs,并且绑定 TestButton 控件。

2、在 Assets 目录下创建子目录 Plugins,又继续创建子目录 iOS。(iOS目录 主要用于管理后续Unity3D与iOS交互的接口文件夹)

    创建接口文件 IOS_Bridge.cs。 (.cs文件 用于Unity3D请求接口)

    创建 Interaction.h 和 Interaction.mm 文件。(.h和.mm文件 用于iOS接口交互)

3、编辑IOS_Bridge.cs文件接口。

    检查Runtime命名空间。 -->>    using System.Runtime.InteropServices;     

    定义C语言接口 Bridge_TestAction()。(注:接口前要加上  [DllImport("__Internal")]

    开放交互接口 Bridge_TestAction(),如果 platform 是 IPhonePlayer,则调用上一步定义好的C语言接口。

   (对应参数基本以C语言规范格式)

4、添加 TestButton控件 的点击事件。

    检查使用UI命名空间。 -->>    using UnityEngine.UI;      

    添加 TestButton 点击事件。事件为 OnClickTestButton。

    在 OnClickTestButton 事件中,调用 IOS_Bridge.cs 文件的接口 BridgeTestAction,并传入对用参数。

    此外,

    定义一个接收接口CallBack(),用于接收 iOS回调事件。

5、导出Xcode项目。

    选择 File ---- Build Settings ---- iOS平台 ---- Player Settings ---- 选择Other Settings。

    在 TargetSDK 中,若要用模拟器运行,则选择 Simulator SDK,否则选择 Device SDK。

    最后 Build 到对应文件夹

第二部分:iOS

1、打开Xcode项目。打开Libraries ---- plugins ---- iOS ---- Interaction.h文件。

    根据前面步骤3,我们通过 Dll 导出 Bridge_TestAction() 接口,它是标准C。

2、实现 Bridge_TestAction() 接口,此时在定义的C方法中,可以直接使用OC语言进行编写。

3、使用 UnitySendMessage() 方法进行 iOS 与 Unity3D 交互。

      (注:若没有参数,不可为nil,只能用空引导"")

          备注:

        【char *data 转 NSString】

          NSString *msg = [NSString stringWithCString:data encoding:NSUTF8StringEncoding];

        【NSString 转 char *data】

          const char *data = [msg UTF8String];

        附加Demo

        链接: https://pan.baidu.com/s/1fzIm80ORf52JAmeypNio3g 提取码: 9bcw 

     【初来乍到,请各位大佬多多指教!!!】

上一篇 下一篇

猜你喜欢

热点阅读