Android 에 Unity 를 내장 하고 서로 이동 하 는 인 스 턴 스 코드 를 실현 합 니 다.
본 사례 는 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
안 드 로 이 드 에 유 니 티 를 내장 하고 서로 뛰 어 넘 는 것 을 실현 하 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 에 유 니 티 가 서로 뛰 어 넘 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.