zoukankan      html  css  js  c++  java
  • [Unity移动端]SDK接入01:环境搭建和简单交互

    一.下载安装eclipse/adt/sdk,搭建android开发环境

    参考链接:https://blog.csdn.net/Amdrose/article/details/89811034

    注意在eclipse官网下载时最好选国内的镜像,用国外的可能会下载失败

    要注意的是,下载完sdk后不要把压缩包删了,因为后面可能会遇到更新sdk后SDK Manager打不开的情况,需要把压缩包的tools文件夹去替换掉现有的tools文件夹:

    https://blog.csdn.net/wang295689649/article/details/60960953

    同时也能解决下面的问题:

    在Eclipse中添加语法提示:https://jingyan.baidu.com/article/5553fa82a40d9865a3393469.html

    二.Unity与Android的简单交换

    参考链接:

    https://blog.csdn.net/huaixiaoniu/article/details/79225320

    https://blog.csdn.net/qq_16542775/article/details/46500837

    unity版本:Unity 2018.3.8f1

    eclipse版本:2020-03

    1.打开eclipse,File-New-Android Application Project,创建安卓工程,注意这里的设置要和unity一致,同時eclipse用的sdk也要把4.1和4.4下了

    2.一路往下点,创建好安卓工程。将unity安装目录EditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses下的classes.jar放到工程中的libs目录下(如果没该目录则创建一个)

    classes.jar提供了一些api,供android调用unity。然后对这个jar添加引用

    3.修改MainActivity.java

    android调用unity的方式为:

    UnityPlayer.UnitySendMessage,第一个参数为unity中go的名字,第二个参数为该go任一脚本中的方法名,第三个参数为该方法的参数

     1 package com.example.testsdk;
     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 }

    4.修改AndroidManifest.xml

    添加一行,<meta-data android:name="unityplayer.UnityActivity" android:value="true" />

    位置如下,不然在unity中Build时会报警告Unable to find unity activity in manifest. You need to make sure orientation attribut is set to portrait manually.

    5.将工程导出成jar包

    6.将安卓工程中的AndroidManifest.xml和res弄到unity中,创建bin和libs文件夹,bin放入刚才的jar包

    7.在unity中新建一个场景,新建Canvas,挂上下面的脚本,然后Build出apk就ok了

     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.在unity中Build时可能会有下面的提示

    解决方法:

    将下载的android-sdk_r24.4.1-windows.zip进行解压,复制粘贴弄成2份,1份给unity用,1份给eclipse用,即这样:

    确保是2份sdk后,上面的问题弹窗都选择"Update Android SDK"即可解决

    2.

  • 相关阅读:
    hdu 1241 Oil Deposits(dfs入门)
    hdu 1022 Train Problem I(栈)
    DFS中的奇偶剪枝(转自chyshnu)
    ural 1821. Biathlon
    hdu 1237 简单计算器(栈)
    hdu 1010 Tempter of the Bone(dfs+奇偶剪枝)
    1119. Metro(动态规划,滚动数组)
    hdu 1312 Red and Black(dfs入门)
    C#匿名委托和匿名方法使用小技巧
    ubuntu下netbeans乱码问题解决
  • 原文地址:https://www.cnblogs.com/lyh916/p/12584810.html
Copyright © 2011-2022 走看看