protected void DoColorPaintAction() { var go = Fsm.GetOwnerDefaultTarget(gameObject); if (UpdateCache(go)) { STETilemap tilemap = cachedComponent as STETilemap; Vector2 center; if ((ePositionType)positionType.Value == ePositionType.LocalPosition) { center = position.Value; } else// if ((ePositionType)positionType.Value == ePositionType.GridPosition) { center = TilemapUtils.GetTileCenterPosition(tilemap, (int)position.Value.x, (int)position.Value.y); } if (applyToTilemapGroup.Value && tilemap.ParentTilemapGroup) { tilemap.ParentTilemapGroup.IterateTilemapWithAction( (STETilemap tmap) => { TilemapVertexPaintUtils.VertexPaintCircle(tmap, center, radius.Value, tileColor.Value, (eBlendMode)blendingMode.Value, (eTileColorPaintMode)tileColorPaintMode.Value == eTileColorPaintMode.Vertex, intensityCurve.curve); tmap.UpdateMesh(); } ); } else { TilemapVertexPaintUtils.VertexPaintCircle(tilemap, center, radius.Value, tileColor.Value, (eBlendMode)blendingMode.Value, (eTileColorPaintMode)tileColorPaintMode.Value == eTileColorPaintMode.Vertex, intensityCurve.curve); tilemap.UpdateMesh(); } } }
public override void OnSceneGUI() { base.OnSceneGUI(); if (!m_tilemap && !m_tileset) { return; } Vector2 center = Vector2.zero; if ((ePositionType)m_action.positionType.Value == ePositionType.LocalPosition) { center = m_action.position.Value; } else// if ((ePositionType)positionType.Value == ePositionType.GridPosition) { if (m_tilemap) { center = TilemapUtils.GetTileCenterPosition(m_tilemap, (int)m_action.position.Value.x, (int)m_action.position.Value.y); } else if (m_tileset) { center = TilemapUtils.GetGridWorldPos((int)m_action.position.Value.x, (int)m_action.position.Value.y, m_tileset.TilePxSize / m_tileset.PixelsPerUnit); } } EditorCompatibilityUtils.CircleCap(0, center, Quaternion.identity, m_action.radius.Value); }