iOS
0.flutter_unity_widget的Demo说明
Demo 通过 flutter_unity_widget库,达到 Flutter 内嵌 Unity 目的
主要功能:
1.flutter-unity-view-widget 为 Unity 提供依赖库导出插件,将 Unity 项目构建成 Android、IOS 依赖库.
2. flutter-unity-view-widget 为 Flutter 提供组件库,将 Unity 视图以组件的形式渲染,并提供 Flutter、Unity 双向通信接口
1.新建一个flutter项目
(1)在桌面新建一个flutter项目,项目名:unity_demo
(2)在flutter项目里新建一个文件夹,文件名:unity,路径:unity_demo/unity
2.新建一个unity项目
(1)在刚才创建的unity文件夹里创建一个新的unity项目,项目名:UnityDemo
3. NDK
如果您的项目需要 Android NDK,则必须进行以下设置:
您的 android 项目需要知道 NDK Unity 使用的路径。您可以在以下位置找到 NDK 的路径Preferences -> External Tools
:
通过右键单击复制路径并将路径粘贴到您的android/local.properties
:
就是这样!您无需app/build.gradle
在 NDK 版本或其他 NDK 设置中告诉您的 Android 应用程序。现在一切都连接到了 Unity。
ndk.dir=/Applications/Unity/Hub/Editor/2020.3.21f1c1/PlaybackEngines/AndroidPlayer/NDK
4.下载插件
(1)下载插件
https://github.com/juicycleff/flutter-unity-view-widget/tree/master/scripts
(2)将插件放到UnityDemo里面
5.配置UnityDemo项目(配置iOS的)
(1)进入 File > Build Settings > Player Settings 中
(2)更改Configuration部分下的以下内容:
(3)目标SDK: Device SDK 代表真机,Simulator SDK代表虚拟机
(4)其他默认
6.引入刚才下的插件
(1)打开UnityDemo项目,右键选择Assets > Import Package > Custom Package并选择 FlutterUnityPackage.unitypackage文件。单击“导入”。(如果报错,删除Standalone文件和AOT和Windows下边的Newtonsoft.Json.dll)
7.修改构建时用的源码
// DoBuildAndroid()
// var options = BuildOptions.AcceptExternalModificationsToPlayer;
var options = BuildOptions.AllowDebugging;
EditorUserBuildSettings.exportAsGoogleAndroidProject = true;
// BuildIOS()
// var options = BuildOptions.AcceptExternalModificationsToPlayer;
var options = BuildOptions.AllowDebugging;
8.构建flutter对应得iOS项目
成功以后会生成unityLibrary文件夹(别人用得话,直接整个文件夹放在ios中)
9.配置iOS
-
(1)在Xcode左侧空白处右键选择
Add Files to "Runner"
-
在弹出的窗口中,选择第8步中导出的
UnityExport
文件夹下的Unity-iPhone.xcodeproj
导入
-
(2)导入后点击
Unity-iPhone/Data
,将右侧Target Membership
选中UnityFramework
-
(3)修改Target为12.0以上版本
-
(4)在
Runner/Runner/Info.plist
文件中添加io.flutter.embedded_views_preview
字段,并设置为Boolean YES,保存
-
(5)单独构建 UnityFramework
-
(6)在
Runner/General
选项卡下,添加框架UnityFramework.framework
-
(7)在
Runner/Runner/Runner-Bridging-Header.h
文件中第二行添加#import <UnityFramework/UnityFramework.h>
,保存
-
(8)在
Runner/Runner/AppDelegate.swift
文件中第十行添加InitUnityIntegrationWithOptions(argc: CommandLine.argc, argv: CommandLine.unsafeArgv, launchOptions)
字段,保存
-
(9)登陆Apple开发者账号,修改包名等基本操作不在赘述,Unity-iPhone和Runner都修改
-
(10). Flutter项目中进行配置
项目根目录pubspec.yaml
文件中添加flutter_unity_widget: ^4.1.0
10.运行flutter
flutter run
参考:
https://pub.dev/packages/flutter_unity_widget
https://www.jianshu.com/p/80d204950b51
http://liweijia.site/archives/1405
https://www.youtube.com/watch?v=exNPmv_7--Q
https://ivanfan.site/2020/07/21/uiwidgets/