이번시간에 우리가 알아볼 내용은 Android, iOS 플러그인을 제작할 때 유니티로 값을 전달할 때 유용한 SendMessage기능을 알아보도록 하겠습니다.
일단, 네이티브 플러그인에 SendMessage를 찾아보는 정도라면.. 굳이 연동하는 내용의 전체 프로세스는 다루지 않겠습니다. SendMessage부분만 다룰거에요.
안드로이드의 경우 최근 GameActivity라는 것이 추가되면서 기존에 Activity방식을 알고 있었다면 GameActivity방식을 추가적으로 알고 있으면 좋을 듯하다.
void TestCode() {
// Activity
UnityPlayer.UnitySendMessage("Cube", "ShowMessage", "Hi");
// GameActivity
UnityPlayerForGameActivity.UnitySendMessage("Cube", "ShowMessage", "Hi");
}
fun TestCode() {
// Activity
UnityPlayer.UnitySendMessage("Cube", "ShowMessage", "Hi")
// GameActivity
UnityPlayerForGameActivity.UnitySendMessage("Cube", "ShowMessage", "Hi")
}
자료 찾아보면 UnityInterface.h를 추가해야 UnitySendMessage()를 사용할 수 있다곤 하는데, 추가하지 않아도 되긴 합니다?!
// Objective-C 코드
@interface SampleCode : NSObject
- (void) TestCode;
@end
@implementation SampleCode
- (void) TestCode{
UnitySendMessage("Cube", "ShowMessage", "Hi");
}
@end
Swift의 경우 UnityFramework()에 sendMessageToGO를 통해 SendMessage처리를 할 수 있습니다.
UnityInterface.h에 정의된 UnitySendMessage를 Swift에 사용하려고 브릿지를 만들거나 묘듈을 연결하는 방법도 있겠지만,UnityFramework()에 정의된 sendMessageToGO를 사용하는 것이 편리합니다.
func TestCode()
{
UnityFramework().sendMessageToGO(withName: "Cube", functionName: "ShowMessage", message: "Hi")
}