Skip to content

Commit

Permalink
feat: update sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
uhu committed Sep 6, 2024
1 parent 79a977c commit 75a80ee
Showing 1 changed file with 75 additions and 54 deletions.
129 changes: 75 additions & 54 deletions Design/WX_SDK.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,96 @@
# SDK 调用微信API
将 WX-WASM-SDK 这个目录拷贝至unity工程 Assets目录下,在主入口初始化,回调后再执行你的主逻辑
# SDK 调用微信 API

将 WX-WASM-SDK 这个目录拷贝至 unity 工程 Assets 目录下,在主入口初始化,回调后再执行你的主逻辑

```
WX.InitSDK((int code)=> {
// 你的主逻辑
});
```
});
```

API可以直接看`WX.cs`这个文件,里面有`详细注释说明`
API 可以直接看`WX.cs`这个文件,里面有`详细注释说明`

本 Unity 的 SDK 的 API 大体与[官网 API 文档](https://developers.weixin.qq.com/minigame/dev/api/)的 JS 版本 API 类似,使用时可以参考之。
如 JS 版的 banner 广告的调用如下:

本Unity的SDK的API大体与[官网](https://developers.weixin.qq.com/minigame/dev/guide/)的JS版本API类似,使用时可以参考之。
如JS版的banner广告的调用如下:
```js
var bannerAd = wx.createBannerAd({
adUnitId: "xxxx",
adIntervals: 30,
style: {
left: 0,
top: 0,
width: 600,
height:200
}
});
bannerAd.onLoad(() => {
bannerAd.show();
});
bannerAd.onError((res)=>{
console.log(res);
});
var bannerAd = wx.createBannerAd({
adUnitId: "xxxx",
adIntervals: 30,
style: {
left: 0,
top: 0,
width: 600,
height: 200,
},
});
bannerAd.onLoad(() => {
bannerAd.show();
});
bannerAd.onError((res) => {
console.log(res);
});
```
而对于Unity版的调用如下:
```csharp

var bannerAd = WX.CreateBannerAd(new WXCreateBannerAdParam()
{
adUnitId = "xxxx",
adIntervals = 30,
style = new Style()
{
left = 0,
top = 0,
width = 600,
height = 200
}
});

bannerAd.OnLoad(()=> {
bannerAd.Show();
});
bannerAd.OnError((WXADErrorResponse res)=>
而对于 Unity 版的调用如下:

```csharp
var bannerAd = WX.CreateBannerAd(new WXCreateBannerAdParam()
{
adUnitId = "xxxx",
adIntervals = 30,
style = new Style()
{
Debug.Log(res.errCode);
});

left = 0,
top = 0,
width = 600,
height = 200
}
});

bannerAd.OnLoad(()=> {
bannerAd.Show();
});
bannerAd.OnError((WXADErrorResponse res)=>
{
Debug.Log(res.errCode);
});
```
大体是将JS版中的`wx`替换为Unity版的`WX`,然后对应方法名首字母由小写改为大写,如`createBannerAd`就变为`CreateBannerAd`

大体是将 JS 版中的`wx`替换为 Unity 版的`WX`,然后对应方法名首字母由小写改为大写,如`createBannerAd`就变为`CreateBannerAd`

## 基础库

- [基础库介绍](https://developers.weixin.qq.com/miniprogram/dev/framework/client-lib/)
- [基础库版本分布](https://developers.weixin.qq.com/miniprogram/dev/framework/client-lib/version.html)

### 在 Unity 中兼容低版本基础库

使用`WX.CanIUse`可以判断当前版本是否支持该 API(仅支持 wx),例如想要判断当前环境`WX.ReportScene`是否可用,可以用`WX.CanIUse("ReportScene")`来判断

## 开发建议
### Demo API示例
使用示例我们会逐渐补充到[Demo](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo), 其中API项目为常见到使用范例,请优先查阅用法。

### Demo API 示例

使用示例我们会逐渐补充到[Demo](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo), 其中 API 项目为常见到使用范例,请优先查阅用法。

### 联调效率
如果开发者有简单的JS代码经验,建议先以JS方式直接修改minigame的JS代码进行调试,完成之后再使用C# SDK修改Unity工程:
1. 只保留game.js前面import部分,其余删除,即不运行游戏逻辑。

如果开发者有简单的 JS 代码经验,建议先以 JS 方式直接修改 minigame 的 JS 代码进行调试,完成之后再使用 C# SDK 修改 Unity 工程:

1. 只保留 game.js 前面 import 部分,其余删除,即不运行游戏逻辑。
2. 增加以下代码:

```js
const gl = GameGlobal.canvas.getContext('webgl')
gl.clear(gl.COLOR_BUFFER_BIT);
const gl = GameGlobal.canvas.getContext("webgl");
gl.clear(gl.COLOR_BUFFER_BIT);
```
3. 使用JS编写需要调试的API

3. 使用 JS 编写需要调试的 API

## 注意事项

1. 广告接口是否需要上线后才能调试
- 是的,需要上线并累计UV>1000才可以开通广告主

- 是的,需要上线并累计 UV>1000 才可以开通广告主

0 comments on commit 75a80ee

Please sign in to comment.