导航:首页 > 操作系统 > 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通信相关的资料

热点内容
大尺很色床戏电影 浏览:432
郑州阿里程序员 浏览:131
韩国爱情推理片全部复制 浏览:461
台湾影视国语 浏览:570
穿越之我那三千个兄弟训诫 浏览:485
连母亲都收的小说 浏览:839
叶子媚演过尺较大的电影在线观看 浏览:831
app反感怎么解决 浏览:332
极光设置app是什么 浏览:79
app广告怎么赚钱 浏览:917
男主被系统控制的小说下载 浏览:951
钛2电影高清完整版 浏览:440
linux启动项目命令 浏览:531
乳山迷雾txt全文阅读全文小说 浏览:885
vm同步命令 浏览:14
安卓转移到ios王者荣耀怎么登 浏览:955
工业压缩机品牌 浏览:182
苹果系统怎么更改app的图标 浏览:668
泰剧女同电影 浏览:435
人造变异女的电影 浏览:237