control Unity Tilmap Tile's Color, Sprite, Transform, with optional modules - TileExtensions
If you like my work, you can support me on Patreon
- Problems
- Solution
- Extendable Tile
- Demo
- Contents
- Script types
- TileExtension list
- How To
- Requriments
- Known issues
- Planned
Existing tilemap tiles are rigid realizations with:
- lack of basic features ( color, transform, sprite manipulations ) which are allowed by TileData / AnimatedTileData
- feature set of any Tile is fixed, no customization / optional modules, that have to add repeatatively byself
- lack of Inspector Undo
- Replace Tile type is big issue (change from RuleTile to TerrainTile etc )
- lack of Copy / Paste
- Rigid custom Inspectors, disallowing use Odin, or built-in Range / Header / Space Attributes for Inspector customization
- SerializeReference to have optional modules
- no use custom Inspector / PropertyDrawers , to allow Odin, save built-in Undo, Copy / Paste, etc
- Demo Scene, tiles, extensions
- unitypackage to direct import
- full source code on Github to explore
- if your project contains Odin Inspector - ExpandableTile will use it, if not
- TypeToLabelAttribute and custom ContextMenu to comfortable usage
- ExtendableTile - CustomTile, that aggregates TileExtensions
- TileExtensionSO - ScriptableObject, containing TileExtension, can be referenced from ScriptableObjectEx
- AnimateSpriteEx - analogue to Animated Tile
- WeightRandomSpriteEx - analogue to Weight Random Tile
- TerrainEx analogue to Terrain Tile
- PipelineTileEx - analogue to Pipeline Tile
- ColorOutlineEx - evaluate Gradeint based on same-tile-neibhours-count, smooth sides
- PositionMapEx - Remap tile position with split random MinMaxCurves for X and Y
- RandomColorEx - Multiply tile color to MinMaxGradient.Evalute(), has Perlin module
- RotateMapEx - Remap tile rotation with random MinMaxCurve for Z
- ScaleMapEx - Remap tile localScale with random MinMaxCurve for XYZ
- ScriptableObjectEx - refers to TileExtensionSO and execute it's TileExtension
- Unity 2020.2 Array became reordable at this version
- #3 some TileExtensions need Enter / Exit PlayMode to Refresh
- #4 at this moment position rerandomized after any changes in any listed ExtendableTile.Extensions
- #5 โ Error log 'Use RegisterCompleteObjectUndo' - not braking anything
- #6 โ MinMaxGradient dropdown almost not clickable - problem in Unity own realization, if you use Odin - it works fine, either you write own CustomPropertyDrawer, or you can switch Inspector to Debug mode, and switch gradient-type there
- #3 RefreshTile() Implementation
- #4 Seed-based Randomization
- #2 SiblingRuleEx (Existing Rule Tile has rigid Inspector, i've ported it to PropertyDrawer for RuleEx, but it's not ready-to-use)