在Unity中,Wen可以通過導入Objective-C的函數作爲extern函數從C#中調用Objective-C代碼。 但是如何從Objective-C調用C#腳本代碼?如何從Unity中的Objective-C代碼調用c#腳本?
2
A
回答
2
用於此目的的方法是UnitySendMessage。看看Building Plugins for iOS或這blog這是部分用中文寫的。
4
您可以使用
UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");
在您填寫將收到此消息,並在消息名稱的遊戲對象的名字。
一旦從本地代碼收到此消息,您就可以實現您自己的委託/事件。 UnitySendMessage的限制是當它到達Unity代碼時,它在本機代碼中調用此代碼後始終爲1幀。它只能以字符串作爲參數。但大多數時候這並不是什麼大問題。
1
看看:http://www.tinytimgames.com/2010/01/10/the-unityobjective-c-divide/ 該博文顯示了一種技術,使用KVO(Key Value Observation)和PlayerPrefs將命令從unity傳遞到objective-c。
PlayerPrefs.SetString("Commands",
String.Format("AwesomeCommand|{0}|{1}", awesome1, awesome2));
1
原來,你可以創建一個回調方法,它可以讓你做任何你想做的事情。
下面是一個示例視頻,顯示它正在爲OSX完成,但C++代碼是跨平臺的。
這傢伙一直在爲所有的操作系統做插件上的視頻,但是目前爲止,mac是目前最酷的,因爲它給你指向C#代碼的函數指針。
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"]
相關問題
- 1. 從C代碼中調用R腳本
- 2. 從Objectivec中調用C main
- 3. 如何從Linux上的C代碼調用php腳本
- 4. 如何從C#調用一個VBS腳本託管代碼
- 5. 如何從C#代碼調用java腳本?
- 6. 從java代碼中調用ruby腳本
- 7. 從類圖生成Objectivec C代碼
- 8. 從iPad中的目標C代碼調用PHP腳本
- 9. 從Java代碼調用shell腳本
- 10. 從java腳本調用Java代碼
- 11. Unity C#CharacterController腳本
- 12. 如何調用從C#代碼中繪製WPF圖像的本機代碼?
- 13. 從Java腳本調用代碼背後的代碼
- 14. 達爾文和ObjectiveC - 如何從Cocoa應用程序調用shell腳本?
- 15. Unity3D從另一個腳本(Unity腳本)調用函數
- 16. 如何在eclipse中的java代碼中調用shell腳本?
- 17. IronPython的腳本從C#代碼執行
- 18. 從C++調用c代碼
- 19. 如何從C#代碼調用URL url
- 20. 如何從Java調用Pro * C代碼?
- 21. 如何從JavaScript調用C#代碼
- 22. 如何從C#MVC調用NodeJs代碼?
- 23. 如何從phonegap調用C++代碼
- 24. 調用Java腳本函數從C#代碼隱藏
- 25. 如何調試Lua腳本代碼?
- 26. 如何從Java代碼調用PHP腳本?
- 27. 如何從前端腳本調用後端代碼
- 28. 從C#調用本機Delphi代碼#
- 29. 如何調用JavaScript從本地代碼
- 30. 如何使用EXECL從C代碼執行Python腳本?