본문 바로가기

Flutter

<Flutter> Flutter와 Unity 연결하는 방법


Flutter와 Unity를 연결하는 방법은 알고나면 생각보다 간단하다.
다만 생각보다 수정해야 하는 부분이 많다...

우선 이 패키지를 사용한다 https://pub.dev/packages/flutter_unity_widget

 

flutter_unity_widget | Flutter Package

Flutter Unity 3D widget for embedding Unity game scenes in flutter. This library now supports Unity as a Library.

pub.dev

flutter pub add flutter_unity_widget


그 다음, 다음 링크에서 https://github.com/juicycleff/flutter-unity-view-widget/tree/master/unitypackages

 

GitHub - juicycleff/flutter-unity-view-widget: Embeddable unity game engine view for Flutter. Advance demo here https://github.c

Embeddable unity game engine view for Flutter. Advance demo here https://github.com/juicycleff/flutter-unity-arkit-demo - GitHub - juicycleff/flutter-unity-view-widget: Embeddable unity game engine...

github.com

FlutterUnityIntegration-v4.1.0.unitypackage를 다운받으면 되는데 만약 안된다면 다른 버전을 사용해도 무방하다.

그리고 다운받은 파일을 Unity 프로젝트에 Import 하면 된다.

방금 받은 .unitypackage 파일을 눌러서 open하면 위에 Flutter 창이 새로 생긴다.

그 다음, 새로 생긴 Flutter 창에서 Export IOS를 눌러서 Export 시켜준다.

만약 Export이 되지 않고, InvalidOperationException: The build cannot be appended.
UnityEditor.BuildPipeline.BuildPlayer (System.String[] scenes, System.String locationPathName, System.String assetBundleManifestPath, UnityEditor.BuildTargetGroup buildTargetGroup, UnityEditor.BuildTarget target, UnityEditor.BuildOptions options, System.String[] extraScriptingDefines)
이러한 에러 메세지가 나온다면 파일 수정을 좀 해야 한다.

.unitypackage를 오픈하면 FlutterUnityIntegration이라는 파일이 생성되는데

FlutterUnityIntegration/Editor/Build.cs 파일에서 두가지만 수정해주면 된다.

우선 48번째 줄에

var options = BuildOptions.AcceptExternalModificationsToPlayer;


-> 다음과 같이 수정해주면 된다.

var options = BuildOptions.AllowDebugging;
EditorUserBuildSettings.exportAsGoogleAndroidProject = true;



그 다음으로
115번째 줄에

var options = BuildOptions.AcceptExtrernalModificationsToPlayer;

 

-> 다음과 같이 수정해주면 된다.

var options = BuildOptions.AllowDebugging;



그럼 이제 Export IOS가 오류 없이 잘 작동한다.

그 다음 Export한 폴더안에 ios/UnityLibrary 라는 폴더가 생성되었을텐데,

ios 폴더 안에 있는 UnityLibrary 파일을 플러터 파일 안에 있는 ios파일 안에 넣어주면 된다.


그러고 Unity-iPhone.xcodeproj가 아닌 Runner.xcodeproj를 열어

우클릭을 눌러 Add Files to "Runner"... 를 실행한다. 그 다음 UnityLibrary 파일 안에 있는 Unity-iPhone.xcodeproj를 불러오면 된다.

마지막으로 Runner / General에 Frameworks, Libraries, and Embedded Content에 UnityFramework.framework를 추가해주면 된다.


다음과 같이 사용하면 잘 작동한다.