Как вызвать метод UnitySendMessage в swift? - PullRequest
0 голосов
/ 05 июля 2018

Я пытался вызвать метод UnitySendMessage в своем проекте iOS Framework с использованием языка swift, но он показывает эту ошибку-

Использование неразрешенного идентификатора '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!");
    }
}

Застрял здесь, не могли бы вы сказать мне, что я скучаю?

Ответы [ 2 ]

0 голосов
/ 19 июля 2019

Просто добавьте этот код в файл Bridging-Header.h:

#import "UnityInterface.h"

Убедитесь, что ваши файлы находятся в проекте XCode, который был собран из Unity, поэтому фактический файл UnityInterface, созданный за счет Unity, присутствует.

работал для меня:)

0 голосов
/ 06 июля 2018

проверить ответ здесь .

UnitySendMessage находится в libiPhone-lib.a, и, насколько я могу судить, Люди Unity не включают заголовок, который объявляет это.

Я только что добавил следующее в мой код

extern void UnitySendMessage (const char *, const char *, const char *);

Если вы посмотрите на сгенерированный AppController.mm, они в основном делают то же самое для различных функций UnitySendXXX, а не включая заголовок.

Сказав это, пока вы сможете построить библиотеку, которая вызывает UnitySendMessage, эта библиотека, вероятно, не будет работать, если она не связана в проект Unity, так как UnitySendMessage будет требовать больше чем просто libiPhone-lib.a на самом деле работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...