lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  201 随笔 :: 0 文章 :: 12 评论 :: 21万 阅读

参考链接:

https://blog.csdn.net/qq_38513810/article/details/82664947?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

 

Android Studio下载:

http://www.android-studio.org

 

unity版本:2018.3.8

Android Studio版本:3.6.2

 

1. 新建安卓工程,注意最低SDK最好和unity一样

 

2.新建一个library,注意此处的Package name要和unity的一致

 

3.在这个library下新建一个Activity

 

4.将unity安装目录\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes下的classes.jar复制,选中libs目录粘贴,导入这个jar包

 

5.修改library下的MainActivity.java和AndroidManifest.xml

复制代码
 1 package com.example.mylibrary;
 2 
 3 import android.os.Bundle;
 4 import com.unity3d.player.*;
 5 
 6 public class MainActivity extends UnityPlayerActivity {
 7 
 8     private int count = 1;
 9 
10     @Override
11     protected void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         //setContentView(R.layout.activity_main);
14     }
15 
16     public void UnityCallAndroid() {
17         UnityPlayer.UnitySendMessage("Canvas", "AndroidCallUnity", "hello" + count);
18         count++;
19     }
20 }
复制代码

 

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.mylibrary">
 4 
 5     <application>
 6         <activity android:name=".MainActivity">
 7             <intent-filter>
 8                 <action android:name="android.intent.action.MAIN" />
 9 
10                 <category android:name="android.intent.category.LAUNCHER" />
11             </intent-filter>
12         </activity>
13     </application>
14 
15 </manifest>
复制代码

 

6.选中library,Build一下,然后将生成的这3个东西放到unity中

 

7.添加这个脚本到Canvas上,然后打包,注意包名要一致,还有Build System的设置

复制代码
 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using UnityEngine.UI;
 5 
 6 public class TestSDK : MonoBehaviour
 7 {
 8     AndroidJavaClass jc;
 9     AndroidJavaObject jo;
10     public Text text;
11 
12     // Start is called before the first frame update
13     void Start()
14     {
15         jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
16         jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
17     }
18 
19     public void OnBtnClick()
20     {
21         jo.Call("UnityCallAndroid");
22     }
23 
24     public void AndroidCallUnity(string str)
25     {
26         text.text = str;
27     }
28 }
复制代码

 

问题:

1.

解決:

https://blog.csdn.net/burmem/article/details/80447642?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

 

2.Gradle下载速度慢

解决:

https://www.jianshu.com/p/338860fc4921

posted on   艰苦奋斗中  阅读(696)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示