Flutter集成Unity

这篇具有很好参考价值的文章主要介绍了Flutter集成Unity。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

最近做项目时需要用到Flutter来做跨平台开发,但是项目中又用到了虚拟场景,这样一来就涉及到了Unity,那么总结下来便是用AndroidStudio来创建Flutter项目,将Unity项目嵌入到Flutter项目中,本篇文章就给大家分享一下Flutter集成Unity的详细过程,下一篇再给大家分享 Flutter与Unity之间的通信;

效果演示

Flutter集成Unity效果图

软件环境:

AndroidStudio创建Flutter项目   

Unity3D创建Unity项目

还需准备一个插件: Flutter-Unity widget

整合Flutter和Unity的关键组件:Flutter-Unity widget

Flutter在构建跨平台移动应用方面越来越受欢迎,Unity非常适用于构建增强现实(AR)和虚拟现实(VR);

Flutter-Unity widget是整合Flutter与Unity的一个很关键的组件,它允许开发者在Flutter Widget内嵌入Unity应用;

Flutter-Unity widget插件的重要能力之一便是能够提供Flutter和Unity之间的双向通信;

一. Flutter项目

1. 准备一个Flutter项目

打开你的Android Studio,在AS中创建一个Flutter项目,取名为FlutterDemo,如下图所示:

Flutter集成Unity

 再点击Next,为Flutter项目取名,选择Flutter项目的存储位置,选择Android的开发语言,点击Finish便可以等待项目完成

 Flutter集成Unity

2. 为Flutter项目添加ndk

Flutter集成Unity

3. 为Flutter项目添加依赖

Flutter集成Unity

4. Flutter项目中建立一个存放Unity项目的文件夹

点击New——> Directory,然后为文件夹取名

Flutter集成Unity

这个文件夹的作用时存放待会创建的Unity项目

Flutter集成Unity

到此为止,Flutter项目这边的工作告一段落了;然后,我们需要去创建一个Unity项目,创建Unity项目的存放路径就是Flutter项目刚刚建立的文件夹;

二. Unity项目

1. 准备一个Unity项目

注意一下Unity的存放路径不要搞错啊,Unity项目的名字可以随意的

Flutter集成Unity

2. 查看Unity的NDK

这个ndk就是上文Flutter项目中需要的ndk路径

Flutter集成Unity

3. 修改Unity的打包设置

切换平台,添加场景

Flutter集成Unity

 选择打包方式和打包设置

Flutter集成Unity

4. 将Flutter-Unity Widget插件包导入到Unity项目中

Flutter-Unity widget下载地址在文章前面提供了,大家可以去下载,小编这里就带大家使用第一个包吧

Flutter集成Unity

点击Import,等待Flutter-Unity Widget包导入即可 

Flutter集成Unity

选择升级过时API,等待修改完成即可

Flutter集成Unity

5. 修改Build脚本

打开刚刚导入的Package包中的Build脚本,并对其进行修改

Flutter集成Unity

在Build脚本中的DoBuildAndroid方法中进行修改

Flutter集成Unity

在Build脚本中的BuildIOS方法中修改代码 ,修改完成后,记得保存,Unity的脚本修改都不会自动保存的

Flutter集成Unity

6. 打包Export Android项目

点击Flutter后,再点击Export Android ,然后等待进度条加载完成即可,因为我们的Unity项目是建立在Flutter项目的一个文件夹中的,所以打包出来的unitylibrary会自动加载到Flutter项目中 ;

到此为止,Unity项目的配置就完成了

Flutter集成Unity

三. 将Unity项目嵌入Android项目

1. 检查刚刚Unity项目的Export Android是否成功了

Flutter集成Unity

2. 配置Android

将android / app / build.gradle中的minSdkVersion  ,tartgetSdkVersion 跟 android / unityLibrary / build.gradle的一致

comileSdkVersion改为33 ,这是因为Flutter-Unity Widget需要这么高的版本才能支持

Flutter集成Unity

3. gardle.properties 添加配置信息

Flutter集成Unity

4. AndroidManifest.xml中添加权限

 在android / app / src / main / AndroidManifest.xml中添加权限,如下图所示

Flutter集成Unity

5. 修改main.dart文件

接下来我们为Unity编写入口程序

直接给大家上代吧,把如下代码赋值到大家的main.dart文件中

import 'package:flutter/material.dart';
import 'package:flutter_unity_widget/flutter_unity_widget.dart';


void main() {
  runApp(MaterialApp(
      home: UnityDemoScreen()
  ));
}

class UnityDemoScreen extends StatefulWidget {

  UnityDemoScreen() : super();

  @override
  _UnityDemoScreenState createState() => _UnityDemoScreenState();
}

class _UnityDemoScreenState extends State<UnityDemoScreen>{
  static final GlobalKey<ScaffoldState> _scaffoldKey =
  GlobalKey<ScaffoldState>();
  late UnityWidgetController _unityWidgetController;

  Widget build(BuildContext context) {

    return Scaffold(
      key: _scaffoldKey,
      body: SafeArea(
        bottom: false,
        child: WillPopScope(
          onWillPop: () async{
            // Pop the category page if Android back button is pressed.
            return true;
          },
          child: Container(
            color: Colors.blue,
            child: UnityWidget(
              onUnityCreated: onUnityCreated,
            ),
          ),
        ),
      ),
    );
  }

  // Callback that connects the created controller to the unity controller
  void onUnityCreated(controller) {
    this._unityWidgetController = controller;
  }
}

四. 效果演示

到此为止,Flutter集成Unity便已经完成了,接下来给大家看一下效果视频

Flutter集成Unity

要是有疑问大家可以加我微信详聊 yf1553653788,下一篇再给大家分享 Flutter与Unity之间的通信;文章来源地址https://www.toymoban.com/news/detail-405900.html

到了这里,关于Flutter集成Unity的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter 中,ListView 中需要放置 ListView 需要怎么处理才高效?

    问题及场景 ListView 是 Flutter 开发者第一个学习到的 Widget,因为它可以滑动。一切都会运行得很好,直到 ListView 中的 Item 本身也是一个 ListView。你可能会看到 Flutter 建议你将内部的 ListView 的ShrinkWrap 属性设置为 True。虽然错误消除了,但是威胁还在。因为 ShrinkWrap 属性会将

    2024年02月13日
    浏览(38)
  • Xcode 清空最近打开的项目

    打开Xcode任意项目 File - Open Recent - Clear Menu

    2024年02月09日
    浏览(40)
  • 我最近的练习一些全栈项目

    嘿,大家好!作为一个程序员,我突然出现在这里,就像程序里的一个Bug一样突兀。我知道我很久没有发博客了,你们一定在想,这家伙是被代码迷宫困住了还是被Bug们抓走了?实际上,我一直忙于处理一些琐碎的事情,比如寻找丢失的分号和与花括号的恶战。但是,我发现

    2024年02月06日
    浏览(35)
  • Thinkphp获取项目最近更改变动的所有文件

    导读: 企业级的网站项目都是要不断优化迭代更新的,做为一名后端程序员,在编写更新模块时,如何能快速获取最近修改的文件,然后打包压缩成更新补丁呢?我们先来看一下最终效果图:  步骤: 一、在extend扩展目录创建一个名为 ChangesFile.php 的文件,代码如下: 二、

    2023年04月26日
    浏览(39)
  • Flutter iOS 集成使用 flutter boost

    在 Flutter项目中集成完 flutter boost,并且已经使用了 flutter boost进行了路由管理,这时如果需要和iOS混合开发,这时就要到 原生端进行集成。 注意:之前建的项目必须是 Flutter module 项目,并且原生项目和flutter module项目在同一个文件夹下面 下面是原生端集成 flutter boost的步骤

    2024年02月13日
    浏览(33)
  • Flutter:Android/iOS集成Flutter模块

    一、Android工程集成Flutter模块工程: 1.使用命令创建Flutter模块工程lib_flutter(与Android工程属于同级目录): 2.更新Android工程配置: (1)将Android工程Support V4/V7包替换为AndroidX包,右键点击工程,在弹出菜单中选择 Refactor   Migrate to AndroidX...,然后在左下角弹出的框中,点击Do Refac

    2024年02月06日
    浏览(41)
  • 最近最火的互联网创业项目有哪些呢?

    众所周知,关于腾讯视频号在做灰度测试。从眼下的公测结果来说,视频号和公众号的无缝链接是打通的。这也就意味着短视频预告和直播,形成了一个生态闭环,引流效果会翻倍。   如果想做互联网创业,网络上五花八门。至于靠谱的项目,像热门、需求量大、门槛低、好

    2024年02月08日
    浏览(47)
  • flutter集成Mob推送(Android)

    Mob推送 Flutter对接文档 1、在pubspec.yaml文件中加入下面依赖 2、导入 MobPush 相关依赖 在项目根目录的build.gradle中添加以下代码: 3、在 /android/app/build.gradle 中添加以下代码: 4、平台相关集成 在项目的/android/app/build.gradle中添加: 5、在MainActivity的onCreate中添加以下代码: SDK API

    2024年02月02日
    浏览(39)
  • 检测并批量导出项目文件中所有最近修改文件的实用工具

    本篇文章主要讲解工具的使用和操作教程,这是一个能够检测项目内最近修改的文件并保留路径导出文件的实用工具。 日期:2024年1月10日 这是一款可以帮助你自动检测并导出指定文件修改时间内的文件及文件目录的实用工具,在复杂的项目目录中有一天团队修改了很多文件

    2024年01月24日
    浏览(43)
  • Flutter集成个推推送-安卓原生篇

    在众多的集成化推送中选择了个推,个推在 flutter 集成中还是比较简单的,只需要跟着官网一步一步走就可以了。今天这篇文章不涉及到 flutter 项目个推的集成,只是记录个推离线走安卓厂商时,进行获取一个离线的点击通知数据。 在个推的官网中提供的例子是 java 的,不符

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包