[Unity]unity与调用objective-c

  • 定义oc头文件
#ifndef XXSdk_h//头文件名
#define XXSdk_h
#import <Foundation/Foundation.h>
    @interface XXSdk :NSObject
    +(void)initSdk:(NSString*)string;//定义方法
    @end
#endif /* XXSdk_h */
  • 编写oc .mm文件
//
//  XXSdk.mm
//  XXSdkDemo
//  Copyright © 2017年 Tencent. All rights reserved.
//
#import "XXSdk.h"
@implementation XXSdk
+(void)initSdk:(NSString*)string{
//TODO   
}
@end
extern "C"{
    //字符串转化的工具函数
    NSString* _CreateNSString (const char* string)
    {
        if (string)
            return [NSString stringWithUTF8String: string];
        else
            return [NSString stringWithUTF8String: ""];
    }
    void _InitSdk(const char* string){
        NSString* appId = _CreateNSString(string);
        [BuglyIosSdk iniTSdk:appId];
    }
}

将编写好的代码导入到Plugins/ios目录下(自动导出到Xcode)

  • 编写C#代码
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;

public class XXSdk{
    public static void InitSdk(string appId){
        #if UNITY_IOS && !UNITY_EDITOR
        _InitSdk(appId);
        #endif
    }

    #if UNITY_IOS && !UNITY_EDITOR
    [DllImport("__Internal")]
    private  static extern void _InitSdk(string appId);
    #endif
}

完成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容