Esempio n. 1
0
        void layerDialog_Add(object sender, EventArgs e)
        {
            NTerrainEditor trnEd = NLevelEditorEngine.Instance.TerrainEd;

            if (trnEd.Empty())
            {
                NexusEditor.Program.ShowError("当前地形编辑器没有绑定对象.");
                return;
            }

            EditorMain.TerrainSplattingLayerForm dlg = sender as EditorMain.TerrainSplattingLayerForm;
            EditorMain.NETerrainTextureLayerProp ld  = dlg.Data;

            if (!ld.TextureRes.IsValid())
            {
                NexusEditor.Program.ShowError("添加图层失败:图层贴图路径为空.");
                return;
            }

            try
            {
                NTerrainMtlSetup mtl = trnEd.GetMaterial();

                int i = mtl.AddLayer(ld.data);
                if (i == -1)
                {
                    NexusEditor.Program.ShowError("添加图层失败:可能是未创建地形材质.");
                }
                else
                {
                    this.BuildTargetList();
                }
            }
            catch (System.Exception ex)
            {
                NexusEditor.Program.ShowException(ex, "地形材质图层更新失败!");
            }
        }