The scene is now Assets/Scenes/Levels/SC101_ConferenceHall.unity, serialized as TEXT: 101KB of YAML, diffable and mergeable for the first time. Root cause of the binary problem, which four earlier approaches had failed to fix: the NavMeshSurface on the Navigation root held its baked NavMeshData *embedded in the scene* rather than as an asset. NavMeshData prefers binary serialization, and one such object forces the whole scene file to binary regardless of the project's Force Text setting — which is why toggling that setting, re-saving, and saving to a new path all did nothing. Bisecting the roots one at a time found it: thirteen roots each saved as text on their own, Navigation did not. Extracting the data to Scenes/Levels/SC101_ConferenceHall/NavMesh-Navigation.asset — which is what baking from the NavMeshSurface inspector produces anyway — lets the scene serialize as text. The embedded copy was the anomaly. The scene was rebuilt rather than copied, because saving the binary scene to a new path reproduces binary. All 14 roots were moved into a fresh scene and verified: roots 14 -> 14, cross-root references 25 -> 25, zero missing scripts. Render settings were carried across by hand, since they do not travel with GameObjects. Nothing is split yet — every object is still in one scene, so no reference crosses a scene boundary. That split is the next step. Also here: the four Editor setup menus no longer each hardcode the scene path; they share NightclubArcadia.EditorTools.ScenePaths, which is what made renaming the scene a four-file edit. Build settings point at the new scene, the URP template leftovers (SampleScene, Readme.asset, TutorialInfo) are deleted, and .gitattributes drops the binary exception that existed only for the old file. EditMode 42/42, YarnCheck 9 files / 35 nodes. Co-Authored-By: Claude Opus 5 <[email protected]>
103 lines
4.1 KiB
Plaintext
103 lines
4.1 KiB
Plaintext
# Nightclub Arcadia — git attributes
|
|
#
|
|
# Two jobs: make Unity's YAML files mergeable, and keep line endings from
|
|
# becoming a source of phantom diffs.
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Unity YAML — text, LF, and merged with UnityYAMLMerge
|
|
# ---------------------------------------------------------------------------
|
|
# The merge driver needs a one-time setup per machine; see §"Merge driver" in
|
|
# CLAUDE.md. Without it git falls back to a normal text merge, which for scenes
|
|
# and prefabs means conflicts that are painful but not silently wrong.
|
|
*.unity text eol=lf merge=unityyamlmerge
|
|
*.prefab text eol=lf merge=unityyamlmerge
|
|
*.asset text eol=lf merge=unityyamlmerge
|
|
*.mat text eol=lf merge=unityyamlmerge
|
|
*.anim text eol=lf merge=unityyamlmerge
|
|
*.controller text eol=lf merge=unityyamlmerge
|
|
*.overrideController text eol=lf merge=unityyamlmerge
|
|
*.physicMaterial text eol=lf merge=unityyamlmerge
|
|
*.physicsMaterial2D text eol=lf merge=unityyamlmerge
|
|
*.playable text eol=lf merge=unityyamlmerge
|
|
*.mask text eol=lf merge=unityyamlmerge
|
|
*.brush text eol=lf merge=unityyamlmerge
|
|
*.flare text eol=lf merge=unityyamlmerge
|
|
*.lighting text eol=lf merge=unityyamlmerge
|
|
*.terrainlayer text eol=lf merge=unityyamlmerge
|
|
*.signal text eol=lf merge=unityyamlmerge
|
|
*.guiskin text eol=lf merge=unityyamlmerge
|
|
*.fontsettings text eol=lf merge=unityyamlmerge
|
|
*.meta text eol=lf
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Source, config and prose
|
|
# ---------------------------------------------------------------------------
|
|
*.cs text eol=lf diff=csharp
|
|
*.yarn text eol=lf
|
|
*.yarnproject text eol=lf
|
|
*.asmdef text eol=lf
|
|
*.asmref text eol=lf
|
|
*.inputactions text eol=lf
|
|
*.shader text eol=lf
|
|
*.compute text eol=lf
|
|
*.cginc text eol=lf
|
|
*.hlsl text eol=lf
|
|
*.shadergraph text eol=lf
|
|
*.json text eol=lf
|
|
*.md text eol=lf
|
|
*.txt text eol=lf
|
|
*.py text eol=lf
|
|
*.sh text eol=lf
|
|
*.csproj text eol=lf
|
|
*.xml text eol=lf
|
|
*.gitattributes text eol=lf
|
|
*.gitignore text eol=lf
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Binary — never diffed, never line-ending converted
|
|
# ---------------------------------------------------------------------------
|
|
*.png binary
|
|
*.jpg binary
|
|
*.jpeg binary
|
|
*.gif binary
|
|
*.tga binary
|
|
*.tif binary
|
|
*.tiff binary
|
|
*.psd binary
|
|
*.exr binary
|
|
*.hdr binary
|
|
*.fbx binary
|
|
*.obj binary
|
|
*.blend binary
|
|
*.wav binary
|
|
*.mp3 binary
|
|
*.ogg binary
|
|
*.aif binary
|
|
*.ttf binary
|
|
*.otf binary
|
|
*.pdf binary
|
|
*.dll binary
|
|
*.pdb binary
|
|
*.so binary
|
|
*.dylib binary
|
|
*.bundle binary
|
|
*.a binary
|
|
*.unitypackage binary
|
|
*.cubemap binary
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Git LFS — deliberately NOT enabled yet
|
|
# ---------------------------------------------------------------------------
|
|
# git-lfs is installed locally, but this repo pushes to a self-hosted server
|
|
# whose LFS support has not been verified, and enabling LFS against a server
|
|
# that lacks it breaks pushing. There is also almost nothing to store yet: one
|
|
# placeholder PNG plus the StarterAssets meshes.
|
|
#
|
|
# When real art lands, verify the server first, then add:
|
|
# *.png filter=lfs diff=lfs merge=lfs -text
|
|
# *.fbx filter=lfs diff=lfs merge=lfs -text
|
|
# *.wav filter=lfs diff=lfs merge=lfs -text
|
|
# and migrate existing blobs with `git lfs migrate import --include=...`.
|
|
# Adding the filter without migrating leaves old blobs outside LFS, which is
|
|
# confusing rather than broken.
|