Unity与iOS原生代码之间的相互调用

1、Unity调用iOS:

1.1、在Unity C#中:

[ DllImport( "__Internal" )]
private static extern int _showSelectTitleDialog ( string title, string msg);

1.2、在Xcode Objective-C中:

extern "C" {
    int _showSelectTitleDialog(const char *title, const char *msg) {
        return [[UNDialogManager sharedManager]
                showSelectDialog:[NSString stringWithUTF8String:title]
                message:[NSString stringWithUTF8String:msg]];
    }
}

2、在iOS中调用Unity:

2.1、在Xcode Objective-C中:

UnitySendMessage("DialogManager", "OnCancel", tag.UTF8String);

2.2、在Unity C#中:

public void OnCancel ( string idStr)
{
	  int id = int.Parse (idStr);
	  if (_delegates.ContainsKey (id)) {
		  _delegates [id] (-1);
		  _delegates.Remove (id);
		  Debug.LogWarning ( "===OnCancel idStr1:" + idStr);
	 } else {
		  Debug.LogWarning ( "===OnCancel idStr2:" + idStr);
	 }
}

参考资料:

http://docs.unity3d.com/Manual/PluginsForIOS.html

https://github.com/asus4/UnityNativeDialogPlugin

http://blog.csdn.net/wwmusic/article/details/21008289

原文地址:https://www.cnblogs.com/quansir/p/6383116.html