日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

android?studio集成unity導出工程的實現_Android

作者:ithinking110 ? 更新時間: 2022-07-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");
            }
        }
    }

原文鏈接:https://blog.csdn.net/ithinking110/article/details/124753728

欄目分類
最近更新