Я пытаюсь написать свой первый сценарий единства. Это код для файла с именем TestPlugin.cs, который находится в Assets / Plugins:
using UnityEngine;
using System.Runtime.InteropServices;
public class TestPlugin : MonoBehaviour
{
[DllImport ("__Internal")]
private static extern int getString ();
public static void Awake () {
print (getString ());
}
}
Это код для двух файлов, которые я импортирую в папку классов сгенерированного проекта xCode:
TestPlugin.h:
#import <Foundation/Foundation.h>
@interface TestPlugin : NSObject
-(int)getString;
@end
TestPlugin.m:
#import "TestPlugin.h"
@implementation TestPlugin
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
- (int)getString
{
return 7;
}
@end
Наконец, это файл javascript, который находится внутри папки активов.
TestPluginTest.js:
function Update ()
{
TestPlugin.Awake ();
}
Кроме того, обратите внимание, что я не обязательно ожидаю, что все это сработает, просто чтобы скомпилировать на этом этапе (хотя дополнительные указатели и советы приветствуются)
Ошибка, которую я получаю в xCode при попытке встроить в iPhone (фактическое устройство), такова:
Неопределенные символы для архитектуры armv7: "_getString", ссылка
от:
RegisterMonoModules () в RegisterMonoModules.o ld: символ (ы) не найдены для архитектуры armv7 collect2: ld вернул 1 состояние выхода
"_ getString", на который ссылаются из:
RegisterMonoModules () в RegisterMonoModules.o
ld: символ (ы) не найден для архитектуры armv7
collect2: ld вернул 1 статус выхода
Я в тупике! Заранее спасибо!