public void OnEnable() { brush.SetBrushType(false, BrushTypeSphere.Inst); if (!rendy) { rendy = GetComponent <MeshRenderer>(); } if (!rigid) { rigid = GetComponent <Rigidbody>(); } if (!_collider) { _collider = GetComponent <SphereCollider>(); } if (rendy) { rendy.sharedMaterial.color = brush.Color; } brush.targetIsTex2D = false; }
public bool Inspect() { var changed = false; pegi.fullWindowDocumentationClickOpen(Documentation); "Bullets:".edit(50, ref shoots, 1, 50).nl(ref changed); "Spread:".edit(50, ref spread, 0f, 1f).nl(ref changed); if ("Fire!".Click().nl()) { Paint(); } brush.Targets_PEGI().nl(ref changed); brush.Mode_Type_PEGI().nl(ref changed); brush.ColorSliders().nl(ref changed); if (brush.targetIsTex2D) { "Script expects Render Texture terget".writeWarning(); pegi.nl(); if ("Switch to Render Texture".Click()) { brush.targetIsTex2D = false; } } else if (brush.GetBrushType(false).GetType() != typeof(BrushTypes.Sphere)) { "This script works with Sphere Brush only".writeWarning(); if ("Switch to Sphere Brush".Click()) { brush.SetBrushType(false, BrushTypes.Sphere.Inst); } } if (!brush.PaintingRGB) { "Enable RGB, disable A to use faster Brush Shader (if painting to RenderTexture).".writeHint(); } return(changed); }
public bool BrushConfigPEGI(ref bool overrideBlitMode, BrushConfig br) { var changed = false; var p = InspectedPainter; var volTex = p.GetVolumeTexture(); if (volTex) { var tex = volTex.texture; if (tex) { "Volume is a {0} texture".F(tex.IsColorTexture() ? "Color" : "Non-Color Data").write(); #if UNITY_EDITOR if (tex.IsColorTexture()) { pegi.nl(); var imp = tex.GetTextureImporter(); if ((imp != null) && "FIX texture".Click() && (imp.WasWrongIsColor(false))) { imp.SaveAndReimport(); } } #endif pegi.nl(); } else { "Volume has no texture".writeWarning(); } overrideBlitMode = true; var id = p.TexMeta; var cpuBlit = id.TargetIsTexture2D().nl(); br.showingSize = !_enableRayTracing || cpuBlit; if (!cpuBlit) { if (BrushConfig.showAdvanced || _enableRayTracing) { "Ray-Tracing".toggleIcon(ref _enableRayTracing, true).changes(ref changed); if (br.useAlphaBuffer) { icon.Warning.write( "Ray Tracing doesn't use Alpha buffer. Alpha buffer will be automatically disabled"); } } if ("Ray Trace Camera".conditional_enter( _enableRayTracing && PainterCamera.depthProjectorCamera, ref _exploreRayTaceCamera).nl_ifFoldedOut()) { "Min".edit(40, ref minFov, 60, maxFov - 1).nl(ref changed); "Max".edit(40, ref maxFov, minFov + 1, 170).nl(ref changed); rayTraceCameraConfiguration.Nested_Inspect().nl(ref changed); } if (smoothing > 0 || BrushConfig.showAdvanced) { pegi.nl(); "Smoothing".edit(70, ref smoothing, 0, 1).changes(ref changed); "Best used in the end".fullWindowDocumentationClickOpen(); pegi.nl(); } if (!_exploreRayTaceCamera && _enableRayTracing) { var dp = PainterCamera.depthProjectorCamera; if (!dp) { if ("Create Projector Camera".Click().nl()) { PainterCamera.GetProjectorCamera(); } } else if (dp.pauseAutoUpdates) { pegi.nl(); "Light Projectors paused".toggleIcon(ref dp.pauseAutoUpdates).nl(ref changed); } pegi.nl(); } } if (!cpuBlit) { pegi.nl(); if (!br.GetBrushType(false).IsAWorldSpaceBrush) { "Only World space brush can edit volumes".writeHint(); pegi.nl(); if ("Change to Sphere brush".Click()) { br.SetBrushType(false, BrushTypes.Sphere.Inst); } } } pegi.nl(); if (!_exploreRayTaceCamera && PainterCamera.Data.showVolumeDetailsInPainter && (volTex.name + " " + VolumeEditingExtensions.VolumeSize(id.texture2D, volTex.hSlices)) .foldout(ref _exploreVolumeData).nl()) { volTex.Nested_Inspect().changes(ref changed); if (volTex.NeedsToManageMaterials) { var painterMaterial = InspectedPainter.Material; if (painterMaterial) { if (!volTex.materials.Contains(painterMaterial)) { if ("Add This Material".Click().nl()) { volTex.AddIfNew(p); } } } } } if (!cpuBlit) { MsgPainter.Hardness.GetText() .edit(MsgPainter.Hardness.GetDescription(), 70, ref br.hardness, 1f, 5f).nl(ref changed); } var tmpSpeed = br._dSpeed.Value; if (MsgPainter.Speed.GetText().edit(40, ref tmpSpeed, 0.01f, 4.5f).nl(ref changed)) { br._dSpeed.Value = tmpSpeed; } if (br.showingSize) { var maxScale = volTex.size * volTex.Width * 4; "Scale:".edit(40, ref br.brush3DRadius, 0.001f * maxScale, maxScale * 0.5f) .changes(ref changed); if (cpuBlit && !_brushShaderFroRayTrace && br.brush3DRadius > BrushScaleMaxForCpu(volTex)) { icon.Warning.write( "Size will be reduced when panting due to low performance of the CPU brush for volumes"); } } pegi.nl(); } return(changed); }