Exemplo n.º 1
0
    static void Init()
    {
        // Get existing open window or if none, make a new one:
        StageEditor window = (StageEditor)EditorWindow.GetWindow(typeof(StageEditor));

        window.Show();
    }
Exemplo n.º 2
0
    /// <summary>
    /// ステージの読み込み
    /// </summary>
    /// <param name="stageEditor">ベースクラス</param>
    private void LoadStage(StageEditor stageEditor)
    {
        stageEditor.loadStage = true;
        stageEditor.Data      = Instantiate(pre);
        stageEditor.stageName = stageEditor.Data.stageName;
        GameObject o = Instantiate(pre.stage);

        stageEditor.cells         = pre.gridCells;
        stageEditor.gridPos       = new GameObject[pre.gridCells.x, pre.gridCells.y, pre.gridCells.z];
        stageEditor._StageObjects = new GameObject[pre.gridCells.x, pre.gridCells.y, pre.gridCells.z];
        stageEditor.EditStageInit();

ReStart:
        foreach (Transform child in o.transform)
        {
            child.gameObject.transform.parent = stageEditor.stageRoot.transform;
            Vector3Int v = Vector3Int.zero;
            if (child.GetComponent <MyCellIndex>())
            {
                v = child.GetComponent <MyCellIndex>().cellIndex;
            }
            stageEditor.gridPos[v.x, v.y, v.z].GetComponent <HighlightObject>().IsAlreadyInstalled = true;
            stageEditor._StageObjects[v.x, v.y, v.z] = child.gameObject;
        }

        if (o.transform.childCount != 0)
        {
            goto ReStart;
        }
        Destroy(o);
    }
Exemplo n.º 3
0
    void Awake()
    {
        GameObject world = GameObject.Find("World");

        if (world == null)
        {
            return;
        }

        GameObject stageRoot = GameObject.Find("World/Stage");

        if (stageRoot != null)
        {
            GameObject.DestroyImmediate(stageRoot);
        }

        stageRoot = new GameObject("Stage");
        stageRoot.transform.SetParent(world.transform);
        stageRoot.transform.localPosition = Vector3.zero;

        targetObject = new StageEditor();
        targetObject.Init();

        SceneView.onSceneGUIDelegate += OnSceneGUI;
    }
Exemplo n.º 4
0
    public override void OnInspectorGUI()
    {
        StageEditor stageEditor = target as StageEditor;

        base.OnInspectorGUI();
        GUILayout.Label("-以下変更可-");
        pre = (PrefabStageData)EditorGUILayout.ObjectField("読み込むステージ", pre, typeof(ScriptableObject), false);
        if (GUILayout.Button("NewStage"))
        {
            if (!EditorApplication.isPlaying)
            {
                return;
            }
            stageEditor.EditStageInit();
            stageEditor.isCreateStage = true;
        }

        if (GUILayout.Button("LoadStage"))
        {
            if (!EditorApplication.isPlaying)
            {
                return;
            }
            LoadStage(stageEditor);
            stageEditor.isCreateStage = true;
        }
    }
Exemplo n.º 5
0
        protected override DialogResult showEditDialog(Stage entity)
        {
            StageEditor editor = new StageEditor((StageDao)this.dao);

            try
            {
                editor.entity = entity;
                editor.renderEntity();
                return(editor.ShowDialog(this));
            }
            catch (Exception ex)
            {
                MyMessageBox msgBox = new MyMessageBox("Data error!", ex, MyConstants.BOX_TYPE_ERROR);
                msgBox.ShowDialog(this);
                return(DialogResult.Abort);
            }
        }
Exemplo n.º 6
0
        protected override DialogResult showAddDialog(Stage entity)
        {
            StageEditor editor = new StageEditor((StageDao)this.dao);

            try
            {
                Stage stage = new Stage();
                if (this.parentWindow.queryCondition != null)
                {
                    stage.project_id = this.parentWindow.queryCondition.project_id;
                }
                editor.entity = stage;
                editor.renderEntity();
                return(editor.ShowDialog(this));
            }
            catch (Exception ex)
            {
                MyMessageBox msgBox = new MyMessageBox("Data error!", ex, MyConstants.BOX_TYPE_ERROR);
                msgBox.ShowDialog(this);
                return(DialogResult.Abort);
            }
        }
Exemplo n.º 7
0
 // Use this for initialization
 void Start()
 {
     instance = GetComponent <StageEditor>();
 }
Exemplo n.º 8
0
    public static void OpenEditor()
    {
        StageEditor window = GetWindow <StageEditor>();

        window.Show();
    }
Exemplo n.º 9
0
    public Editor(Player player, GameObject parent) : base("Editor", parent)
    {
        session = new Session(new Player());
        session.Hide();

        waveData     = Assets.Get(Assets.WaveDataSets.Default);
        stageData    = Assets.Get(Assets.StageDataSets.Default);
        objectData   = Assets.Get(Assets.ObjectDataSets.Default);
        campaignData = Assets.Get(Assets.CampaignDataSets.Default);

        if (waveData == null)
        {
            waveData = Assets.Create <WaveData>(Assets.waveDataPath);
        }

        if (stageData == null)
        {
            stageData = Assets.Create <StageData>(Assets.stageDataPath);
        }

        if (campaignData == null)
        {
            campaignData = Assets.Create <CampaignData>(Assets.campaignDataPath);
        }

        if (objectData == null)
        {
            objectData = Assets.Create <ObjectData>(Assets.objectDataPath);
        }

        if (objectData.enemySets.Count == 0)
        {
            ScriptableObjects.Add(ScriptableObject.CreateInstance <EnemySet>(), objectData);
        }

        if (objectData.itemSets.Count == 0)
        {
            ScriptableObjects.Add(ScriptableObject.CreateInstance <ItemSet>(), objectData);
        }

        if (objectData.heroSets.Count == 0)
        {
            ScriptableObjects.Add(ScriptableObject.CreateInstance <HeroSet>(), objectData);
        }

        for (int i = objectData.enemySets[(int)Assets.ObjectDataSets.Default].enemyDefinitions.Count; (int)Definitions.Enemies.Count > i; i++)
        {
            ScriptableObjects.Add(ScriptableObject.CreateInstance <EnemyDefinition>().Initialize(((Definitions.Enemies)i).ToString(), 2, 1, (Definitions.Enemies)i), objectData.enemySets[(int)Assets.ObjectDataSets.Default]);
        }

        for (int i = objectData.heroSets[(int)Assets.ObjectDataSets.Default].heroDefinitions.Count; (int)Definitions.Heroes.Count > i; i++)
        {
            ScriptableObjects.Add(ScriptableObject.CreateInstance <HeroDefinition>().Initialize(((Definitions.Heroes)i).ToString(), 2, 1, (Definitions.Heroes)i), objectData.heroSets[(int)Assets.ObjectDataSets.Default]);
        }

        for (int i = objectData.itemSets[(int)Assets.ObjectDataSets.Default].itemDefinitions.Count; (int)Definitions.Items.Count > i; i++)
        {
            ScriptableObjects.Add(ScriptableObject.CreateInstance <ItemDefinition>().Initialize(((Definitions.Items)i).ToString(), 2, 1, (Definitions.Items)i), objectData.itemSets[(int)Assets.ObjectDataSets.Default]);
        }

        Definitions.Initialize(objectData);

        Add(testButton = new Button("Test", 1.5f, 0.5f, container, "Test",
                                    fontSize: 20,
                                    Enter: (Button button) => button.SetColor(stage != null && missionEditor.selectedMission != null ? Color.green : button.color),
                                    Stay: (Button button) =>
        {
            if (stage != null && missionEditor.selectedMission != null && Input.GetMouseButtonDown(0))
            {
                if (level == null)
                {
                    stage.conveyor.Show();
                    session.SetLevel(new Level(missionEditor.selectedMission.duration, showProgress: false));

                    for (int i = 0; missionEditor.selectedMission.waveDefinitions.Count > i; i++)
                    {
                        Wave wave = new Wave(missionEditor.selectedMission.waveTimes[i] * missionEditor.selectedMission.duration, stage);
                        level.Add(wave);

                        for (int j = 0; missionEditor.selectedMission.waveDefinitions[i].waveEvents.Count > j; j++)
                        {
                            switch ((WaveEvent.Type)missionEditor.selectedMission.waveDefinitions[i].waveEvents[j].type)
                            {
                            case WaveEvent.Type.SpawnEnemy:
                                wave.Add(new SpawnEnemyEvent(Definitions.Enemy((Definitions.Enemies)missionEditor.selectedMission.waveDefinitions[i].waveEvents[j].subType), missionEditor.selectedMission.waveDefinitions[i].waveEvents[j]));
                                break;
                            }
                        }
                    }

                    button.SetLabel("Stop");
                    button.SetPosition(saveButton.position);

                    saveButton.Hide();
                    saveButton.Disable();
                    objectsButton.Hide();
                    campaignButton.Hide();
                    stageEditor.HideStageSets();
                    stageEditor.HideStageEditor();
                    stageEditor.HideStageDefinitions();
                    missionEditor.HideMissionEditor();
                    waveEditor.HideWaveEventButtons();
                    session.Start();
                }
                else
                {
                    session.Stop();
                    stage.ClearLanes();
                    conveyor.Hide();
                    conveyor.Clear();
                    button.SetLabel("Test");
                    level.DestroyProgress();
                    session.SetLevel(null);
                    _heldItem = null;
                    _itemTime = 0;

                    saveButton.Show();
                    saveButton.Enable();
                    objectsButton.Show();
                    campaignButton.Show();
                    stageEditor.ShowStageSets();
                    stageEditor.ShowStageEditor();
                    missionEditor.ShowMissionEditor();
                    testButton.SetPosition(saveButton.position + Vector3.right * (saveButton.width));

                    if (waveEditor.selectedWaveDefinition != null)
                    {
                        waveEditor.ShowWaveEventButtons();
                    }
                }
            }
        },
                                    Exit: (Button button) => button.SetColor(Color.white)));


        Add(saveButton = new Button("Save", 1.5f, 0.5f, container, "Save",
                                    fontSize: 20,
                                    Enter: (Button button) => button.SetColor(Color.green),
                                    Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                EditorUtility.SetDirty(campaignData);
                EditorUtility.SetDirty(objectData);
                EditorUtility.SetDirty(stageData);
                EditorUtility.SetDirty(waveData);
                ScriptableObjects.Save();
            }
        },
                                    Exit: (Button button) => button.SetColor(Color.white)));

        saveButton.SetViewportPosition(new Vector2(0, 1));
        saveButton.SetPosition(saveButton.position + Vector3.up);
        testButton.SetPosition(saveButton.position + Vector3.right * (saveButton.width));
        testButton.Disable();
        testButton.Hide();

        Add(campaignButton = new Button("Campaigns", 2, 0.5f, container, "CampaignsButton",
                                        fontSize: 20,
                                        Enter: (Button button) => button.SetColor(button.selected ? button.color : Color.green),
                                        Stay: (Button button) =>
        {
            if (!button.selected && Input.GetMouseButtonDown(0))
            {
                ShowCampaignEditor();
            }
        },
                                        Exit: (Button button) => button.SetColor(button.selected ? button.color : Color.white)));

        campaignButton.SetViewportPosition(new Vector2(1, 1));
        campaignButton.SetPosition(campaignButton.position + (Vector3.left * campaignButton.width) + Vector3.up);

        Add(objectsButton = new Button("Objects", 2, 0.5f, container, "ObjectsButton",
                                       fontSize: 20,
                                       Enter: (Button button) => button.SetColor(button.selected ? button.color : Color.green),
                                       Stay: (Button button) =>
        {
            if (!button.selected && Input.GetMouseButtonDown(0))
            {
                ShowObjectEditors();
            }
        },
                                       Exit: (Button button) => button.SetColor(button.selected ? button.color : Color.white)));

        objectsButton.SetPosition(campaignButton.position + Vector3.left * (objectsButton.width));

        Add(campaignMapEditor = new CampaignMapEditor(this, container));
        Add(campaignEditor    = new CampaignEditor(this, Vector3.zero, container));
        Add(timelineEditor    = new TimelineEditor(this, container));
        Add(missionEditor     = new MissionEditor(this, container));
        Add(stageEditor       = new StageEditor(this, container));
        Add(enemyEditor       = new EnemyEditor(this, container));
        Add(waveEditor        = new WaveEditor(this, container));
        Add(itemEditor        = new ItemEditor(this, container));
        Add(heroEditor        = new HeroEditor(this, container));
        ShowCampaignEditor();
    }