/// <summary> /// 读取节点共用数据(行为树中的黑板)。内部存储于Entity的组件上 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> /// <returns></returns> public T GetDataFromBlackboard <T>() where T : struct, IComponentData { return(StateData.GetBlackboard <T>(Index)); //Entity e = EntityManager.GetComponentData<ActionRunState>(CurrentEntity).Blackboard; //if (EntityManager.HasComponent<T>(e)) //{ // value = EntityManager.GetComponentData<T>(e); // return true; //} //value = default; //return false; }
//======================================================= //TODO:临时处理方案。之后改成把数据放入专门的数据节点中 /// <summary> /// 设置节点共用数据(行为树中的黑板)。内部存储于Entity的组件上 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="value"></param> public void SetDataToBlackboard <T>(ISetBlackboard <T> node, T value) where T : struct, IComponentData { StateData.GetBlackboard <T>(Index) = value; //Entity e = EntityManager.GetComponentData<ActionRunState>(CurrentEntity).Blackboard; //if (EntityManager.HasComponent<T>(e)) //{ // EntityManager.SetComponentData(e, value); //} //else //{ // EntityManager.AddComponentData(e, value); //} }