分享

Unity3d与iOS交互开发

 3dC 2014-11-13
//  MyIOSSdk.m
#import "MyIOSSdk.h"
//这里引用SDK的头文件
#import "SDKPlatform.h"
#if defined(__cplusplus)
extern "C"{
#endif
    extern void UnitySendMessage(const char *, const char *, const char *);
    extern NSString* _CreateNSString (const char* string);
#if defined(__cplusplus)
}
#endif
//*****************************************************************************
@implementation MyIOSSdk
//**********************
//message tools
+ (void)sendU3dMessage:(NSString *)messageName param:(NSDictionary *)dict
{
    NSString *param = @"";
    if ( nil != dict ) {
        for (NSString *key in dict)
        {
            if ([param length] == 0)
            {
                param = [param stringByAppendingFormat:@"%@=%@", key, [dict valueForKey:key]];
            }
            else
            {
                param = [param stringByAppendingFormat:@"&%@=%@", key, [dict valueForKey:key]];
            }
        }
    }
    UnitySendMessage("SDK_Object", [messageName UTF8String], [param UTF8String]);
}
//**********************
//SDK fun
//初始化SDK
-(void)SDKInit
{
    SDKcfg *cfg = [[[SDKcfg alloc] init] autorelease];
    cfg.appid =123456;
    cfg.appKey =@"aoaoaoaoaoaoaoaoaoaoaoaoaaoaoaoaoaoaoao";
    cfg.orientation = UIDeviceOrientationLandscapeLeft;
    //调用SDK的初始化函数
    [[SDKPlatform defaultPlatform] SDKInit:cfg];
    //添加回调监听
    [[SDKPlatform defaultPlatform] addObserver:self selector:@selector(SNSInitResult:) name:(NSString *)kInitNotification object:nil];
}
//获取用户ID
-(NSString*)SDKGetUserID
{
    [[SDKPlatform defaultPlatform] SDKGetUserID];
}
//**********************
//call back fun
//初始化更新回调
- (void)SNSInitResult:(NSNotification *)notify
{
    [MyIOSSdk sendU3dMessage:@"SDKMsgInit" param:nil];
}
@end
//*****************************************************************************
#if defined(__cplusplus)
extern "C"{
#endif
     
    //字符串转化的工具函数
     
    NSString* _CreateNSString (const char* string)
    {
        if (string)
            return [NSString stringWithUTF8String: string];
        else
            return [NSString stringWithUTF8String: ""];
    }
     
    char* _MakeStringCopy( const char* string)
    {
        if (NULL == string) {
            return NULL;
        }
        char* res = (char*)malloc(strlen(string)+1);
        strcpy(res, string);
        return res;
    }
     
    static MyIOSSdk *mySDK;
    //供u3d调用的c函数
   
    void _PlatformInit()
    {
        if(mySDK==NULL)
        {
            mySDK = [[MyIOSSdk alloc]init];
        }
        [lsSDK SDKInit];
    }
     
    //注意这个函数是返回字符串
    const char* _PlatformGetUin()
    {
        if(lsSDK==NULL)
        {
            lsSDK = [[MyIOSSdk alloc]init];
        }
        return _MakeStringCopy([[lsSDK SDKGetUserID] UTF8String]);
    }
     
#if defined(__cplusplus)
}
#endif

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多