3

Unity では、Wen は Objective-C の関数を extern 関数としてインポートすることで、C# から Objective-C コードを呼び出すことができます。しかし、どのように Objective-C から C# スクリプト コードを呼び出すのでしょうか?

4

5 に答える 5

4

使用できます

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

このメッセージを受け取るゲームオブジェクト名とメッセージ名を入力します。

ネイティブ コードからこのメッセージを受け取ったら、独自のデリゲート/イベントを実装できます。UnitySendMessage の制限は、Unity コードに到着するときで、これをネイティブ コードで呼び出してから常に 1 フレームです。また、パラメーターとして文字列のみを受け取ることができます。しかし、ほとんどの場合、それは大きな問題ではありません。

于 2012-12-13T11:35:17.580 に答える
2

これに使用されるメソッドはUnitySendMessageです。iOS用のプラグインの構築または部分的に中国語で書かれているこのブログをご覧ください。

于 2012-12-13T08:56:38.197 に答える
1

以下をご覧ください: http://www.tinytimgames.com/2010/01/10/the-unityobjective-c-divide/ ボルグの投稿は、KVO ( Key Value Observation ) と PlayerPrefs を使用してコマンドを渡すテクニックを示しています。目標への団結-c。

PlayerPrefs.SetString("Commands",
   String.Format("AwesomeCommand|{0}|{1}", awesome1, awesome2));
于 2013-02-13T14:59:17.863 に答える
0

C# と Objective-C の混合を可能にする iOS 用の unity 用ユニバーサル プラグイン 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();

Objective-C

[[NSClassFromString(@"MyCallbackClass") new] methodWithArg:@"arg1" anotherArg:@"arg2"]
于 2013-10-03T20:04:50.430 に答える