Closed1

Embed Unity in Flutter

yagi_engyagi_eng

Reference

Intro

https://pub.dev/packages/flutter_unity_widget
https://github.com/juicycleff/flutter-unity-view-widget/tree/master
https://qiita.com/trimscash/items/355c7b107bce8193a58d
https://developers.10antz.co.jp/archives/2210
https://docs.unity3d.com/2021.3/Documentation/Manual/UnityasaLibrary.html

Difficulty

https://techblog.zozo.com/entry/unity-as-a-library-ux

Unity Player Settings

Android

https://baba-s.hatenablog.com/entry/2019/03/08/122500
https://unity.com/ja/releases/2019-2/platforms-and-editor#optimized-frame-pacing-android
https://qiita.com/satotin/items/2009788da11805a4a9cf
https://docs.unity3d.com/ja/2021.3/Manual/class-PlayerSettingsAndroid.html
https://www.hanachiru-blog.com/entry/2020/01/13/171006
https://docs.unity3d.com/ja/2021.2/Manual/texture-compression-formats.html
https://docs.unity3d.com/ja/2021.2/Manual/performance-incremental-garbage-collection.html

iOS

https://docs.unity3d.com/ja/2018.4/Manual/class-PlayerSettingsiOS.html

Run example

https://qiita.com/trimscash/items/355c7b107bce8193a58d

delete borderRadius: BorderRadius.circular(20.0), to remove BorderRadius

lib/screens/simple_screen.dart
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(20.0),
          ),

Error

w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /Users/yagi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.5.30/5fd47535cc85f9e24996f939c2de6583991481b0/kotlin-stdlib-jdk8-1.5.30.jar (version 1.5)
    /Users/yagi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.6.20/f8629f336bad4001c89e9cffa5ef3d4b5d0f5e22/kotlin-stdlib-jdk7-1.6.20.jar (version 1.6)
    /Users/yagi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.3.10/dd02865be0351707554b16a896b766b2396cdafa/kotlin-reflect-1.3.10.jar (version 1.3)
    /Users/yagi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.7.10/d2abf9e77736acc4450dc4a3f707fa2c10f5099d/kotlin-stdlib-1.7.10.jar (version 1.7)
    /Users/yagi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.7.10/bac80c520d0a9e3f3673bc2658c6ed02ef45a76a/kotlin-stdlib-common-1.7.10.jar (version 1.7)

Unity Player Settings

  • if turning Hide Navigation Bar on, lower part of screen become white when Unity starts.
  • if turning Hide Navigation Bar off and Render outside safe area on, transparent status bar shows up.
    • if turning Hide Navigation Bar on and Render outside safe area on, the bar doesn't show up.

Notes

  
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(fit: StackFit.expand, children: <Widget>[
        UnityWidget(
          onUnityCreated: _onUnityCreated,
          onUnityMessage: _onUnityMessage,
        ),
        if (_showLoading)
          Container(
              color: Colors.white,
              child: Center(
                child: LoadingAnimationWidget.threeRotatingDots(
                  color: Colors.blue,
                  size: 50,
                ),
              )),
      ]),
    );
  }

  void _onUnityMessage(message) async {
    logger.i('Received message from unity: ${message.toString()}');

    String msgStr = message.toString();
    if (msgStr == 'CompleteToLoad') {
      await Future.delayed(const Duration(seconds: 1));
      setState(() {
        _showLoading = false;
      });
    }
  }
このスクラップは2023/01/12にクローズされました