0d14980a76625f0a100221e4f3ed77b4662606ae
MapPropIds (in MeshPainter.Backend.cs) referenced the *Id fields from the MeshPainter.cs partial in its field initializer. Static field-initializer order across partial-class files is unspecified in C#; after the script reorg the composite array initialized before the *Id fields and captured 0 for every property id. HasProperty(0) is always false, so AssignMapTexture bound no maps at all -> the shader fell back to its white default textures, making every fresh avatar fully glossy (smoothness 1) and emissive. Build MapPropIds lazily on first access (runtime, after all static initializers) so the file order no longer matters. The per-stroke allocation savings are preserved; only a single null-check per call is added. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Chameleon
A Unity mesh-painting game inspired by Meccha Chameleon — not a 1:1 clone. You paint your character directly on its 3D mesh to blend into the environment, and move with an extended traversal kit (run, jump, slope-slide, wall-climb).
Status: early prototype. Core painting and movement work; the hide-and-seek game loop (roles, rounds, scoring, multiplayer) is not built yet.
Features so far
- Seamless mesh painting straight onto the character's 3D mesh (GPU + CPU path, edge-dilation against seams).
- Third-person character controller — camera-relative WASD, jump, gravity, slope-sliding off too-steep surfaces, hold-to-sprint and acceleration/deceleration for smooth ramp-up and roll-out.
- Wall-climb + mantle — climb walls/ceilings (W approach/up, S detach, A/D sideways) and pull up over top edges (or hop over slope tops) instead of dropping.
- Cinemachine orbit camera — mouse look, interpolated scroll zoom, smoothed orbit rotation, collision deocclusion.
- Animator hookup — drives a
Runningbool while moving on the ground. - Game mode manager — extensible state machine, switch with Tab:
- Player Control — move + mouse look.
- Paint — no movement, left-click paints, hold right-click to orbit.
Controls
| Input | Action |
|---|---|
| WASD | Move (camera-relative) |
| Shift (hold) | Sprint |
| Space | Jump |
| Mouse | Look / orbit camera |
| Mouse wheel | Zoom |
| Left click | Paint (Paint mode) |
| Tab | Switch mode (Player Control ⇄ Paint) |
Getting started
- Open the project with Unity 6000.3.11f1 (Unity 6).
- Open
Assets/Scenes/SampleScene.unity. - Press Play, move with WASD, press Tab to switch to Paint mode and paint.
Cinemachine (com.unity.cinemachine) and the Input System are resolved
automatically via the package manifest.
Project layout
Assets/Scripts/— gameplay scripts (PlayerCharacterController,MeshPainter,ThirdPersonOrbitInput,GameModeManager, modes,FrameRateLimiter).Assets/Scenes/—SampleScene(the playground).Docs/GAME_DESIGN.md— design notes and the full feature checklist (German).
Roadmap
See Docs/GAME_DESIGN.md for what's done and what's next
(color-picker UI, eyedropper, poses, seeker role, rounds, multiplayer).
Description
Unity mesh-painting game (Meccha Chameleon-inspired)
1.1 GiB
0 Stars
1 Watchers
0 Forks
Languages
C#
85.6%
ShaderLab
8%
GLSL
4%
HLSL
2.3%