Unity 调用安卓方法

關於Unity與安卓交互的方法,網上的教程很多,但是大部分要繼承UnityPlayerActivity 額大概是這個類吧,領會精神。

那麽問題來了,加入我們已經有一個SDK繼承了怎麽辦。

解決思路是這養的,我們在C#中獲取Unity的acitvity,然後當作參數傳入安卓方法:

Unity:

AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject unityActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
    using (AndroidJavaObject jo = new AndroidJavaObject("com.klondike.solitaire.spider.Classic.SDKBridge"))
    {
        jo.Call("PluginCall", unityActivity);
        Debug.Log("调用安卓方法");
    }
Java:
public void PluginCall(Activity activity)
    {
        Log.d("PluginCall","CALLALLLLL");
    }
    
    //通过这种方法,可以不必在MainActivity修改,直接启动相关SDK
安卓端:
MainActivity.java
public void ShowMsg(Activity activity,String msg)
    {
        Intent intent = new Intent(activity.getBaseContext(),HelloWorld.class);
        intent.putExtra("type", msg);
        activity.startActivity(intent);
    }
    
HelloWorld.java
public class HelloWorld extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//        TextView showMsg = (TextView) findViewById(R.id.android_show);
        String type = this.getIntent().getStringExtra("type");
//        showMsg.setText(type);
    }
}
額 后米那是我在嘗試模仿SDK的方法通過不添加activity的子類進行view的跳轉和變化,從而徹底拜托對包名的依賴,做出通用的SDK,希望有大佬路過指導一下哦 PS:賣萌、暖床、打王者我都會哦 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值