IT技术之家

首页 > 移动

移动

Uinty3d 工程导入 Android Studio_.'~'._unity导入android studio

发布时间:2022-10-24 17:32:31 移动 0次 标签:unity android studio
Uinty3d 工程导入 Android Studio,已成功实现。...

目录

1.Unity3d项目导出

2.Android Studio导入

?3.配置

?4.引用(显示)


1.Unity3d项目导出

点击File->Bulid Settings 选择Android和项目包导出形式进行项目导出

导出时可能会遇到问题,注意名字和项目包名一致

导出后的文件结构如下

2.Android Studio导入

随意建立一个空的Android Studio项目即可

导入

1.最简单的简单的导入方式是直接选择Unity导出的项目包里的 unityLibrary 文件进行导入。

2.Android Studio可能因为版本问题而存在导入Moudle包的BUG(我就是,2020.3.1版本,导入时不能点击FInish),因此需要自己手动导入。

1)添加导入的包名,格式为:? ? ,':包名'? ? ,此时不要点 Sync Now

?2)将需要导入的包(我这里是 unityLibrary 文件)复制到Android Studio的项目中

?3)重启Android Studio,编译。

如果有报错? unityStreamingAssets 未找到的问题,在图中文件中加入下面这句即可

unityStreamingAssets=.unity3d, google-services-desktop.json, google-services.json, GoogleService-Info.plist

?如果还有其他报错则可能需要修改我们导入的包中的对应文件的SDK版本适配自己的Android Studio的问题,将其修改为适配AS的版本即可。

?编译成功的话就成功导入了。

3.为 Android 添加 unityLibrary 的引用?,按图点击进入选择

按步点击之后勾选自己需要导入的包后确定即可。

?3.配置

在app的 strings.xml 文件中添加下面代码

<string name="game_view_content_description">Game view</string>string>

在app的build.gradle 文件中分别添加下面代码

 ndk { abiFilters 'armeabi-v7a' }


implementation project(':unityLibrary')
implementation fileTree(
        dir: project(':unityLibrary').getProjectDir().toString()+('\\libs'),include:['*.jar']
)
???????

将导入的 unityLibrary 包中的AndroidManifest.xml 文件中的 <application>...?</application>部分注释掉。

?4.引用(显示)

1.创建unity继承类并通过一个Activity 去显示 Unity 渲染的场景,在 MainActivity 中通过 Intent 跳转到负责 Unity 场景显示的类中去。

在 app 的 java 文件夹下建立两个新的 java 类,如图

?代码如下:


import com.unity3d.player.UnityPlayerActivity;

public abstract class OverrideUnityActivity extends UnityPlayerActivity
{
    public static OverrideUnityActivity instance = null;

    abstract protected void showMainActivity(String setToColor);

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        instance = this;
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        instance = null;
    }
}
import com.unity3d.player.UnityPlayerActivity;

public class MainUnityActivity extends UnityPlayerActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

2.在app的 AndroidManifest.xml 文件夹下声明 MainUnityActivity

3.在 MainActivity 通过?Intent 跳转到 Unity 场景

至此,就可以将app打包在android系统上运行了,因为这里是在?MainActivity?直接使用 Intent 跳转到Unity场景,因此,打开运行app会直接全屏显示Unity场景。

下面是我参考的大神的博客,第二篇里面也有怎么窗口化显示Unity场景:

将Unity工程导入Android Studio中(Unity、AS混合开发)_一碗馄饨面的博客-CSDN博客

Android/iOS内嵌Unity开发示例 - zhxmdefj - 博客园