public void Inject(Db db,
                    IBuildingAcquirer acquirer,
                    IBuildingService service,
                    IFieldContainer fieldContainer,
                    BuildingAssets buildingAssets)
 {
     this.db             = db;
     this.acquirer       = acquirer;
     this.service        = service;
     this.fieldContainer = fieldContainer;
     this.buildingAssets = buildingAssets;
 }
Пример #2
0
        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        internal static BuildingAssets Create(string path)
        {
            BuildingAssets profile = ScriptableObject.CreateInstance <BuildingAssets>();

            profile.name = Path.GetFileName(path);
            profile.ants = new BuildingAssetsAnt[]
            {
                BuildingAssetsAnt.Create <EditorExportVersion>("设置版本号"),
                BuildingAssetsAnt.Create <EditorExportConfig>("导出 CSV 文件"),
                BuildingAssetsAnt.Create <EditorExportAssets>("导出 AB 文件"),
                BuildingAssetsAnt.Create <EditorExportCopy>("拷贝 AB 文件"),
                BuildingAssetsAnt.Create <EditorExportPlayer>("创建包体")
            };
            AssetDatabase.CreateAsset(profile, path);
            return(profile);
        }
Пример #3
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();
        //base.OnInspectorGUI();
        BuildingAssets asset = (BuildingAssets)target;

        if (null == asset)
        {
            return;
        }
        GUILayout.Space(20f);
        GUI.backgroundColor = Color.cyan;
        UnityEditor.EditorGUILayout.BeginHorizontal("Button");
        {
            /// 绘制平台
            asset.buildPlatform = (int)(UnityEditor.BuildTarget)UnityEditor.EditorGUILayout.EnumPopup("Platform", (UnityEditor.BuildTarget)asset.buildPlatform);
            /// 选项
            asset.buildOptions = (int)(UnityEditor.BuildOptions)UnityEditor.EditorGUILayout.EnumFlagsField("Options", (UnityEditor.BuildOptions)asset.buildOptions);
        }
        UnityEditor.EditorGUILayout.EndHorizontal();
        /// 绘制流程按钮
        GUILayout.Space(20f);
        FieldInfo fieldAnts = target.GetType().GetField("ants");

        BuildingAssetsAnt[] ants = (BuildingAssetsAnt[])fieldAnts.GetValue(target);
        //BuildingAssetsAnt[] ants = serializedObject.FindProperty("ants").arraySize as BuildingAssetsAnt[];
        FieldInfo fieldFuction = typeof(BuildingAssetsAnt).GetField("functionName");

        //for (int i = 0; null != ants && i < ants.Length; i++)
        for (int i = 0; i < serializedObject.FindProperty("ants").arraySize; i++)
        {
            SerializedProperty antProperty = serializedObject.FindProperty("ants").GetArrayElementAtIndex(i);
            if (null == antProperty)
            {
                GUI.backgroundColor = Color.red;
                UnityEditor.EditorGUILayout.BeginHorizontal("Button");
                {
                    UnityEditor.EditorGUILayout.LabelField("Error Data");
                }
                UnityEditor.EditorGUILayout.EndHorizontal();
                continue;
            }
            /// 绘制选项
            GUI.backgroundColor = string.IsNullOrEmpty(antProperty.FindPropertyRelative("functionName").stringValue) ? Color.red : Color.green;
            UnityEditor.EditorGUILayout.BeginHorizontal("TextField");
            {
                DrawMethodSelect(antProperty);
            }
            UnityEditor.EditorGUILayout.EndHorizontal();
            GUILayout.Space(6f);
        }
        /// 保存

        serializedObject.ApplyModifiedProperties();
        UnityEditor.AssetDatabase.SaveAssets();
        GUILayout.Space(50f);
        GUI.backgroundColor = Color.cyan;

        if (GUILayout.Button("DONE ANT"))
        {
            DoneAnts(ants);
        }
    }
Пример #4
0
        public override void Action(int instanceId, string pathName, string resourceFile)
        {
            BuildingAssets profile = EditorBuildAssetsFactory.Create(pathName);

            ProjectWindowUtil.ShowCreatedAsset(profile);
        }
 public void Initialize(BuildingAssets buildingAssets)
 {
     this.buildingAssets = buildingAssets;
 }
 public void Inject(IBuildingSelector selector, IFieldContainer fieldContainer, BuildingAssets buildingAssets)
 {
     this.selector       = selector;
     this.fieldContainer = fieldContainer;
     this.buildingAssets = buildingAssets;
 }
        public void Initialize(GridXZ <BuildingGridCell> grid, BuildingAssets buildingAssets)
        {
            this.grid = grid;

            ghostControll.Initialize(buildingAssets);
        }
Пример #8
0
 public BuildingConstructor(Transform root, BuildingAssets buildingAssets, ProgressConstructor progressConstructor)
 {
     this.root                = root;
     this.buildingAssets      = buildingAssets;
     this.progressConstructor = progressConstructor;
 }