新人关于Unity如何使用咱们LeanCloud的问题请教!

HI,我是Unity游戏开发者,目前游戏已经上架了Ios。我的需求是想用咱们强大的后端云实现排行榜以及账户的邮箱验证功能。
我在阅读网站的相关文档以及论坛中大家关于unity的支持的文章后有如下几个疑惑。

一、关于我改下载哪些文件的问题
我的unity是2018版本,我该去哪里下载Sdk?
1、在https://forum.leancloud.cn/t/unity/20124这个帖子里,我找到了一个下载链接,关于增加了排行榜功能的推荐下载是19年0409版本的
https://github.com/leancloud/unity-sdk/releases/tag/v20190409.1
2、我在咱们的文档指南,unity的安装指南版块https://leancloud.cn/docs/sdk_setup-dotnet.html,找到的下载链接是
https://releases.leanapp.cn/#/leancloud/unity-sdk/releases,是20200116.1版本,这里的操作说明有一个是”在 Visual Studio 执行安装 nuget 依赖:“
3、而后,我在https://forum.leancloud.cn/t/unity-sdk-3-5-4-6/22742这个帖子中发现了工作人员提到了2018针对unity的新sdk指向了链接https://github.com/leancloud/csharp-sdk,里头的文件描述有:”从 Release 下载指定版本 SDK,暂不支持 Nuget 方式。“
所以,我很困惑,我该下载哪个SDK
二、下载了SDK如何导入呢
1、我发现有执行nuget的和不支持nuget的情况,该如何操作呢?
2、下载到的包是否直接导入到工程的Plugins文件夹下就行了?使用代码的时候引用命名空间就好了?
三、我在unity中的文档中,还未找到如何验证游戏中用户绑定的邮箱的方法,请问我该如哪里获取最新的相关说明?

第一次体验后端云的方式,首选了咱们的产品来尝试,本身还是个初学者,问题可能比较低端和繁多,辛苦工作人员帮我一起,把我的游戏和我们的产品完美结合起来。

同时也祝愿我们的产品越来越强大,要是文档中能有更细的一些说明或者有unity的相关视频,就更加好了。相信一定能够吸引更多的unity从业者的青睐!

你好,如果是新开发者,欢迎使用我们新版的 SDK。
仓库地址,请到 releases 里下载所需服务的 SDK,Unity 用户请下载「以 -Unity 结尾的库」即可,解压后即 Plugins 文件夹,拖拽到 Unity Editor 里即可。

CSharp-SDK-Unity-Demo 仓库是基于新版 SDK 写的 Unity Demo,包括用户登录,对象存储,排行榜,聊天等示例,可以参考一下。

邮箱验证示例代码

SDK 工程都有相对于的单元测试,可以当做用法示例参考。请参考 README

收到,非常感谢细心的回复~

你好,请问新版本的sdk,.net设置是用标准2.0就好了么,还是要设置为4+呢?

我们的 SDK 是基于 .net standard 2.0 开发的,所以是符合 .net standard 2.0 标准的。
Unity 中提到的 .net 4.x 应该是 .net framework 4.x 版本吧?
.net standard 2.0 应该是更普遍的标准。

好嘞,明白了,谢谢!
下载的文件中,有个UnityLibs,里头是个json的dll,这个也是直接放在plugins文件夹下么?
之所以这么问是疑问readme里有个描述是: // Json 库,由于 Unity iOS AOT 的原因,不能使用 .Net Standard 2.0 版本

我在想这个跟我们上文提到的standard 2.0是否冲突,我该如何理解这一点

JSON.Net 库的官方 Nuget 的 .net standard 版本,会有一些特性是 Unity iOS 不支持的,所以换了一个其他版本的 JSON.Net 库。
这个不需要开发者关注,适配的问题 SDK 会保证的。
如果只是使用 SDK(不自行编译)的话,只需要在 releases 下载对应的库即可

好的,谢谢您耐心的解答!

大佬,我尝试学习新版本sdk中的方法,但是因为阅读理解能力偏弱遇到了一些困难。

比如https://github.com/leancloud/csharp-sdk/blob/master/Storage/Storage.Test/ObjectTest.cs,这个链接下提供了丰富的方法
(1)、我在使用命名空间using NUnit.Framework;时会提示错误,我猜可能缺少文件包。
(2)、页面里的方法,对于第一次接触的人来说,如果只从字面上理解我担心会错误,如果能给些注释就好了。
比如:DeleteAll这样的一眼就知道是删除所有,而”Unset“,这个方法具体实现的过程是做什么的,新手我理解起来就有点够呛。

不知是否会考虑后续针对新版本unity的指南,增加些中文或者英文的注释指引呢?

比如我创建了一个表并已成功在后台查看到


但是我想去把他的这个字段intValue取回来的时候,按照页面上推荐的Find的方法提示类型错误。

(1)我该如何简单的获取到这个值的信息呢?
(2)此外,如果我GetValue方法的返回值类型如果不是void而是Tast,外部该如何调用呢,
(3)如果我要update这个属性该怎么写呢
请大佬帮帮我。

查询代码参考

这是 C# 语法的问题,可以了解一下 .net 的 TPL 方式。
一般推荐是 Task GetValue() 这种格式。

更新属性代码参考

每个服务都有对应的单元测试工程,很多用法都可以在其中找到,如 Storage.Test

这个是单元测试框架,开发者在使用 SDK 时不需要导入

这里有份 API 文档

收到,谢谢您细心的回复,对我帮助很大!

大佬你好,我花了很多时间去比对新旧版本
(1)技术文档中原来版本针对unity的说明(虽然知道有新版本,但是原版本的中文加案例的方式,能让我更快掌握如何使用。)https://leancloud.cn/docs/unity_guide.html#hash632314851
(2)新版本应该是基础比较扎实的同行,或使用过原版本的朋友应该很快能掌握。

十分抱歉,我能否再跟您请教一下
(a)我在旧版本的说明中看到,如果我查询一个对象可以用如下表达方式
AVQuery query = new AVQuery("GameEquip");
AVObject equipment = await query.GetAsync("5c4147887565716f2485fc89");
Debug.Log(equipment.ObjectId);

(b)但是在unity新版本的sdk中,我尝试用GetAsync,发现没有这个方法。

(c)所以我该如何把我已经创建好的对象获取到呢
我尝试使用过说明文档中的Find
LCQuery query = new LCQuery("Hello");
query.Limit(2);
List list = await query.Find();

可是当我输出list[0].intValue时,阅读了文档和案例后,还是找不到该怎么取,您能帮帮我么,我是不是漏了什么?十分抱歉,自知问题很低端,但是菜鸟我实在是愚钝,又急切想弄明白。
注,已经创建好的对象是
LCObject obj = new LCObject("Hello");
obj["intValue"] = 123;
await obj.Save();

以前的 SDK 为了区分同步和异步接口,为异步接口增加了 Async 后缀,新版 SDK 都是异步接口,便省去了所有的 Async 后缀,所以使用 Get(string id) 即可

如前面的回答,请参考对应功能的单元测试,可以了解更多用法。
如这个问题可 参考

1 人赞了这个帖子.

好的,感恩!跟您添麻烦了~ coffee

好嘞,谢谢大佬!

子类化查询单元测试

这是时区的问题,SDK 直接返回了 utc 时间,是 SDK 的 bug,下个版本会改为本地时间。