转自:http://www.cnblogs.com/alongu3d/p/3674174.html
环境:Mac os 10.9.2 Unity 4.2.1f4 Xcode 5.0.2
Unity IOS的交互我写过一个教程,当时我用的是Unity4.0,和现在的版本不太一样了!
链接是http://www.cnblogs.com/alongu3d/p/3279277.html
1.首先在unity的脚本中定义如下
其中,CallU3D是静态方法,供unity3d调用的!
2.导出ios工程
刚才我们在unity3d中定义的方法CallIOS,在IOS的工程目录中的RegisterMonoModules.cpp中会有CallIOS()这个方法的!
如果这儿没有显示我们在unity3d中定义的方法,那么很可能是这儿写错了[DllImport("__Internal")]注意是两个下划线
大家仔细看 CallIOS()方法的上面一句注释 !TARGET_IPHONE_SIMULATOR非模拟器,必须在真机下运行,才能调用IOS中自定义写的方法!
3.实现CallIOS方法
extern "C" { //在点击unity中按钮的时候,会调用这个方法,并且弹出一个窗体 void CallIOS() { CustomViewController* myview=[[CustomViewController alloc]init]; [_mainDisplay->window addSubview:myview.view]; } }
这个方法我写在了UnityAppController.mm方法中,_mainDisplay->window是静态的,可以在这儿添加视图!
4.unity中调用ios的方法
-(IBAction)clickbutton:(id)sender { //参数1 在unity中层次列表中的物体 参数2 Cube物体上的脚本的Rot方法 参数3 是参数 UnitySendMessage("Cube", "Rot", ""); }
在点击视图上的按钮的时候,给unity发送消息,第一个参数是unity中层次视图中的物体,第二个参数是unity中层次视图中的物体所携带的脚本的
Rot方法,第三个参数是 Rot方法的参数!
5.下一篇说一下如何用ios账号发布真机并且测试!
时间: 2024-11-04 17:28:34