Android内嵌Unity开发简单的3D动态模型

Unity端就不仔细说了,下面主要讲Unity打包出来在Android studio后的操作.

DEMO地址:Stringf/UnityAndroid3DModel (github.com)

 

 

 

Unity打包Android项目:

  • unityLibrary包build.gradle里dependencies "implementation" 改为"api"

  • 创建一个activity去继承UnityPlayerActivity类在安卓APP中显示Unity场景。

    简单通信:

    Android调用Unity

    //向unity发消息
    UnityPlayer.UnitySendMessage(
      "Main Camera", //gameobject的名字
                                "ChangeColor", //调用方法的名字
                                ""  //参数智能传字符串,没有参数则传空字符串
    );

     

    Unity调用Android

    //通过该API来实例化java代码中对应的类
    AndroidJavaObject jc = new AndroidJavaObject("com.xxx.xxx.UnityPlayer");
    jo.Call("Test");//调用void Test()方法
    jo.Call("Text1", msg);//调用string Test1(string str)方法
    jo.Call("Text2", 1, 2);//调用int Test1(int x, int y)方法

    结合C++调用

    把Android端C++代码作为一个中转站,实现两边的数据引用于共享。

     

    Android端C++方法:

    //Unity中C#代码调用此方法
    int addInt(int a, int b)
    {
       return a + b;
    }

    在unity脚本中:

    //引用C 、C++中的方法 
    [DllImport("cppso")]
    private static extern int addInt(int a, int b);

    void Start()
    {    //调用方法中相加函数  
       i = addInt(1, 2);
    }

    DllImport("cppso") 内写的是在 AS 的 CmakeList.txt 里给so的命名。

  •  参考资料:https://www.cnblogs.com/zhxmdefj/p/13273560.html

 

 

posted @ 2022-10-28 14:25  Stringf  阅读(293)  评论(0)    收藏  举报