Cute Running Puppy

mobile/android

android 버튼으로 unity 실행하기

R.silver 2023. 4. 12. 13:10
반응형

안드로이드 프로젝트에서 버튼을 누르면 유니티가 실행되도록 하는 방법 

요약 

1. 유니티에서 게임을 export 한다 

2. 안드로이드에서 export 한 게임을 Library로 추가한다 

3. 추가한 Library를 안드로이드 액티비티와 연결한다 


Unity에서 게임 export 하는 방법 

1. 유니티 접속 

2. file → build setting → android → player setting

player setting

위의 사진과 같이 설정해 준다 

패키지 이름 변경해주는 것도 잊지 말아야 한다 

3. x 로 페이지 나가기 

4. export 설정해서 추출하기 

unity export


export 한 게임을 안드로이드에서 library로 추가하는 방법 

  1. build.gradle (project)에 아래 코드 추가
  flatDir {
      dirs "${project(':unityLibrary').projectDir}/libs"
  }

 

2. build.gradle (app)에 아래 코드 추가

// dependency 아래 
implementation project(':unityLibrary')
implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])
// 추가 
minSdk 22 //== unity 에서 설정한 minSdk 값으로 설정 해야 한다

 

3. gradle.properties 에 아래 코드 추가 

#### unity
unityStreamingAssets=.unity3d, google-services-desktop.json, google-services.json, GoogleService-Info.plist

 

4. local.properties에 아래 코드 추가 

자신의 컴퓨터에 설치된 sdk, ndk의 위치를 작성해야 한다 

sdk.dir=C\:\\Users\\pebis\\AppData\\Local\\Android\\Sdk
ndk.dir=C\:\\Users\\pebis\\AppData\\Local\\Android\\Sdk\\ndk\\25.2.9519653

위 코드는 윈도우 주소 명기법, 맥은 다른 방식

 

5. setting.gradle에 아래 코드 추가 

// unity library 추가하는 코드 
include ':unityLibrary'
// export 한 게임의 unityLibrary 디렉토리 위치를 명시 - 컴퓨터에 따라 다름
project(':unityLibrary').projectDir=new File("C:\\CookAndroid\\Project\\UnityTest\\unityLibrary")

export 한 파일 안에 unityLibrary 디렉토리의 위치를 명시하는 것

 

6. snyc 맞추고 build 하면 unityLibrary가 추가된다 

추가된 unityLirary


추가한 library를 안드로이드 activity와 연결하는 방법 

1. unityLibrary/java 아래에 unityPlayerActivity가 존재 

이 액티비티를 안드로이드 액티비티와 연결하면 된다 

unityPlayerActivity

// 예시 코드 - java
// UnityHandlerActivity에서 버튼을 누르면 UnityPlayerActivity (게임) 실행 

public class UnityHandlerActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_unity_handler);

        Button buttonClick = findViewById(R.id.button);
        buttonClick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(UnityHandlerActivity.this, UnityPlayerActivity.class);
                startActivity(intent);
            }
        });
    }
}

결과 

참고 자료 

https://youtu.be/sf54tOAkmzU

 

반응형