導航:首頁 > 操作系統 > unity與android通信

unity與android通信

發布時間:2023-02-04 03:12:27

❶ 如何進行Unity3D與android消息傳遞

1.Unity工程導出為Android Studio工程
(我個人用的U3D版本是5.1.1,已經支持直接將Unity工程導出為AS工程了,以前的版本我不敢保證.)

首先你要寫好Unity工程裡面的腳本,包括你希望Android調用的方法和調用Android方法的方法,這個在下面會有詳細敘述;接下來導出AS工程,方法是:
File裡面的Build Settings -> 平台選擇Android,在Player Setting裡面設置API版本和包名(包名很重要) -> 點擊Build Setting中的Google Android Project復選框 -> Export

2. AS打開導出的工程

首先隨便打開一個AS工程,然後FIle -> New -> Import Project -> 選剛才導出來的工程 -> 等待Gradle -> 以此工程為基礎繼續開發Android代碼

❷ Unity連接Android設備時的授權

授權是在設備已經開機且與電腦連接的狀態下,設備屏幕上顯示一個授權對話框,並且可以勾選一直信任,這樣以後設備再連接該電腦時就不需要再次授權了。

但授權對話框出現可能發生在兩個時機,具體何時本人不確定,需要自己排查。

剛剛把設備連接到電腦的時候。

連好設備後,在unity的Build Settings中,選中Platform中的Android,然後點Run Device一行中的Refresh,此時,設備端可能會顯示授權對話框。授權成功後,就可以在列表中看到連接的設備了。

❸ Unity3d與Android互相通信

-classes.jar
-UnityPlayerActivity.java

【注意19版本的unity把UnityPlayerActivity分離了,不在classes.jar包裡面了】

app-debug.aar為新文件名

C:UsersWinDesktopapp-debug 文件夾路徑

末尾 / . 不要漏掉

此處操作完即為最終需要導入到unity中的包

要使用真機才能跑哦

❹ Unity與Android的通信問題:Unity中調用Android的jar包後,Unity生成的apk安裝後找不到可運行的程序...

將Unity3D安裝目錄下的Unity\Editor\Data\PlaybackEngines\androidplayer\release\bin\classes.jar
拷貝到Android工程的libs文件夾里:
Unity3D:[3]Unity3D與Android交互的問題
右鍵單擊classes.jar選擇Build Path裡面的Add to Build Path:
Unity3D:[3]Unity3D與Android交互的問題
Unity3D:[3]Unity3D與Android交互的問題
在MainActivity中繼承UnityPlayerActivity。刪除多餘的方法,僅保留onCreate方法中的super.onCreate語句,如下:
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
添加要在unity中調用的方法,這里添加一個帶一個參數的方法StartActivity來調用Android的Activity從而運行Android的代碼。還添加了一個有返回值的方法GetInt,用來測試在Unity中獲取android中方法的返回值。(貌似只能有一個UnityPlayerActivity,而且這個Activity不能是調用第三方SDK方法的Activity。UnityPlayerActivity只能作為Unity和Android交互的一個介面,在這裡面再去調用其他的Activity)
package com.example.unitydemo;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import com.unity3d.player.UnityPlayerActivity;

public class MainActivity extends UnityPlayerActivity {
private Context mContext = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
}

public void StartActivity(String name) {
Intent intent = new Intent(mContext, WelcomeActivity.class);
intent.putExtra("name", name);
this.startActivity(intent);
}

public int GetInt()
{
return 1;
}
}

❺ 如何進行Unity3D與Android消息傳遞

Unity與Android的相互調用及消息傳遞主要採取中間件的方式。

幫你歸類一下,大致如下:

  1. 創建Java項目

  2. 在Java項目中引入Unity提供的classes.jar包

  3. 編寫你自己的Java文件,同時引入com.unity3d.player.UnityPlayerActivity包

  4. 修改Manisest.xml文件

  5. 將項目導出Jar文件

  6. 在Unity中創建Plugins/Android目錄,將導出的Jar文件和Manisest.xml復制到Android目錄下

  7. 修改Unity中導出項目的包名

  8. 在項目中創建並實例化AndroidJavaClass對象,並實例化參數com.unity3d.player.UnityPlayer包

  9. 同時創建並實例化AndroidJavaObject對象,實例化參數為currentActivity

  10. 最後可以使用實例化的AndroidJavaObject.Call來調用Java中寫好的公有方法。

❻ 如何進行Unity3D與Android消息傳遞

  1. Unity工程導出為Android Studio工程
    首先要寫好Unity工程裡面的腳本,包括希望Android調用的方法和調用Android方法的方法,這個在下面會有詳細敘述;接下來導出AS工程,方法是:
    File裡面的Build Settings -> 平台選擇Android,在Player Setting裡面設置API版本和包名(包名很重要) -> 點擊Build Setting中的Google Android Project復選框 -> Export
    2. AS打開導出的工程
    先隨便打開一個AS工程,然後FIle -> New -> Import Project -> 選剛才導出來的工程 -> 等待Gradle -> 以此工程為基礎繼續開發Android代碼
    3. Android 調用 Unity 腳本中的方法
    先對Unity腳本進行一點說明,以C#為例:
    在OnStart()裡面要寫入
    this.name = "A"

    某個要調用的方法設置為public類型,名稱為B,參數為C
    在一個Extend UnityPlayerActivity的Activity里,直接使用
    UnityPlayer.UnitySendMessage("A","B","C");
    就可以調用腳本中的方法了.

    4.Unity腳本調用Android方法

    要知道的是,在Unity腳本里寫調用安卓方法的時候,這個方法還不需要存在,也不需要把安卓的代碼壓成jar包放進Unity工程.但是,要調用的方法必須是靜態方法
    剛說過的導出工程時候的包名很重要,假設是com.hu.solare;再假設在工程被導入到AS後,你在這個包中編寫了MainActivity.class,其中包含靜態方法onCall(String str).則你可以在Unity腳本中提前寫好:
    AndroidJavaClass jc = new AndroidJavaCalss("com.hu.solare.MainActivity");
    jc.callStatic("onCall","String")

    即可調用onCall方法

❼ 如何進行Unity3D與Android消息傳遞

1.Unity工程導出為Android Studio工程
首先你要寫好Unity工程裡面的腳本,包括你希望Android調用的方法和調用Android方法的方法,這個在下面會有詳細敘述;接下來導出AS工程,方法是:
File裡面的Build Settings -> 平台選擇Android,在Player Setting裡面設置API版本和包名(包名很重要) -> 點擊Build Setting中的Google Android Project復選框 -> Export
2. AS打開導出的工程
首先隨便打開一個AS工程,然後FIle -> New -> Import Project -> 選剛才導出來的工程 -> 等待Gradle -> 以此工程為基礎繼續開發Android代碼
3. Android 調用 Unity 腳本中的方法
這里首先對Unity腳本進行一點說明,以C#為例:
在OnStart()裡面要寫入
this.name = "A"
某個你要調用的方法設置為public類型,名稱為B,參數為C
在一個Extend UnityPlayerActivity的Activity里,直接使用
UnityPlayer.UnitySendMessage("A","B","C");
就可以調用腳本中的方法了.
4.Unity腳本調用Android方法
首先你要知道的是,在Unity腳本里寫調用安卓方法的時候,這個方法還不需要存在,你也不需要把安卓的代碼壓成jar包放進Unity工程.
剛說過的導出工程時候的包名很重要,假設是com.hu.solare;再假設在工程被導入到AS後,你在這個包中編寫了MainActivity.class,其中包含方法onCall(String str).則你可以在Unity腳本中提前寫好:
AndroidJavaClass jc = new AndroidJavaCalss("com.hu.solare.MainActivity");
AndroidJavaObject jo=jc.GetStatic<AndroidJavaObject>("currentActivity");
jc.Call("onCall","String")
即可調用onCall方法.

❽ unity3d與android交互的sdk怎麼接

1、打開Android Studio——>configure——Android SDK。

注意事項:

SDK可能附帶了使其不能在不兼容的許可證下開發軟體的許可證。例如產品供應商提供一個專有的SDK可能與自由軟體開發抵觸。

❾ 如何進行Unity3D與Android消息傳遞

UnityTestActivity.java 主Activity ,提供一個介面方法StartActivity(),它是由Unity中調用
package com.xys;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import com.unity3d.player.UnityPlayerActivity;

public class UnityTestActivity extends UnityPlayerActivity {
/** Called when the activity is first created. */

Context mContext = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;

}

public void StartActivity0(String name)
{
Intent intent = new Intent(mContext,TestActivity0.class);
intent.putExtra("name", name);
this.startActivity(intent);
}

}
接著是TestActivity.java 打開這個界面後,程序將在這里向Unity發送消息。
package com.xys;

import com.unity3d.player.UnityPlayer;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class TestActivity0 extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TextView text = (TextView)this.findViewById(R.id.textView1);
text.setText(this.getIntent().getStringExtra("name"));

final EditText edit = (EditText)this.findViewById(R.id.edit);

Button close = (Button)this.findViewById(R.id.button0);
close.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
//注釋1
UnityPlayer.UnitySendMessage("Main Camera","messgae",edit.getText().toString());
TestActivity0.this.finish();
}
});
}

}

❿ Unity與Android交互

2、Android 書寫一個Activity類繼承UnityPlayerActivity

3、AndroidManifest.xml 配置Activity的meta-data屬性

4、項目類型配置成com.android.library 並編譯出來aar包

5、解壓aar包 提取如下文件一起導入到Unity項目Assets/Plugins目錄下

6、場景中添加Button組件 並創建一個C#腳本綁定到Button的父布局Canvas上

7、用VS編輯AndroidControl腳本

8、改Button位置 並且綁定Onclick對應的方法:

9、調試:加斷點、附加unity程序調試,unity運行

10、編譯:插入手機

11、真機演示

閱讀全文

與unity與android通信相關的資料

熱點內容
不用下載就能看的視頻網站 瀏覽:330
我一個神偷硬生生把國家偷成強國 瀏覽:600
樣子是五歲小男孩和郭富城演的 瀏覽:460
韓國演員也美娜 瀏覽:898
陸離是哪部小說的主角 瀏覽:49
華娛開局佟麗婭 瀏覽:17
男男生子小說現代攻姓章 瀏覽:541
永旺星星影院影訊 瀏覽:328
李彩潭巔峰之作 瀏覽:86
彎村紅羊電影 瀏覽:157
我和我的家教老師韓國 瀏覽:102
日本經典高分電影 瀏覽:627
動物真人版電影鳳凰定製 瀏覽:360
海客雲伺服器一個月怎麼算的 瀏覽:161
黑道小說主角外號瘋子 瀏覽:309
書包cc網電子書txt免費下載 瀏覽:354
帶一點黃的小說 瀏覽:257
法國倫理電影小僕人 瀏覽:187
印度搶打火機的電影叫什麼 瀏覽:291
求在線觀看資源2020年 瀏覽:946