IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity 接入图灵机器人 -> 正文阅读

[游戏开发]Unity 接入图灵机器人

封装:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System;
using System.Text;

public class TuLingMgr : MonoBehaviour {

  

    private string url = "http://openapi.tuling123.com/openapi/api/v2";

    private string apiKey = "2801fb36fe654af8b600816dee258338";
    private string userId = "198119";
  
    /// <summary>
    /// 获取答案
    /// </summary>
    /// <param name="message"></param>
    public void GetAnswerByQuestion(string question,Action<string> finishHandle)
    {
        StartCoroutine(HttpPost(question,finishHandle));
    }

    IEnumerator HttpPost(string message, Action<string> finishHandle)
    {
        //JsonData可以表示JsonObject{},也可以表示JsonArry[]//4e03ee9c4e8cc2af//"1512267543"
        JsonData request = new JsonData();
        //perception
        request["perception"] = new JsonData();
        request["perception"]["inputText"] = new JsonData();
        request["perception"]["inputText"]["text"] = message;
        //userInfo
        request["userInfo"] = new JsonData();
        request["userInfo"]["apiKey"] = apiKey;
        request["userInfo"]["userId"] = userId;
        //JsonMapper.ToJson(request)
        //将Json对象转为Json字符串,直接ToString容易出错
        //将Json字符串转为字节数组
        //进行一个网络推送
        WWW post = new WWW(url, Encoding.UTF8.GetBytes(JsonMapper.ToJson(request)));
        yield return post;
        Debug.Log(post.text);
        JsonData response = JsonMapper.ToObject(post.text);
        string result = response["results"][0]["values"]["text"].ToString();
        Debug.Log(result);
     
        if (finishHandle!=null)
        {
            finishHandle(result);
        }
    }


    private static volatile TuLingMgr instance;
    private static GameObject _container;
    private static object syncRoot = new object();
    public static TuLingMgr Instance
    {
        get
        {
            if (instance == null)
            {
                lock (syncRoot)
                {
                    if (instance == null)
                    {
                        TuLingMgr[] instance1 = FindObjectsOfType<TuLingMgr>();
                        if (instance1 != null)
                        {
                            for (var i = 0; i < instance1.Length; i++)
                            {
                                Destroy(instance1[i].gameObject);
                            }
                        }
                    }
                }
                GameObject go = new GameObject(typeof(TuLingMgr).Name);
                _container = go;
                DontDestroyOnLoad(go);
                instance = go.AddComponent<TuLingMgr>();
            }
            return instance;
        }

    }


    public virtual void Awake()
    {
        TuLingMgr t = gameObject.GetComponent<TuLingMgr>();
        if (t == null)
            t = gameObject.AddComponent<TuLingMgr>();
        if (instance == null)
        {
            DontDestroyOnLoad(gameObject);

            instance = t;
        }
        if (instance != t)
        {
            MonoBehaviour[] monos = gameObject.GetComponents<MonoBehaviour>();
            if (monos.Length > 1)
            {
                Destroy(t);
            }
            else
            {
                Destroy(gameObject);
            }
        }
    }

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.Text;
using UnityEngine.UI;

public class TuLingTest : MonoBehaviour
{
    private string url = "http://openapi.tuling123.com/openapi/api/v2";

    private string apiKey = "你的apiKey"; 
    private string userId = "你的用户名id";
    public InputField SpeakInputText; //你说的话
    public Text text;                 //一问一答 呈现

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))                                   //按A发送消息,(鼠标要移出输入框)
        {
            HttpPostFunc(SpeakInputText.text);
        }
    }

    public void HttpPostFunc(string message)
    {
        StartCoroutine(HttpPost(message));
    }

    IEnumerator HttpPost(string message)
    {
        //JsonData可以表示JsonObject{},也可以表示JsonArry[]//4e03ee9c4e8cc2af//"1512267543"
        JsonData request = new JsonData();
        //perception
        request["perception"] = new JsonData();
        request["perception"]["inputText"] = new JsonData();
        request["perception"]["inputText"]["text"] = message;
        //userInfo
        request["userInfo"] = new JsonData();
        request["userInfo"]["apiKey"] = apiKey;
        request["userInfo"]["userId"] = userId;
        //JsonMapper.ToJson(request)
        //将Json对象转为Json字符串,直接ToString容易出错
        //将Json字符串转为字节数组
        //进行一个网络推送
        WWW post = new WWW(url, Encoding.UTF8.GetBytes(JsonMapper.ToJson(request)));
        yield return post;
        Debug.Log(post.text);
        JsonData response = JsonMapper.ToObject(post.text);
        string result = response["results"][0]["values"]["text"].ToString();
        Debug.Log(result);
        text.text += "我:" + message + "\n" + "机器人:" + result + "\n";
    }
}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:25:30  更:2021-08-14 14:28:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 17:02:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码