Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在swift中调用UnitySendMessage方法?_Ios_Swift_Unity3d - Fatal编程技术网

Ios 如何在swift中调用UnitySendMessage方法?

Ios 如何在swift中调用UnitySendMessage方法?,ios,swift,unity3d,Ios,Swift,Unity3d,我尝试在iOS框架项目中使用swift语言调用UnitySendMessage方法,但它显示了此错误- 使用未解析标识符“UnitySendMessage” 下面是我的swift文件的代码片段- import Foundation @objc public class Example : NSObject{ @objc open static let shared = Example() @objc open func printMsg(){ print("

我尝试在iOS框架项目中使用swift语言调用UnitySendMessage方法,但它显示了此错误-

使用未解析标识符“UnitySendMessage”

下面是我的swift文件的代码片段-

import Foundation

@objc public class Example : NSObject{

    @objc open static let shared = Example()

    @objc open func printMsg(){
        print("\(#function) is called with message:");
        UnitySendMessage("CallbackTarget", "OnCallFromSwift", "Hello, Unity!");
    }
}
被困在这里,你能告诉我我遗漏了什么吗?

检查答案

UnitySendMessage在libiPhone lib.a中,据我所知 Unity人员不包含任何声明它的头

我刚刚在代码中添加了以下内容

外部无效UnitySendMessage(常量字符*,常量字符*,常量字符 *);

如果查看生成的AppController.mm,它们基本上执行以下操作: 对于不同的UnitySendXXX函数也是如此,而不是 包括一个标题

话虽如此,但您将能够构建一个调用 UnitySendMessage,除非链接,否则该库可能无法工作 进入Unity项目,因为UnitySendMessage需要更多 而不仅仅是libiPhone lib.a才能真正工作


只需将此代码添加到桥接头.h文件:

#import "UnityInterface.h"
确保文件位于从Unity生成的XCode项目中,这样Unity创建的实际UnityInterface文件就存在了


为我工作:)

检查此项:Dharmesh,感谢分享本文。我尝试过这种方法,如果我在通过Unity生成的iOS项目中创建swift文件,它就可以工作,但是如果我在iOS框架项目中创建swift文件,它就不起作用了。谢谢,但是如何在我的框架项目中添加libiPhone lib.a在哪里粘贴extern void UnitySendMessage(constchar*,constchar*,constchar*);。。。我粘贴在UnityAppController.mm的顶部,但得到一个错误“未知类型名'constchar'”。