首頁 > 軟體

android studio整合unity匯出工程的實現

2022-05-15 22:00:08

最近需要將 unity 匯出工程 嵌入到 android 工程

環境

1,android studio 2021.1.1.1
2, unity 2021.2.4

新建android 工程

1,

2,

匯出 unity 工程

1,

2,匯出結果 unityLibrary 就是我們想要的結果 launcher 暫時用不上

3, 在android 工程中

4,選擇unitylibarary 目錄

5,

6,更改 app gradle組態檔:

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

     ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }


7,刪除manifest設定

8, 在 gradle.property 新增設定 不加這個會報錯

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

9,新增 value值 不加也會掛掉

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

10,呼叫

Button myBtn=  findViewById(R.id.button);

myBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this,UnityPlayerActivity.class);
        startActivity(intent);
    }
});

android c# 互相呼叫

android 呼叫 c#

package com.xingame.unitycallandroid;

import android.os.Bundle;
import android.widget.Toast;

import com.unity3d.player.UnityPlayer;

public class MainActivity extends UnityPlayerActivity {


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

    //unity呼叫Android
    public void UnityCallAndroid () {

        Toast.makeText(this,"unity呼叫android成功", Toast.LENGTH_LONG).show();

        AndroidCallUnity();
    }
    
    //android呼叫unity
    public void AndroidCallUnity () {

        //第1個引數為Unity場景中用於接收android訊息的物件名稱
        //第2個引數為物件上的指令碼的一個成員方法名稱(指令碼名稱不限制)
        //第3個引數為unity方法的引數
        UnityPlayer.UnitySendMessage("receiveObj", "UnityMethod", "This is args.");
    }

}

c# 呼叫 java

  private void OnBtnClickHandler()
    {
        using (jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")){
            using (jo = jc.GetStatic<AndroidJavaObject>("currentActivity")){
                jo.Call("UnityCallAndroid");
            }
        }
    }

到此這篇關於android studio整合unity匯出工程的實現的文章就介紹到這了,更多相關android studio unity匯出工程內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com