Netcode: receiver-side paint reveal gate + fur pipette gating
Hide remote avatars until this client has actually applied a snapshot reaching the owner-published baseline cutoff, preventing the default grey/white material from flashing before a player's painting has loaded. - PlayerPaintSync: owner-authoritative _publishedCutoff NetworkVariable, receiver tracks _appliedCutoff; explicit blank publish for never-painted avatars so they still reveal. - NetworkPlayerSetup: cache _paintSync, hide body renderers on spawn, gate UpdateVisibility on PaintRevealReady. - MeshPainter.Pick: fur toggle now follows pickedHeight (own paint-mesh only), matching the Occlusion/Height pipette behaviour. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
49704448e9
commit
ed09d6a1b0
3 files changed
+47
-6
No files matched your search
@@ -8,8 +8,9 @@ public partial class MeshPainter
|
||||
[Header("Brush - pipette (eyedropper)")]
|
||||
[Tooltip("Pipette mode: a click samples the channel values at the hit point on ANY surface " +
|
||||
"(albedo, metallic, smoothness, emission) and adopts them into the brush (opacities/alphas " +
|
||||
"left untouched) instead of painting. Height (occlusion) is adopted and its toggle enabled " +
|
||||
"only when our own paint mesh is picked; any other surface disables the height toggle. On a " +
|
||||
"left untouched) instead of painting. Height (occlusion) and fur length are adopted and their " +
|
||||
"toggles enabled only when our own paint mesh is picked; any other surface disables those " +
|
||||
"toggles and keeps their values. On a " +
|
||||
"foreign object the data channels are read texel-exact from the material; albedo follows " +
|
||||
"'Pipette Albedo From Screen'. Held button picks once.")]
|
||||
public bool pipette = false;
|
||||
@@ -84,9 +85,10 @@ public partial class MeshPainter
|
||||
paintMetallicSmoothness = true;
|
||||
paintOcclusion = pickedHeight;
|
||||
paintEmission = true;
|
||||
// Fur toggle always turns on with a pick; the length is only adopted off our own paint mesh
|
||||
// (pickedHeight), so a foreign-surface pick enables fur but leaves furLength at its current value.
|
||||
fur = true;
|
||||
// Fur mirrors height/occlusion: adopted and its toggle enabled only when our OWN paint mesh was
|
||||
// picked (pickedHeight, where furLength was sampled); any other surface disables the fur toggle
|
||||
// and keeps furLength.
|
||||
fur = pickedHeight;
|
||||
|
||||
pipette = false;
|
||||
|
||||
|
||||
Reference in new issue
Block a user