Flutter와 Unity를 연결하는 방법은 알고나면 생각보다 간단하다.
다만 생각보다 수정해야 하는 부분이 많다...
우선 이 패키지를 사용한다 https://pub.dev/packages/flutter_unity_widget
flutter pub add flutter_unity_widget
그 다음, 다음 링크에서 https://github.com/juicycleff/flutter-unity-view-widget/tree/master/unitypackages
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를 추가해주면 된다.
다음과 같이 사용하면 잘 작동한다.
'Flutter' 카테고리의 다른 글
<Flutter> Command PhaseScriptExecution failed with a nonzero exit code 오류 해결 (1) | 2023.05.09 |
---|---|
<Flutter> Flutter 상에서 3D 이미지 띄우기 (0) | 2021.12.10 |
<Flutter> iOS 에뮬레이터 CocoaPods's specs repository is too out-of-date to satisfy dependencies 에러 (0) | 2021.09.03 |
<Flutter> 플러터 상에서 url 연결하는 방법 (0) | 2021.08.10 |
<Flutter> Dot indicator 사용 (0) | 2021.07.09 |