コード例 #1
0
ファイル: Context.cs プロジェクト: zhangzheng1205/ActionFlow
        /// <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;
        }
コード例 #2
0
ファイル: Context.cs プロジェクト: zhangzheng1205/ActionFlow
        //=======================================================
        //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);
            //}
        }