我可以从 Unity iOS 插件调用 C# 并获得 return 类型吗?

Can I call into C# from Unity iOS Plugin and get a return type?

我目前正在使用 UnitySendMessage(Class, Method, StringArg) 从我的 iOS 代码调用回 C#。

但是,我现在正在尝试实现一些需要该方法的 return 值的东西。我正在实现一个委托,C# 代码可以使用它来包装本机 Objective-C 包装器。

UnitySendMessage 有 1 帧延迟并且是异步的,因此不适合这个。 can/should 我用什么代替?

我还没有看到从本机代码调用非异步的 Unity 的方法。

我对你的场景所做的类似的方法是让 C# 轮询每帧本机代码,然后再次响应:

Unity         Native
  |---GetInfo()--->|
process            |
  |---Result()---->|

从 iOS 代码调用 Unity C# 代码是异步调用,这意味着您不能拥有 return 值。您可以做的是从 iOS 调用 Unity C# 方法并为响应(return 值)从 Unity C# 调用 iOS 方法并执行您的 return 值处理这个 iOS 方法。

它会更像:

iOS (method1) ---- Data -----> C# (methodX)

stop any processing on iOS side

C# (methodX) ---- response -----> iOS (method2)

Do some processing on response in method2