Ejemplo n.º 1
0
        private AoeModel SerializeToAoeModel(BaseGraph graph, AoeGraphAsset asset)
        {
            List <Aoe_Node> rootNodes = NodeHelper.GetNodes <Aoe_Node>(graph);

            if (rootNodes.Count <= 0)
            {
                Debug.LogError($"试图序列化出错,没有根节点");
            }
            Aoe_Node node = rootNodes[0];

            AoeModel aoeModel = new AoeModel();

            aoeModel.id        = asset.aoeId;
            aoeModel.asset     = node.asset;
            aoeModel.areaShape = node.areaShape;
            aoeModel.tickTime  = node.tickTime;

            aoeModel.moveFunc      = node.GetMoveFunc();
            aoeModel.onCreateFunc  = node.GetOnCreateFuncs();
            aoeModel.onTickFunc    = node.GetOnTickFuncs();
            aoeModel.onRemovedFunc = node.GetOnRemovedFuncs();

            aoeModel.onActorEnterFunc = node.GetOnActorEnterFuncs();
            aoeModel.onActorLeaveFunc = node.GetOnActorLeaveFuncs();

            aoeModel.onBulletEnterFunc = node.GetOnBulletEnterFuncs();
            aoeModel.onBulletLeaveFunc = node.GetOnBulletLeaveFuncs();

            return(aoeModel);
        }
Ejemplo n.º 2
0
        public override void ExportGraph(List <InternalBaseGraphAsset> assets)
        {
            for (int i = 0; i < assets.Count; i++)
            {
                if (assets[i] is AoeGraphAsset)
                {
                    AoeGraphAsset asset = assets[i] as AoeGraphAsset;

                    BaseGraph graphData = asset.DeserializeGraph();

                    //运行时数据结构
                    AoeModel model = SerializeToAoeModel(graphData, asset);

                    string filePath = SkillDef.GetAoeCnfPath(asset.aoeId);
                    IOHelper.WriteText(JsonMapper.ToJson(model), filePath);

                    Debug.Log($"Aoe配置生成成功>>>>{filePath}");
                }
            }

            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
        }