Unity调用原生(iOS, Android)方法
2015-09-09 22:11
615 查看
Unity调用原生程序方法,定义接口(doTestSelector),写在Unity的C#代码中,在需要调用iOS或Android中的doTestSelector方法时,触发doTest() :
public void backToUnity () {
// Do somthing...
}
}
原生程序对doTestSelector接口的实现,例如iOS,实现写在Unity导出的Xcode项目UnityAppController.mm中:
因为需求限制,所以仍然以Objective-C开发,打开原生ViewController
关闭原生程序,回到Unity,同样以iOS为例:
using UnityEngine; using System.Collections; using System.Runtime.InteropServices; public class TestScript : MonoBehaviour { // This tells unity to look up the function FooPluginFunction // inside the static binary [DllImport ("__Internal")] private static extern float doTestSelector (string info); void doTest () { #if UNITY_ANDROID using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { using( AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity")) { jo.Call("doTestSelector", "my info"); } } #endif #if UNITY_IPHONE doTestSelector("my info"); #endif }
public void backToUnity () {
// Do somthing...
}
}
原生程序对doTestSelector接口的实现,例如iOS,实现写在Unity导出的Xcode项目UnityAppController.mm中:
因为需求限制,所以仍然以Objective-C开发,打开原生ViewController
extern "C" float doTestSelector(const char* info) { YourViewController *vc = [[YourViewController alloc] initWithNibName:@"yourViewControllerName" bundle:nil]; [[UnityGetMainWindow() rootViewController] presentViewController:vc animated:YES completion:nil]; return 0.0f; }
关闭原生程序,回到Unity,同样以iOS为例:
- (IBAction)OnClickBack:(id)sender { [self dismissViewControllerAnimated:YES completion:nil]; UnitySendMessage("TestScriptGameObject", [@"backToUnity" UTF8String], [@"" UTF8String]); }
相关文章推荐
- Unity代码混淆方案
- unity实现简单的摄像机切换
- unity之Post,Get请求
- 在Unity3D中控制动画播放
- unity之协程
- unity之Json
- unity之XML
- Unity Attribute 总结
- 【Unity3D】夏日大作战Jumper~
- 【Unity3D】夏日大作战Jumper~
- Unity3D 学习笔记
- Unity3D开发之Unity跟IOS交互过程
- Auto Create Editable Copy Font(Unity3D开发之二十二)
- Auto Create Editable Copy Font(Unity3D开发之二十二)
- unity杂项 unity分辨率问题 分辨率突变
- Unity游戏暂停(Update与FixedUpdate区别)
- Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
- Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
- Unity3D之C#学习
- 粒子系统