// Update is called once per frame void Update() { if (umc == null) { umc = GetComponent <UnityMeshComponent> (); } if (umc == null) { return; } entity = umc.GetEntity(); if (entity == null) { return; } ac = entity.GetComponent <BehaviorComponent> (); if (ac == null) { return; } currentBehavior = ""; //TODO get entity name component targets.Clear(); foreach (var entry in ac.action2Objective) { currentBehavior += "Performing " + entry.Key.ToString() + " pursuant of " + entry.Value.ToString() + System.Environment.NewLine; if (entry.Key.DbgGetTarget() != null) { targets.Add(entry.Key.DbgGetTarget()); } } }
public static void AddEntity(Entity entity) { entities.Add(entity); GameObject display = GameObject.Instantiate(viewer.prototype); UnityMeshComponent meshComponent = display.AddComponent <UnityMeshComponent>(); if (entity.HasComponent <BehaviorComponent> ()) { meshComponent.TogglePathfinding(true); meshComponent.ToggleCollision(false); //DBG appearance code var rend = meshComponent.gameObject.GetComponent <Renderer> (); rend.material.color = Color.red; meshComponent.gameObject.name = "agent"; } else { meshComponent.TogglePathfinding(false); meshComponent.ToggleCollision(true); } entity.AddComponent <UnityMeshComponent> (meshComponent); //meshComponent.SetEntity (entity); displaysMap[entity] = display; var pos = entity.GetComponent <PositionComponent> (); if (pos == null) { return; } Vector2Int coord = new Vector2Int(Mathf.FloorToInt(pos.position.x / viewer.mapTilePrefabSize), Mathf.FloorToInt(pos.position.y / viewer.mapTilePrefabSize)); if (viewer.coordinate2Navmesh.ContainsKey(coord)) { var navmesh = viewer.coordinate2Navmesh [coord]; viewer.rebakeQueue.Enqueue(navmesh); } else { Mathf.Sqrt(2f); } display.SetActive(true); }
// Use this for initialization void Start() { umc = GetComponent <UnityMeshComponent> (); }