고도엔진을 안드로이드애플리케이션에 임베드하는거 공부하기
이제 방법이 없다.
emitsignal쪽이 초당 30프레임속도로 보내든 10프레임속도로 보내든
데이터를 받지 않아도 앱중지가 일어난다;;
이 함수가 정확히 어떤문제가 있어서 그런지 파악이 안된다.
고도포럼에 도움요청해도 답이 없고...
보니까 안드로이드 ai플러그인도 많고
빌드는 안드로이드 스튜디오로 하고 게임만 고도엔진으로 만들어야할 것 같다.
일단 내가 사용할 고도엔진을 안드로이드에 임베드하는 방식을
고도문서에 나와있는 예제로 파악해야할 것 같다.
일단 저 앱을 사용하기전에 고도엔진 프로젝트도 있을텐데 열어보고
그 프로젝트가 모바일 애플리케이션에서 어떻게 임베드되는지
코드로 파악하고 아무튼 직접 테스트해봐야한다.
일단 유튜브로 찾아보자 누군가 튜토리얼을 만들지 않았을까..
일단 있구만...
봐도 잘모르겠넹;;
일단 예제 프로젝트를 깃허브에서 다운받아서 진행
아니 근데 리드미에 그냥 폰에 설치하는 명령어만 나오고 -ㅅ-뭘 따라하란거야;;
이런 구조로 맞춰줘야 안드로이드 스튜디오에서 올바르게 사용가능한 것 같다 -ㅅ-;
근데왜 그렇게 되어있는거징;;
버전오류가 나길래 버전을 맞춰줬다.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
깃허브가 거의 4개월인가 6개월전에 올라온거라
버전이 완전 좀 옛날이다.
7.5버전인데 나는 저걸 8.9로 해서 진행했다.
그리고 빌드하기전에 키스토어 작성해주고
서명키없으면 안드로이드는 설치안됨!
짜잔 고기가나오넹 ㅋㅋ
깃허브에 케니의 에셋이 나오던데
그 에셋들을 보여줄 수 있게 만든 앱인가보다.
GLTFViewer라는걸보니
이 클래스에서 렌더하는게 아닌가 싶당.
아...
안드로이드
RecyclerView로 동적 목록 만들기
를 사용해서 렌더링하는건데
고도엔진의 기능이 쓰인건지는 모르겠다;;
그럼 프로젝트를 어떻게 임베드하는거지;;?
근데 걱정이 고도엔진 기능을 전부 사용할 수 없으면 어쩌지라는...
어쨌든 계속 진행 ㄱㄱ
일단 나는 그전에 만든 cameraX 실습 앱이 있으니 여기다 해보려고한다.
이 apptoptions가 있어야하나봄.
위에 라이브러리 선언해주자
문서랑 좀 다른부분이 있는데 이부분은 자동완성 기능으로 커버
import org.godotengine.godot.GodotFragment이걸 이제 안드로이드 생명주기 한번만 실행하는 함수 oncreate부분에 작성완료.
안드로이드 매니페스트에 설정을 해야되는데
코드대로하면 ai설명으로보자면
- android:name=".MainActivity": 이 액티비티의 클래스 이름을 지정합니다.
- android:screenOrientation="fullUser": 사용자가 기기의 방향을 자유롭게 변경할 수 있도록 합니다.
- android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout":
- 이 설정은 화면 방향, 크기, 최소 화면 크기, 화면 레이아웃이 변경될 때 액티비티가 재시작되지 않도록 합니다2.
- 대신 onConfigurationChanged() 메서드가 호출되어 개발자가 변경 사항을 직접 처리할 수 있게 합니다.
- android:exported="true":
- 다른 앱에서 이 액티비티를 시작할 수 있도록 허용합니다4.
- 이는 보안상 주의가 필요한 설정입니다.
근데 저기 2번 코드는 줄이 쳐져서 사용이 되는건지 안되는건지 파악이 안된다.
그럼 만들고 있떤 프로젝트를 넣어볼까..
내프로젝트는 포트레잇 1번으로 되어있다.
그냥 빌드하라는데
그 깃허브 예제처럼 명령어가 있는 건 아닌 듯?
흠 빌드하니까 안되는뎅;;
아
..
폰에서 실행시켜봐야겠다.
어떻게 나올지 모르니까 기대된당.
아 뷰쪽을 작성안한 것 같다.
안드로이드 api를 다뤄보진 않았는데
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
힙 부족이 나와서
빌드는 잘되는데
설치실행이 될지...
org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
다시 바꿔줌
어이거 카메라앱만들 때는 없어도됐는데 흠...어쨌든 빌드완료.
휴대폰에 다시 설치 ㄱㄱ
흠..
작성후 빌드 후 실행
<FrameLayout
android:id="@+id/godot_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toTopOf="@id/image_capture_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
app번들하면 좀 줄어들긴할텐데 그래도 심하게 크네;;
용량이 큰 이유가 프로젝트에 안드로이드 빌드 부분이 설치되어있어서 그렇다.
이부분을 제거하면 용량이 200mb정도밖에 안됨!!
오오오 된당.. 인풋받는 부분도 잘되넹..
크.......윽..
이제 카메라 인식 라이브러리 택해서 게임이랑 합쳐서 만들어야징!!!
2024년 안드로이드 스튜디오 버전 업글 후
빌드 안될 때 jdk 리소스 딴대 먹는 거 주의
레이아웃 필요함.
안드로이드 매니페스트에 종속성 필수 생긴거 넣어주기
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
타겟 35이상인 경우.
res -value에
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Push" parent="Theme.AppCompat.Light.DarkActionBar"/>
</resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
id("org.jetbrains.kotlin.plugin.compose") version "2.0.20" // ⬅️ 이 줄 추가
}
안드로이드 스튜디오 버전 업하고
컴포즈? 이게 뭐 합쳐져서 명시적으로 선언해주어야한다나보다 저걸 추가해야함.
댓글
댓글 쓰기