从完整的Xcode项目制作插件的最佳方法是什么?我尝试过从Objective-C"中获取简单的数据。插件的类型,但这看起来要复杂得多。
我试图看看我是否可以在Unity游戏中获得Aruts by Simon Epskamp的功能。 Aruts的作用是将麦克风听到的音频输出到耳机/扬声器。
到目前为止,我尝试过的是导入IosAudioController.m
,IosAudioController.h
(重命名为TestScript),以及我自己的" extern"从所述文件访问启动和停止功能的文件。
虽然它确实运行没有错误,但我听到的都是快速点击声音,根据评论,函数recordingCallback
没有被调用。
我还试图接受一些Aruts main.m
并尝试将其粘贴到Unity项目的main.mm
中,但没有成功。我可以通过代码更新此内容。
编辑:
这是我的TestExtern.h
:
#import <Foundation/Foundation.h>
#import "TestScript.h"
void TestStartAudioRec() {
[iosAudio start];
}
void TestStopAudioRec() {
[iosAudio stop];
}
这是Unity项目main.mm
:
#include "RegisterMonoModules.h"
#include "RegisterFeatures.h"
#include <csignal>
#import "TestScript.h"
static const int constsection = 0;
void UnityInitTrampoline();
const char* AppControllerClassName = "UnityAppController";
int main(int argc, char* argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
iosAudio = [[TestScript alloc] init];
@autoreleasepool
{
UnityInitTrampoline();
UnityParseCommandLine(argc, argv);
RegisterMonoModules();
NSLog(@"-> registered mono modules %p\n", &constsection);
RegisterFeatures();
std::signal(SIGPIPE, SIG_IGN);
int retval = UIApplicationMain(argc, argv, nil, [NSString stringWithUTF8String:AppControllerClassName]);
NSLog(@"After retval");
[pool release];
return retval;
}
return 0;
}
#if TARGET_IPHONE_SIMULATOR && TARGET_TVOS_SIMULATOR
#include <pthread.h>
extern "C" int pthread_cond_init$UNIX2003(pthread_cond_t *cond, const pthread_condattr_t *attr)
{ return pthread_cond_init(cond, attr); }
extern "C" int pthread_cond_destroy$UNIX2003(pthread_cond_t *cond)
{ return pthread_cond_destroy(cond); }
extern "C" int pthread_cond_wait$UNIX2003(pthread_cond_t *cond, pthread_mutex_t *mutex)
{ return pthread_cond_wait(cond, mutex); }
extern "C" int pthread_cond_timedwait$UNIX2003(pthread_cond_t *cond, pthread_mutex_t *mutex,
const struct timespec *abstime)
{ return pthread_cond_timedwait(cond, mutex, abstime); }
#endif // TARGET_IPHONE_SIMULATOR && TARGET_TVOS_SIMULATOR
也许它有问题。将其与Aruts的main.m
进行比较:
#import <UIKit/UIKit.h>
#import "IosAudioController.h"
int main(int argc, char *argv[]) {
NSLog(@"main");
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
iosAudio = [[IosAudioController alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
有什么建议吗?