protected override void CustomOnGUI() { EditorUIHelper.BeginHorizontal(); { _curModelType = EditorUIHelper.EnumPopup <ModelType>(_curModelType); if (GUI.changed) { Refresh(); } EditorUIHelper.Button("刷新", Refresh); } EditorUIHelper.EndHorizontal(); EditorUIHelper.Space(); _search = EditorUIHelper.SearchCancelTextField(_search); EditorUIHelper.Space(); _scroll = EditorUIHelper.BeginScrollView(_scroll); { for (int i = 0; i < _models.Count; i++) { var importer = _modelImporters[i]; var model = _models[i]; if (!string.IsNullOrEmpty(_search)) { if (!model.name.Contains(_search)) { continue; } } EditorUIHelper.DrawLine(); EditorUIHelper.BeginHorizontal(); { EditorUIHelper.ObjectField(model); EditorUIHelper.Toggle("绑点优化状态", importer.animationType == ModelImporterAnimationType.Generic && importer.optimizeGameObjects); EditorUIHelper.Button("优化绑点", () => EditorHelper.Run(() => ModelOptimizeHelper.OptimizeGameObject(importer))); EditorUIHelper.Button("还原绑点", () => EditorHelper.Run(() => ModelOptimizeHelper.RevertOptimizeGameObject(importer))); } EditorUIHelper.EndHorizontal(); } } EditorUIHelper.EndScrollView(); }
protected override void CustomOnGUI() { if (_msg != null) { EditorUIHelper.TitleField(_msg); EditorUIHelper.Space(); } _search = EditorUIHelper.SearchCancelTextField(_search); _searchFilter = EditorUIHelper.EnumPopup <EditorAssetHelper.SearchFilter>(_searchFilter, "SearchFilter"); EditorUIHelper.TitleField("数量:", (_goList != null ? _goList.Count : 0).ToString()); EditorUIHelper.Space(); _ListScroll = EditorUIHelper.BeginScrollView(_ListScroll); { var count = _goList != null ? _goList.Count : 0; var needSearch = !string.IsNullOrEmpty(_search); for (int i = 0; i < count; i++) { var go = _goList[i]; if (needSearch && !go.name.Contains(_search)) { continue; } if (!EditorAssetHelper.IsMatch(go, _searchFilter)) { continue; } EditorUIHelper.DrawLine(); EditorUIHelper.BeginHorizontal(); { EditorUIHelper.ObjectField(go, null, string.Empty, true); EditorUIHelper.Button("选中", () => EditorAssetHelper.SelectObject(go)); var index = i; EditorUIHelper.Button("移除", () => RemoveGo(index)); } EditorUIHelper.EndHorizontal(); } } EditorUIHelper.EndScrollView(); }
protected override void CustomOnGUI() { _mat = EditorUIHelper.ObjectField <Material>(_mat, "替换材质球"); _addMat = EditorUIHelper.ObjectField <Material>(_addMat, "替换材质球"); _lod = EditorUIHelper.IntSlider("LOD", _lod, 0, 5); _splitCount = EditorUIHelper.IntSlider("分割块数,4^n", _splitCount, 0, 5); _indexFormat = EditorUIHelper.EnumPopup <IndexFormat>(_indexFormat); EditorUIHelper.Space(); EditorUIHelper.LabelField("使用 UInt16,1025的高度图设置,得分割3次才能满足顶点数限制"); EditorUIHelper.Space(); EditorUIHelper.Button("ExportSplatmaps", ExportSplatmaps); EditorUIHelper.Space(); EditorUIHelper.Button("Terrain2Mesh", ConvertTerrain2Mesh); EditorUIHelper.Space(); EditorUIHelper.Button("SaveMeshes", SaveMeshes); }
protected override void CustomOnGUI() { _showType = EditorUIHelper.EnumPopup <ShowType>(_showType, "显示:"); EditorUIHelper.Space(); var dict = _showType == ShowType.All ? MonoFieldDict : UnSafeMonoFieldDict; _scrool = EditorUIHelper.BeginScrollView(_scrool); { foreach (var keyValue in dict) { EditorUIHelper.Space(); EditorUIHelper.ObjectField(keyValue.Key); foreach (var fieldInfo in keyValue.Value) { EditorUIHelper.LabelField(fieldInfo.Name); } } } EditorUIHelper.EndScrollView(); }
protected virtual void ShowSettingPanel(V setting) { setting.Match = EditorUIHelper.EnumPopup <MatchType>(setting.Match, "Match"); setting.Path = EditorUIHelper.TextField("Path", setting.Path); }
protected override void CustomOnGUI() { _maxHits = EditorUIHelper.IntSlider("射线最多碰撞次数(检测叠层的时候才需要)", _maxHits, MinHitNums, MaxHitNums); _checkLayerMask = EditorUIHelper.LayerMask(_checkLayerMask, "检测层(涉及层)"); _generateLayerMask = EditorUIHelper.LayerMask(_generateLayerMask, "生成层(某些层的内外围)"); EditorUIHelper.Space(); _calculateType = EditorUIHelper.EnumPopup <SceneInfoCalculation.CalculateType>(_calculateType, "筛选条件(如内外围)"); _minRange = EditorUIHelper.IntSlider("边界最近距离(-1代表全部)", _minRange, MinRange, MaxRange); _maxRange = EditorUIHelper.IntSlider("影响最远距离(-1代表全部)", _maxRange, MinRange, MaxRange); EditorUIHelper.Space(); EditorUIHelper.Button("刷新", Refresh); EditorUIHelper.Space(); EditorUIHelper.ObjectField <Texture>(_previewTexture, "预览"); EditorUIHelper.Space(); _noise = EditorUIHelper.Vector4Field("noise偏移及缩放", _noise); _noiseThreshold = EditorUIHelper.Slider("noise阈值", _noiseThreshold, 0, 1); EditorUIHelper.Button("叠加噪声图", CompositionNoise); EditorUIHelper.Space(); EditorUIHelper.ObjectField <Texture>(_finalTexture, "叠加噪声图之后"); EditorUIHelper.Space(); _parent = EditorUIHelper.ObjectField <Transform>(_parent, "父节点", true); _clearParent = EditorUIHelper.Toggle("清理父节点", _clearParent); _space = EditorUIHelper.IntSlider("间隔(密度)", _space, MinSpace, MaxSpace); EditorUIHelper.Space(); EditorUIHelper.BeginScrollView(_scenePrefabScrollPos); var deletePrefabIndex = -1; for (int i = 0; i < _scenePrefabs.Count; i++) { var scenePrefab = _scenePrefabs[i]; EditorUIHelper.BeginHorizontal(); scenePrefab.Prefab = EditorUIHelper.ObjectField <GameObject>(scenePrefab.Prefab); scenePrefab.Weight = EditorUIHelper.IntSlider("权重", scenePrefab.Weight, MinWeight, MaxWeight); var i1 = i; EditorUIHelper.Button("删除", () => { deletePrefabIndex = i1; }); EditorUIHelper.EndHorizontal(); EditorUIHelper.BeginHorizontal(); scenePrefab.MinScale = EditorUIHelper.Slider("缩放随机最小值", scenePrefab.MinScale, MinScale, MaxScale); scenePrefab.MaxScale = EditorUIHelper.Slider("缩放随机最大值", scenePrefab.MaxScale, MinScale, MaxScale); EditorUIHelper.EndHorizontal(); EditorUIHelper.Space(); } if (deletePrefabIndex >= 0) { _scenePrefabs.RemoveAt(deletePrefabIndex); } EditorUIHelper.Button("添加", () => _scenePrefabs.Add(new ScenePrefab())); EditorUIHelper.EndScrollView(); EditorUIHelper.Space(); EditorUIHelper.Button("生成", Generate); }
public override void OnInspectorGUI() { if (_grid.HexMat == null) { LoadMaterial(); } _grid.HexMat = EditorUIHelper.ObjectField <Material>(_grid.HexMat, "材质球"); _grid.Data = EditorUIHelper.ObjectField <HexGridData>(_grid.Data, "数据"); var gridData = _grid.Data; if (gridData == null) { EditorUIHelper.Space(); EditorUIHelper.Button("创建数据", CreateHexGridData); } else { gridData.width = EditorUIHelper.Slider("宽度", gridData.width, 0, 1000); gridData.height = EditorUIHelper.Slider("高度", gridData.height, 0, 1000); gridData.size = EditorUIHelper.Slider("六边形边长", gridData.size, 0, 10); EditorUIHelper.Button("更新HexGrid", UpdateHexGrid); _grid.BorderColor = EditorUIHelper.ColorField(_grid.BorderColor, "边界颜色"); EditorUIHelper.PropertyField(serializedObject, "Renderer", "网格颜色"); _grid.ShowScope = EditorUIHelper.Toggle("显示边界", _grid.ShowScope); _grid.ShowGrid = EditorUIHelper.Toggle("显示网格", _grid.ShowGrid); } EditorUIHelper.Space(); _grid.BrushData = EditorUIHelper.ObjectField <BrushData>(_grid.BrushData, "笔刷"); var brushData = _grid.BrushData; if (brushData == null) { EditorUIHelper.Space(); EditorUIHelper.Button("创建笔刷", CreateBrushData); } else { EditorUIHelper.Button("编辑笔刷", () => BrushDataEditorWindow.Open(brushData)); EditorUIHelper.Space(); _brushType = EditorUIHelper.EnumPopup <BrushData.BrushType>(_brushType, "笔刷类型"); if (_brushType != BrushData.BrushType.None) { if (brushData.pathBrushes.Count > 0) { _curBrush = EditorUIHelper.Popup("刷路", _curBrush, brushData.pathBrushes.Select(brush => brush.name).ToArray()); } _brushFeature.brushOptionType = EditorUIHelper.EnumPopup <BrushFeature.BrushOptionType>(_brushFeature.brushOptionType); _brushFeature.brushRange = EditorUIHelper.IntSlider("笔刷大小", _brushFeature.brushRange, 0, 10); } } if (EditorUIHelper.Changed) { serializedObject.ApplyModifiedProperties(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); if (gridData != null) { EditorUtility.SetDirty(gridData); } } }