public Color Colorize(RigidBody rb) { if (rb == null) { throw new ArgumentNullException("rb"); } var colorData = GetOrCreateColorData(rb); if (colorData.Colorized) { return(colorData.Color); } var shapes = rb.GetComponentsInChildren <Shape>(); foreach (var shape in shapes) { if (!shape.IsEnabledInHierarchy) { continue; } var shapeFilters = ShapeDebugRenderData.GetMeshFilters(shape); foreach (var shapeFilter in shapeFilters) { m_meshColors.Add(shapeFilter, colorData.Color); } } colorData.Colorized = true; return(colorData.Color); }
public void Highlight(RigidBody rb, SelectionType selectionType) { if (rb == null) { return; } Color rbColor = Colorize(rb); foreach (var shape in rb.Shapes) { if (!shape.IsEnabledInHierarchy) { continue; } var shapeFilters = ShapeDebugRenderData.GetMeshFilters(shape); foreach (var shapeFilter in shapeFilters) { m_meshColors[shapeFilter] = selectionType == SelectionType.ConstantColor ? ChangeColorHSVDelta(rbColor, HSVDeltaData.SelectedRigidBody) : TimeInterpolator.Lerp(rbColor, ChangeColorHSVDelta(rbColor, HSVDeltaData.HighlightedRigidBodyMax)); } } Color filterColor = ColorizeMeshFilters(rb); var filters = rb.GetComponentsInChildren <MeshFilter>(); foreach (var filter in filters) { m_meshColors[filter] = selectionType == SelectionType.ConstantColor ? ChangeColorHSVDelta(filterColor, HSVDeltaData.SelectedMeshFilter) : TimeInterpolator.Lerp(filterColor, ChangeColorHSVDelta(filterColor, HSVDeltaData.HighlightedRigidBodyMax)); } }
public void Highlight(Shape shape, SelectionType selectionType) { if (shape == null) { return; } RigidBody rb = shape.GetComponentInParent <RigidBody>(); Color color = rb != null?Colorize(rb) : ShapeColor; var shapeFilters = ShapeDebugRenderData.GetMeshFilters(shape); foreach (var shapeFilter in shapeFilters) { m_meshColors[shapeFilter] = selectionType == SelectionType.ConstantColor ? ChangeColorHSVDelta(color, HSVDeltaData.SelectedShape) : TimeInterpolator.Lerp(color, ChangeColorHSVDelta(color, HSVDeltaData.HighlightedShapeMax)); } }