Unity调用WebService的方法,支持IL2CPP
正题开始 使用 http://easywsdl.com/WsdlGenerator 这个玩意就可以很容易生成各个客户端需要的代码,目前来说我们只需要安卓和iOS就够了。需要 翻-墙 才能进去,我是用的Goggle账号登录的,总之我生成的是iOS的,生成的是OC语言,其实OC很容易和Unity交互 static char resultStr[1024]; extern "C" { ? ? const char* LoginWeb(const char* s_user, ?? ? ? ? ? ? ? ? ? ? ? ? const char* s_pw); } const char* LoginWeb(const char* s_user, ? ? ? ? ? ? ? const char* s_pw){ ? ? memset(resultStr,0,sizeof(resultStr)); ? ? NSString* user=[NSString stringWithUTF8String:s_user]; ? ? NSString* pw=[NSString stringWithUTF8String:s_pw]; ? ? NSString* url=@"http://你的地址WS/WSAccount.asmx"; ?? ? ? ? NSError* error=nil; ? ? MHKWSAccountSoap12* service = [[MHKWSAccountSoap12 alloc] initWithUrl: url ]; ? ? NSString* res = [service Login:user userPass:pw? __error: &error]; ? ? NSLog(@"LoginWeb user:%@",user); ? ? if(error!=nil) ? ? { ? ? ? ? //error occured ? ? ? ? NSLog(@"LoginWeb error:%@",error); ? ? }else{ ? ? ? ? if(res!=nil){ ? ? ? ? ? ? const char* s = [res UTF8String]; ? ? ? ? ? ? strcpy(resultStr,s); ? ? ? ? } ? ? } ? ? return resultStr; } Unity里使用 ? ? ? ??[DllImport(“__Internal”,?CharSet?=?CharSet.Auto)]????????public?static?extern?IntPtr?LoginWeb(string?s_user,?string?s_pw); 具体的函数是根据你的服务来生成,生成的包里面也有文档,很方便,安卓也是同理,而且生成的包里就有jar包,可以直接使用 以上代码可能会有内存泄漏,因为我不是很懂OC代码 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |