Android 에 Unity 를 내장 하고 서로 이동 하 는 인 스 턴 스 코드 를 실현 합 니 다.

11581 단어 AndroidUnity점프
설명 하 다.
본 사례 는 Unity 2019.3.8f 1 과 AndroidStudio 3.6.3 을 사용 합 니 다.
원본 git 주소:https://github.com/guochaolinDLKF/UnityAndAndroid.git
다음은 효과.

Unity 프로젝트 만 들 기
우선 Unity 빈 항목 만 들 기
빈 필드 에 유 니 티 Object 라 는 빈 노드 이름 을 만 듭 니 다.주의:이 이름 은 안 드 로 이 드 에서 유 니 티 에 게 메 시 지 를 보 낼 때 API 에서 전달 해 야 할 인자 입 니 다.
그리고 노드 에 스 크 립 트 를 추가 합 니 다.스 크 립 트 의 코드 는 다음 과 같 습 니 다.

using UnityEngine;
using UnityEngine.UI;
 
public class Test : MonoBehaviour
{
  public Button btn;
  AndroidJavaObject jo;
  private void Awake()
  {
    AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
    btn.onClick.AddListener(CallAndroid);
  }
  public void CallAndroid()
  {
    jo.Call("ShowToast");//  Android   
    Debug.Log("    ");
    System.Console.WriteLine("    ");
  }
 
  void fromAndroid(string str)
  {
    Debug.Log("       : " + str);
    System.Console.WriteLine("       : " + str);
  }
}
그리고 Build Settings 에서 플랫폼 을 Android 로 전환 합 니 다.

위의 그림 의 지시 에 따라 조작 하 다.
그리고 Player Settings 에 Other Settings 의 PackageName 을 설정 합 니 다.이것 은 Android 의 패키지 이름과 일치 해 야 합 니 다.일치 하지 않 으 면 안 됩 니까?좋아,어쨌든 내 가 해 볼 수 있어.내 가 사용 하 는 휴대 전 화 는 샤 오미 9pro 야.다른 기종 은 해 본 적 이 없어.
마지막 으로 Minimum API Level 을 AndroidStudio 와 일치 하도록 설정 합 니 다.이것 이 일치 하지 않 으 면 AndroidStudio 에서 발표 할 때 오류 가 발생 할 수 있 습 니 다.

사인 은 요?설정 하 시 겠 습 니까?나 는 여기에 설정 하지 않 았 지만,이전에 설정 해도 정상적으로 운행 할 수 있 으 니,여 기 는 서명 과 큰 관계 가 없 을 것 이다.
내 것 도 설정 하지 않 았 으 니 다음 그림 을 보 세 요.

다음은 첫 번 째 옵션(Edit->Preferences->External)에 Android 의 JDK,SDK 를 설정 해 야 합 니 다.JDK 는 7 이나 8 이 좋 고 9 가 아 닌 것 이 좋 습 니 다.어쨌든 저 는 8 입 니 다.

그 다음 에 Build Settings 의 Export 를 클릭 하여 Android 에 필요 한 항목 을 내 보 냅 니 다.내 보 낸 폴 더 와 Unity 프로젝트 의 관 계 를 내 보 냅 니 다.제 블 로그 튜 토리 얼 을 처음 보고 따라 한다 면 제 폴 더 의 이름과 구조 에 따라 하 십시오.AndroidStudio 에 서 는 경로 에 따라 Unity 가 발표 한 안 드 로 이 드 프로젝트 를 도입 해 야 하기 때 문 입 니 다.

유 니 티 프로젝트 디 렉 터 리 와 안 드 로 이 드 프로젝트 디 렉 터 리 간 의 관계

이로써 유 니 티 설정 이 완료 되 었 습 니 다.
안 드 로 이 드 프로젝트 만 들 기

NoActivity->다음 선택


생 성 완료 후 Unity Build 에서 나 온 가방 가 져 오기 시작 합 니 다.
메모:전 제 는 만들어 진 빈 Android 프로젝트 아래 에 오류 가 없어 야 합 니 다.아래 그림 과 같 습 니 다.

그리고 settings.gradle 파일 추가 코드 를 선택 하 십시오.

include ':unityLibrary'
project(':unityLibrary').projectDir = new File('..\\UnityProject\\androidBuild\\unityLibrary')

위 코드 에 new File('유 니 티 가 발표 한 프로젝트 의 경 로 를 표시 합 니 다')

선택 하 다. build.gradle(모듈:app)종속 성 추가

 implementation project(':unityLibrary')
  implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])

SO 라 이브 러 리 구 조 를 추가 합 니 다.추가 하지 않 으 면 구 축 된 app 이 실 행 될 때 반 짝 이 고 오류 가 발생 합 니 다.can not find'libmain.so'
아니면 이 build.gradle 에서

ndk {
      //      SO   ,     so      ,        
      abiFilters 'armeabi', 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
    }

선택 하 다. build.gradle(Module:NativeAndroidApp)

allprojects {
  repositories {
    google()
    jcenter()
 
    // Add Code
    flatDir {
      dirs "${project(':unityLibrary').projectDir}/libs"
    }
    // End
  }
}

Native AndroidApp 을 선택 한 strings.xml 덧붙이다

 <string name="game_view_content_description">Game view</string>

마지막 으로 AndroidStudio 의 SyncProject 를 클릭 하면 컴 파일 을 거 쳐 왼쪽 에 유 니 티 가 발표 한 프로젝트 의 Moudles 가 나타 납 니 다.


이로써 안 드 로 이 드 설정 완료
안 드 로 이 드 코드 작성
가방 이름 에서 오른쪽 단 추 를 누 르 면 Activity 두 개 를 만 듭 니 다.아래 그림 에서 저 는 이미 만 들 었 습 니 다.


MainActivity

package com.Wish.UnityProject;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_unity);
    Button btn=(Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener(){
      @Override
      public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, UnityActivity.class);
        startActivity(intent);
      }
    });
  }
}
단 추 를 만 들 고 단 추 를 누 르 면 Unity 로 이동 합 니 다.
.xml 파일 을 더 블 클릭

아래 그림 의 Button 을 흰색 상자 안 으로 끌 어 옵 니 다.

단추 설정

그리고 메 인 액 티 비 티 로 돌아 가면 오류 가 없 을 거 예요.

UnityActivity 클래스 만 들 기

package com.Wish.UnityProject;
 
import android.content.Intent;
import android.os.Bundle;
 
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
 
public class UnityActivity extends UnityPlayerActivity {
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    testSendMessage();
  }
  //  unity    
  public void testSendMessage()
  {
    //      Unity          ,                       ,             
    UnityPlayer.UnitySendMessage("unityObject", "fromAndroid", "test");
  }
  //   unity  
  public void ShowToast()
  {
    // unity           
    Intent intent = new Intent(this, MainActivity.class);
    this.startActivity(intent);
  }
}
유 니 티 플레이어 액 티 비 티 가 빨간색 으로 변 하면 도입 되 지 않 았 다 는 뜻 이다.유 니 티 플레이어 액 티 비 티 라 는 코드 에 마우스 커서 를 올 리 고 키보드 Alt+Enter 키 를 누 르 면 자동 으로 도입 된다.
app 아래 AndroidManifest.xml 파일 설정

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.Wish.UnityProject">
 
  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
      android:name="com.Wish.UnityProject.MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
 
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
    <activity android:name="com.Wish.UnityProject.UnityActivity">
 
    </activity>
 
  </application>
 
</manifest>
그 중에서 아래 코드 가 있 는 activity 는 프로그램 이 처음에 들 어간 인터페이스,즉 안 드 로 이 드 인터페이스 입 니 다.

<action android:name="android.intent.action.MAIN" />
 
 <category android:name="android.intent.category.LAUNCHER" />
유 니 티 라 이브 러 리 아래 AndroidManifest.xml 파일 수정


이로써 안 드 로 이 드 코드 는 이미 다 썼 습 니 다.
안 드 로 이 드 앱 을 핸드폰 으로...
메뉴 표시 줄 에서 Build->RebuildProject 구축 항목 을 클릭 하 십시오.

휴대 전 화 를 컴퓨터 에 연결 하고 USB 디 버 깅 모드 의 전송 파일 모드 로 바 꿉 니 다.
아래 그림 단 추 를 누 르 면 휴대 전화 에 발표 되 고 자동 으로 실 행 됩 니 다.

참고 글:
https://www.cnblogs.com/zhxmdefj/p/13273560.html
https://blog.csdn.net/mediary/article/details/103050516
https://blog.csdn.net/qq_37310110/article/details/98056148
안 드 로 이 드 에 유 니 티 를 내장 하고 서로 뛰 어 넘 는 것 을 실현 하 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 에 유 니 티 가 서로 뛰 어 넘 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기