Unity2019接入IOS SDK

前言

前段时间接入了IOS的SDK,主要参考了如下几篇博客。本篇博客重点记录踩坑。
官方文档
Unity3D 接入IOS SDK
untiy 项目接入 IOS SDK
Unity3D与iOS交互(接入原生sdk方法)
Unity项目接入IOS的Admob Native(原生视频广告) IOS SDK

下面简单介绍下Unity与IOS之间交互。

1.Unity调用IOS

Unity调用IOS需要在Xcode工程创建一个OC的中间件,头文件为.h,源文件为.m或.mm,并将它们导入Unity的Assets->Plugins->iOS文件夹下,之后就可以在Unity中代码调用了。代码如下。

创建的.h和.m文件

/// test.h
extern "C"
{
  extern void outputAppendString (char *str1, char *str2);
}
/// test.m
#import <Foundation/Foundation.h>

void outputAppendString (char *str1, char *str2)
{
  NSString *string1 = [[NSString alloc] initWithUTF8String:str1];
  NSString *string2 = [[NSString alloc] initWithUTF8String:str2];
  
  NSLog(@"###%@", [NSString stringWithFormat:@"%@ %@", string1, string2]);
}

Unity中调用代码

public class Sample : MonoBehaviour 
{
    //C#中调用的IOS方法前面要加这个特性,然后方法直接调就可以了
    [DllImport("__Internal")]
    static extern void outputAppendString (string str1, string str2);
}

2.IOS中调用Unity的方法

UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");

这里使用unityengine.dll提供的C接口UnitySendMessage,这里第1个char* 表示接受该消息的GameObject的name, 第2个表示该GameObject的脚本中接受消息的函数名,第3个表示传递的参数。
要注意没有要传的参数直接写"",这里不能写null,会crash。

Unity2019的坑

Unity在2019.3版本之后打包Xcode工程会多一个UnityFramework,这里要用Xcode创建Xworkspace并将内容集合进去,不然调不到方法。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我寄人间雪满头丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值