unity3D与ios互相通信

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_23925499/article/details/47453491

本人第一次写博客,不对之处。。还望多多指教!


先来说unity调用ios

首先你要有个mac,,mac上要装Xcode。。这个是必不可少的。

然后呢。。先在你的C#脚本里面倒包:

Using System.Runtime.InteropServices;

(好像是这么写的。。不要直接复制。。最好自己手动导一下)。


[ DllImport( "__Internal" )]

这个我也不是很清楚。。反正就是扩展那一类的貌似是调用dll的一些函数。(必写)。


private static extern int _showSelectTitleDialog ( string title, string msg);

这个是你和xcode里面交互用的那个方法。_showSelectTitleDialog ,前面的那个intxcode那边的返回值,_showSelectTitleDialog 里面的参数是你给Xcode传的参数。当然了。。你也可以不传参数。

然后在你想调用这个方法的地方去调用它。


然后build出来一个xcode项目;。。至于怎么build。。你应该会。。。


之后在mac里面打开你build出来的则个Xcode项目。


在左侧的包资源管理器中右键你的项目,有个New File...会弹出来一个对话框,选择Cocoa TouchClass,然后next起一个类的名字,底下的Subclass of建议大家选择UIView,点击finsh,然后再点击Create。


选择你创建的 xxx.m文件回车,把后缀改为.mm,因为它是C的写法,也一定要在@end后边写。。在@end后边写的时候不能用self,因为在@end之后就以为的OC的代码结束,self也不知道是啥了。

Extern “C”
{
//看到了吧。。下边的这个方法。。和你在unity里面定义的那个方法名字是一样一样的。
 	int _showSelectTitleDialog(const char *title, const char*msg)
{
return 5;
//因为是要返回值的。。我这里给它返回一个固定的数。你可以按照你的需求来返回。

}

//我举个例子。。一个UIButton。。它在OC里面显示的正常语句是:
self.view.addSubview.
//我在上面提到过。。这里是不能用self。
//所以。。要转变为下面这句话。。(下面这句话是我复制过来的。。因为太长了。。)

[[UIApplication sharedApplication].keyWindow.rootViewController.view addSubview:btn];

}


然后OC语言的写法什么的自行补脑。。。。。。

Ok.。。Unity调用ios的告一段落。。如果有啥错的。。联系我。。告诉我。。



展开阅读全文

没有更多推荐了,返回首页