Scripts/Runtime/Data/Intents/WitIntent.cs (51 lines of code) (raw):

/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the license found in the * LICENSE file in the root directory of this source tree. */ using System; using Facebook.WitAi.Configuration; using Facebook.WitAi.Data.Entities; using Facebook.WitAi.Lib; using UnityEngine; namespace Facebook.WitAi.Data.Intents { [Serializable] public class WitIntent : WitConfigurationData { [SerializeField] public string id; [SerializeField] public string name; [SerializeField] public WitEntity[] entities; public static class Fields { public const string ID = "id"; public const string NAME = "name"; public const string CONFIDENCE = "confidence"; } #if UNITY_EDITOR public static class EditorFields { public const string ENTITIES = "entities"; } protected override WitRequest OnCreateRequest() { return witConfiguration.GetIntentRequest(name); } public override void UpdateData(WitResponseNode intentWitResponse) { id = intentWitResponse[Fields.ID].Value; name = intentWitResponse[Fields.NAME].Value; var entityArray = intentWitResponse[EditorFields.ENTITIES].AsArray; var n = entityArray.Count; entities = new WitEntity[n]; for (int i = 0; i < n; i++) { entities[i] = WitEntity.FromJson(entityArray[i]); entities[i].witConfiguration = witConfiguration; } } public static WitIntent FromJson(WitResponseNode intentWitResponse) { var intent = new WitIntent(); intent.UpdateData(intentWitResponse); return intent; } #endif } }