using System.Collections.Generic; using System.IO; using UnityEngine; public class AgenteSM : MonoBehaviour { // Definición de la red semántica private Dictionary> semanticNetwork = new Dictionary>() { { "Animal", new List { "Perro", "Gato", "Pajaro" } }, { "Vehiculo", new List { "Bocho", "Bicicleta", "Autobus" } }, { "Moviliario", new List { "Silla", "Mesa", "Sofa" } } }; // Lista para almacenar objetos detectados private List detectedObjects = new List(); void Start() { // Simulación de detección de objetos en el entorno DetectObjects(); // Buscar objetos similares en la red semántica FindSimilarObjects(); // Guardar los objetos similares en un archivo JSON SaveToJson(); } void DetectObjects() { // Aquí puedes implementar la lógica para detectar objetos en el entorno // Por simplicidad, añadimos algunos objetos manualmente detectedObjects.Add("Perro"); detectedObjects.Add("Bocho"); detectedObjects.Add("Mesa"); detectedObjects.Add("Pajaro"); } void FindSimilarObjects() { List similarObjects = new List(); foreach (var obj in detectedObjects) { foreach (var category in semanticNetwork) { if (category.Value.Contains(obj)) { similarObjects.Add($"{obj} es un {category.Key}"); break; } } } // Mostrar los objetos similares en la consola foreach (var item in similarObjects) { Debug.Log(item); } // Guardar los objetos similares en la lista detectedObjects detectedObjects = similarObjects; } void SaveToJson() { // Convertir la lista de objetos detectados a JSON string json = JsonUtility.ToJson(new SerializableList(detectedObjects), true); // Guardar el JSON en un archivo string path = Path.Combine(Application.dataPath, "red_semantica.json"); File.WriteAllText(path, json); Debug.Log("Archivo JSON guardado en: " + path); } } // Clase auxiliar para serializar una lista a JSON [System.Serializable] public class SerializableList { public List list; public SerializableList(List list) { this.list = list; } }