alp*_*r_k 3 objective-c unity-game-engine ios
我正在编写Unity项目的Objective-C部分.在AppController.mm中,我声明了
extern void UnitySendMessage(const char *, const char *, const char *);
Run Code Online (Sandbox Code Playgroud)
而我称之为,
- (void)callUnityObject:(const char*)object Method:(const char*)method Parameter:(const char*)parameter
{
UnitySendMessage(object, method, parameter);
}
Run Code Online (Sandbox Code Playgroud)
但我有一个必须接收int参数的Unity函数.所以,如果我这样打电话:
[self callUnityObject:"_iosManager" Method:"GiveDynamite" Parameter:"50"];
Run Code Online (Sandbox Code Playgroud)
该应用程序不会崩溃,但调用不起作用,我得到这样的输出:
方法GiveDynamite的最佳匹配具有一些无效参数.
如果我这样打电话:
[self callUnityObject:"_iosManager" Method:"GiveDynamite" Parameter:50];
Run Code Online (Sandbox Code Playgroud)
该应用程序正在崩溃.
如何将此消息从Objective-c发送到Unity?
我尝试声明一个像这样的新方法:
extern void UnitySendMessage(const char *, const char *, int);
Run Code Online (Sandbox Code Playgroud)
但该应用程序崩溃并说团结没有像这样的功能声明.
提前致谢.
根据:
void UnitySendMessage( const char * className, const char * methodName, const char * param )
Run Code Online (Sandbox Code Playgroud)
你应该通过char*
:
[self callUnityObject:"_iosManager" Method:"GiveDynamite" Parameter:"50"];
Run Code Online (Sandbox Code Playgroud)
在Unity类中,您应该收到"string"参数
void GiveDynamite(string dinamite) {
...
}
Run Code Online (Sandbox Code Playgroud)
然后将其解析为整数值,fe:
dinamiteAmount = int.Parse(dinamite);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10408 次 |
最近记录: |