2012-12-13 67 views

回答

4

您可以使用

UnitySendMessage("GameObjectName1", "MethodName1", "Message to send"); 

在您填寫將收到此消息,並在消息名稱的遊戲對象的名字。

一旦從本地代碼收到此消息,您就可以實現您自己的委託/事件。 UnitySendMessage的限制是當它到達Unity代碼時,它在本機代碼中調用此代碼後始終爲1幀。它只能以字符串作爲參數。但大多數時候這並不是什麼大問題。

1

原來,你可以創建一個回調方法,它可以讓你做任何你想做的事情。

下面是一個示例視頻,顯示它正在爲OSX完成,但C++代碼是跨平臺的。

這傢伙一直在爲所有的操作系​​統做插件上的視頻,但是目前爲止,mac是目前最酷的,因爲它給你指向C#代碼的函數指針。

http://www.youtube.com/watch?v=Q2dDK0ulDYY

0

團結通用插件的iOS允許混合C#與目標C http://goo.gl/XDrQFh

統一C#

var callbackClass = AKiOSMagic.CreateClass("MyCallbackClass", "NSObject"); 
callbackClass.AddMethod("methodWithArg:anotherArg:", (args) 
{ 
    // do something... 
    // args.GetObject(0); 
    // args.GetObject(1); 
}); 
callbackClass.RegisterClass(); 

目標C

[[NSClassFromString(@"MyCallbackClass") new] methodWithArg:@"arg1" anotherArg:@"arg2"]