반응형
flutter_unity_widget | Flutter Package
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 폴더 안의 unity 폴더를 만든 후 unityhub에서 경로에 맞게 unity 파일 생성
* unity에서 먼저 하는게 좋았었던 기억
unity
- Assets -> Import Package -> Custom Package
- Flutter_Unity_Widget 패키지
- File -> Build Settings
- Mono -> ll2CPP
- 최소 API (28), 최대 API 설정 (32보다 크게)
- ARM64, ARMv7
- Export
- Edit -> Preferences -> NDK경로 복사 -> flutter에 붙여넣기
- 할 때 \ 두개 할 것! 아래 주소는 flutter 설정에서 쓰
C:\Program Files\Unity\Hub\Editor\2021.3.22f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK
flutter
- pubspec.yaml에다가
- dependencies:
flutter_unity_widget: ^2022.2.0 - android안의 local.properties에다가
- ndk.dir=C:\Program Files\Unity\Hub\Editor\2021.3.22f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK
- ndk.dir=C:\Users\USER\AppData\Local\Android\Sdk\ndk\21.3.6528147
- android/app/build.gradle에다가
- android 안의 defaultConfig 안에
- minSdkVersion - 유니티에서 설정한 최소 API (28)
- 작성방법 - minSdkVersion 28
- android 안에 ndkVersion = "21.3.6528147"
- 이거는 크게 ndk버전 호환이 안될경우
- unityLibrary 파일의 build.gradle안의
- 실행 하다보면 여기서 libmain.so.exe 오류가 발생할 수 있다.
- 일단 flutter clean으로 정리하고, flutter pub get으로 업데이트 한 후 기다렸다가 실행 해보기
- 그래도 안되면 일단 껐다가 킨 후 설정 다 되면 실행 하기
- 이제 아래 코드를 main.dart에 넣기
import 'package:flutter/material.dart';
import 'package:flutter_unity_widget/flutter_unity_widget.dart';
void main() {
runApp(
const MaterialApp(
home: UnityDemoScreen(),
),
);
}
class UnityDemoScreen extends StatefulWidget {
const UnityDemoScreen({Key? key}) : super(key: key);
@override
State<UnityDemoScreen> createState() => _UnityDemoScreenState();
}
class _UnityDemoScreenState extends State<UnityDemoScreen> {
static final GlobalKey<ScaffoldState> _scaffoldKey =
GlobalKey<ScaffoldState>();
UnityWidgetController? _unityWidgetController;
@override
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.yellow,
child: UnityWidget(
onUnityCreated: onUnityCreated,
),
),
),
),
);
}
// Callback that connects the created controller to the unity controller
void onUnityCreated(controller) {
_unityWidgetController = controller;
}
}반응형
'Unity 게임' 카테고리의 다른 글
| (Unity) 오브젝트 내부의 Script를 버튼 이벤트로 발생시키기 (6) | 2024.04.04 |
|---|---|
| (Unity) 유니티 끄적끄적 (3) | 2023.12.02 |