# unity-封装接入指南

---

本文档是对 Unity 引擎游戏如何接入 4399 版署SDK 的说明   
<span style="color:red">**所用示例使用的游戏引擎是 Unity 2019.4.40f1c1, 不同版本注意兼容问题**</span>

下载 [unity封装示例](https://sdkftp.4399doc.com/external/operateBZ/2.4.4/operateBZ-unity-2.4.4+40.zip) ，解压得到如下结构

```
.
└── Assets
    ├── Plugins
    │   └── Editor
    └── Scripts
        ├── cn
        └── DemoCommons.cs
        └── OperateBzDemo.cs
```

简单说明`Assets`目录下的文件
- `Assets/Plugins/Editor/**/*.cs`：一些插件，主要用于修改依赖、游戏Activity配置、渠道标识等
- `Assets/Scripts/cn/**/*.cs`：对 java 接口的封装
- `Assets/Scripts/OperateBzDemo.cs`：接口调用示例


## 引入 SDK 

### 引入依赖

将`Assets`目录下的文件拷贝到游戏项目对应位置
- `Assets/Plugins/Editor/cn/**/*.cs`
- `Assets/Scripts/cn/**/*.cs`   

### 修改版本
当 SDK 接口不变时，一般只需要提升版本即可  

在`Assets/Plugins/Editor/cn/m4399/operateBz/OperateGradleDependencies.cs`中
```c#
namespace cn.m4399.operateBZ
{
    public class OperateGradleDependencies : AndroidGradleDependencies
    {
        override public int callbackOrder => 101;

        override public List<string> Dependencies()
        {
            var dependencies = new List<string>
            {
                "com.android.volley:volley:1.2.1",
                "com.android.support:support-v4:28.0.0",
                "cn.m4399.sdk:operateBZ:2.4.4"
            };
            return dependencies;
        }
    }
}
```
将`2.4.4`修改为最新即可。

### 按游戏修改
- `Assets/Plugins/Editor/cn/m4399/operateBZ/DemoAndroidManifestLaunchModeSingleTop.cs`   
  - 自定义文件名和类名
  - 修改`ActivityClass()`方法，返回游戏主`Activity`，例如:`com.unity3d.player.UnityPlayerActivity`
- `Assets/Plugins/Editor/cn/m4399/operateBZ/OperateChannelId4399.cs`
  - 自定义文件名和类名
  - 修改`ChannelId()`方法，返回实际的渠道标识

## 接口调用
参考调用示例`OperateBzDemo.cs`中的用法  
接口更具体说明参考 java  接入指南
