Unity3d与Android交互总结

前段时间一直在做Unity 与 Android 的交互工作,查了大量了资料,Unity 调用加java 是通过AndroidJavaObject来实现,而java 调用 Unity则通过UnityPlayer.UnitySendMessage这种方式

Unity调用java就不说了,只是个函数接口,但是java 掉用 Unity 如果有循环掉用的话UnitySendMessage的效率就相当的堪忧

还有种方法是Java 中使用接口类,在Unity中可以继承,这种方法的效率要高出很多,不多说直接上代码 . 

Java代码如下

package com.untiy.test;

public interface  TestListener

 {
public void OnTest();
}


public class Test
{
private TestListener mListener;

public void Init(TestListener listener)
{
mListener = listener;

OnTest()
}
public void OnTest()
{
mListener.OnTest();
}

}


Unity代码如下 

public class Test : MonoBehaviour
{
    private class TestListener : AndroidJavaProxy
    {
        public TestListener () : base(" com.untiy.test.TestListener")

        {

public void OnTest()

{

Debug.Log("OnTest");

}

        }

    }


    private AndroidJavaObject javaObj = null;


    private AndroidJavaObject GetJavaObject()
    {
        if (javaObj == null)
        {
            javaObj = new AndroidJavaObject("com.untiy.test.Test");
        }


        return javaObj;
    }

   private TestListener _TestListener;

   void Start()

   {

        if (_TestListener== null)
            _TestListener= new TestListener ();

        GetJavaObject().Call("Init", _TestListener);
   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值