public void Paint(GTexturePainterArgs args) { IGTexturePainter p = ActivePainter; if (p == null) { return; } FillArgs(ref args); #if UNITY_EDITOR if (args.MouseEventType == GPainterMouseEventType.Down) { Editor_CreateInitialHistoryEntry(args); } #endif IEnumerator <GStylizedTerrain> terrains = GStylizedTerrain.ActiveTerrains.GetEnumerator(); while (terrains.MoveNext()) { if (terrains.Current.GroupId != GroupId && GroupId >= 0) { continue; } p.Paint(terrains.Current, args); } #if UNITY_EDITOR if (args.MouseEventType == GPainterMouseEventType.Up) { Editor_CreateHistory(args); } #endif }
public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); painter.GroupId = GEditorCommon.ActiveTerrainGroupPopupWithAllOption("Group Id", painter.GroupId); painter.ForceUpdateGeometry = EditorGUILayout.Toggle("Force Update Geometry", painter.ForceUpdateGeometry); painter.Editor_EnableHistory = EditorGUILayout.Toggle("Enable History", painter.Editor_EnableHistory); painter.Editor_EnableLivePreview = EditorGUILayout.Toggle("Enable Live Preview", painter.Editor_EnableLivePreview); bool isMaskPainterInUsed = painter.ActivePainter is GMaskPainter; if (!isMaskPainterInUsed) { painter.EnableTerrainMask = EditorGUILayout.Toggle("Enable Terrain Mask", painter.EnableTerrainMask); } GEditorSettings.Instance.topographic.enable = EditorGUILayout.Toggle("Enable Topographic", GEditorSettings.Instance.topographic.enable); DrawPaintMode(); IGTexturePainter p = painter.ActivePainter; if (p == null) { EditorGUILayout.LabelField("No painter found!", GEditorCommon.WordWrapItalicLabel); } else { DrawInstructionGUI(); DrawBrushMaskGUI(); if (painter.Mode == GTexturePaintingMode.Splat || painter.Mode == GTexturePaintingMode.Custom) { DrawSplatGUI(); } DrawBrushGUI(); if (painter.ActivePainter != null && painter.ActivePainter is IGTexturePainterWithCustomParams) { IGTexturePainterWithCustomParams activePainter = painter.ActivePainter as IGTexturePainterWithCustomParams; activePainter.Editor_DrawCustomParamsGUI(); } GEditorCommon.DrawBackupHelpBox(); } if (EditorGUI.EndChangeCheck()) { GUtilities.MarkCurrentSceneDirty(); } }
public void Paint(GTexturePainterArgs args) { IGTexturePainter p = ActivePainter; if (p == null) { return; } FillArgs(ref args); #if UNITY_EDITOR List <GStylizedTerrain> overlappedTerrain = GPaintToolUtilities.CheckBrushOverlap(groupId, args.WorldPointCorners); if (args.MouseEventType == GPainterMouseEventType.Down || args.MouseEventType == GPainterMouseEventType.Drag) { Editor_CreateInitialHistoryEntry(args, overlappedTerrain); } #endif IEnumerator <GStylizedTerrain> terrains = GStylizedTerrain.ActiveTerrains.GetEnumerator(); while (terrains.MoveNext()) { if (terrains.Current.GroupId != GroupId && GroupId >= 0) { continue; } p.Paint(terrains.Current, args); } #if UNITY_EDITOR EditedTerrains.UnionWith(overlappedTerrain); if (args.MouseEventType == GPainterMouseEventType.Up) { Editor_CreateHistory(args); currentInitialBackupName = null; InitialRecordedTerrains.Clear(); EditedTerrains.Clear(); } #endif }