Android内嵌Unity混合开发 + Unity与Android通信 + Touch的坑

概述

本篇文章主要是展示一般Android与Unity混合开发的过程,并且说一些本人在混合开发中踩到的奇怪的坑,如果有错误欢迎大家指正!
此外本文除了通信不会在代码进行解释,需要一定的Unity和Android基础~

一般来说Android内嵌Unity开发主要是把Unity作为Android界面的一部分进行交互或者内容展示,主要是以Android为主体框架。

现在普遍使用的把Unity塞进Android里的方法主要有两个:

  • 先在安卓创建项目,之后进行一系列配置,再创建Unity项目,开发之后export,把jar包塞进Android然后再进行一系列配置,再二次开发
  • 先在Unity创建项目,进行开发之后配置然后export出Android项目,直接在Android Studio中打开项目,进行配置之后可以二次开发

本人觉得第二种方法更加方便,而且对于我(Android基础比较薄弱)更容易理解,所以这次就以第二种方法为例子,展示一下整个过程。


Unity相关

首先是简易弄一个Unity项目:
在这里插入图片描述
主要是添加了一个手势识别移动相机的脚本,其中用到了Unity自带的TouchAPI,这里有一个坑是我踩到的,现在也没有解决,下面会提到。
然后几个Text展示与Android的交互信息,也有展示Touch的信息的。具体的函数绑定就不过多解释了。

这里分享一下我写的相机移动的脚本,最下面的函数主要是与AndroidHybrid的时候Unity的TouchAPI有关,后面会提到。
使用的相机移动脚本

主要的交互代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class HybridTest : MonoBehaviour
{
   
   
    private HybridTest instance;
    public HybridTest GetInstance()
    {
   
   
        instance = this;
        if (instance)
        {
   
   
            return instance;
        }
        return null;
    }

    public Text textShow;
    public Text countShow;
    public int count = 0;

    AndroidJavaClass jc;
    AndroidJavaObject jo;

    public int layoutHeight;
    public int layoutWidth;
    public Text textSize;


    private void Start()
    {
   
   
        jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        GetLayoutSize();
    }

    public void Add()
    {
   
   
        int sum = jo.Call<int>("Add", 2, 3
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值