IBM Watson SDK for Unity基础使用教程

前言

最近有小伙伴让我帮忙看看如何在Unity中使用IBM Watson SDK,我看了一些基础教学视频把如何接入和简单的使用过程记录了一下,作为学习笔记,希望能帮助到大家。

使用步骤:

  1. 注册一个IBM云服务账号(注册网站:link)
  2. 在IBM云服务创建需要的项目并获取到对应的授权资料
  3. 从Github上下载工程文件并导入到Unity中(资源地址:link

1. 注册并从IBM Cloud官网获取授权资料

首先,打开IBM Cloud 的注册网站登录或者注册一个账号,这个就此略过。
注册界面

注册完之后,登录到自己的主界面,点开左侧的菜单栏,找到“Watson”选项,单击进去
主面板

到了下一个界面,可以看到IBM Watson的一些概述。我们接着找到左边菜单栏的“Watson服务”下面的浏览服务Watson界面

然后你能看到我们所能够选择的Watson所提供的服务。选中其中一个我们需要的服务,在这里我选择了Language Translator服务来演示。顾名思义,这项服务是可以帮助我们在Unity中实现文字翻译的功能。
创建Watson服务

修改好了初始设置之后,点击右下角的创建即可看到我们项目已经创建完成并且提供给了我们接下来在Unity中使用该SDK会用到的URL和API秘钥属性
在这里插入图片描述

2.接入SDK到Unity中

首先,创建一个Unity项目或者打开你想接入的项目,这里我是用来演示的所以就新创了一个Unity 项目。然后我直接从AssetStore上搜索并导入了IBM Watson SDK。
同时我创建了一个文本文档用来做最基本的翻译演示。然后,创建一个空物体,命名为“LanguageTranslator”并为其添加一个脚本,叫“LanguageTranslatorScript”。
如果你跟着我做到这步,你的场景应该如下图所示:
Unity

之后基本上就是存代码上的东西啦。打开我们的脚本文件进行编辑,代码在下面:
看代码之前,有几个坑提前说一下:

  1. 官网教程展示的还是v2版的LanguageTranslator但是现在其实已经开始使用了v3版本的我就直接拿v3版本的进行演示。使用区别就是v3版的构造函数还需要穿入一个Version函数,我取的就是IBM Watson帮我产生的秘钥的日期
  2. 另外一个坑就是创建Credentials的时候,网络上很多教程都是直接给Username和Password赋值就可以成功。然而这时候你发现,你的IBM Watson上自动产生的协议里面根本没有这两个属性,只给了我们Api秘钥和URL。这个时候怎么办呢? 我翻了不少博客终于找到很多答案,有的说用TokenOptions之类的,但是都没有通过测试,目前只有我下面写的这一种方法成功的获取到了翻译:就是在Username和Password这两个属性里面直接写入"apikey"和你实际的Api秘钥值
using System.Collections;
using System.Collections.Generic;
using IBM.Watson.DeveloperCloud.Connection;
using IBM.Watson.DeveloperCloud.Logging;
using IBM.Watson.DeveloperCloud.Services.LanguageTranslator.v3;
using IBM.Watson.DeveloperCloud.Utilities;
using UnityEngine;
using UnityEngine.UI;

public class LanguageTranslatorScript : MonoBehaviour
{
    public Text txtResponse;
    private LanguageTranslator _translator;
    private string _translatorModel = "en-zh";
    private string content = "I love you";
    void Start()
    {
        //首先创建一个认证信息类
        Credentials languageTranslatorCredentials = new Credentials()
        {
            //这里有个坑,要注意:新版的Watson Service 已经倾向使用apikey而不再是username 和 password
            Username = "apikey",  //用户名输入"apikey"
            Password = "nN0D0alLdjBCDDexj9K3z3_mICPfh3eawcG3UoVIExul" //密码则是你的api秘钥
        };

        //v3版的LanguageTranslator现在除了Credentials之外还需要一个版本信息,这里我填的就是我IBM Watson上看到的安全协议产生日期
        _translator = new LanguageTranslator("2018-12-25", languageTranslatorCredentials);

        //之后直接调用获取翻译方法:注意要创建相对应的回调,具体格式可以自行F12到定义里去看
        _translator.GetTranslation(OnComplete, OnFail, content, _translatorModel);
    }

    //翻译完成回调
    private void OnComplete(Translations response, Dictionary<string, object> customData)
    {
        Debug.Log(response);
        txtResponse.text = response.translations[0].translation;
    }

    //翻译失败回调
    private void OnFail(RESTConnector.Error error, Dictionary<string, object> customData)
    {
        Debug.Log(error.ToString());
    }

}

趟过代码里面的几个坑,跑起来就可以把"I love you"转成“我爱你”啦,上图:在这里插入图片描述

到这里,IBM Watson SDK的接入Demo就算是完成了。这里头当然还有很多可以可改进的地方,比如能实时输入然后实时翻译等。又或者把翻译和语音输入服务一起用,实时翻译语音输入等等。那些如果我有空玩的时候再更新上来吧。希望这个简单的教程能够帮到大家!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ArcGIS Maps SDK for Unity是一款由Esri开发的用于Unity游戏引擎的地图开发工具。该工具使游戏开发者可以在Unity中集成ArcGIS地图功能,从而为游戏增添地理信息系统 (GIS) 功能和可视化效果。 ArcGIS Maps SDK for Unity教程提供了详细的指导,帮助开发者了解如何在Unity中使用该工具。教程中的内容包括但不限于以下几个方面: 1. 安装和设置:教程会详细介绍安装ArcGIS Maps SDK for Unity的步骤,并向开发者展示如何进行必要的设置,以便开始使用地图功能。 2. 地图加载和显示:教程会演示如何在Unity中加载并显示地图数据。开发者将学会如何根据需求选择并加载不同的地图服务,以及如何设置地图的显示样式和缩放级别。 3. 空间查询与分析:教程会介绍如何利用ArcGIS Maps SDK中的功能进行空间查询和分析。开发者可以学习如何在地图上执行点选、范围查询等操作,并了解如何获取查询结果并进行进一步的处理。 4. 地图编辑功能:教程还会介绍如何使用ArcGIS Maps SDK中提供的地图编辑功能。开发者可以学习如何添加、删除和编辑地图要素,以及如何保存修改并与地图服务同步。 5. 地理位置感知和路线规划:教程中还会涵盖地理位置感知和路线规划的内容。开发者可以学习如何在游戏中利用ArcGIS地图数据进行位置感知和路径规划,从而实现更加真实和有趣的游戏体验。 通过学习ArcGIS Maps SDK for Unity教程,开发者可以掌握如何将GIS和地图功能融入到Unity游戏中,从而创造出更加丰富多样的游戏世界。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kayn_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值