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