Current-content Unity 6.6 port, 17 September 2026
This is an engine/package/API port of the current game content, not an engine-binary-only change and not the old Rampage66 project. No Editor, build or GPU workload was launched by the preparation agent. After the pre-import delta was frozen, the root agent launched the build described below.
Provenance and unchanged content
- Source:
C:/Unity Projects/MotoRacer - Rampage. - Destination:
C:/Unity Projects/MotoRacer - Rampage/Tools/Diagnostics/CurrentContentUnity66-20260917. - Baseline: current-content-snapshot.json, 1,116 copied files in Assets, Packages and ProjectSettings; full copies without hard links. All original source file SHA-256 values were rechecked after the port and still match the snapshot.
- Every changed/deleted/added file is listed below. All other copied files still match the snapshot, including scenes, meshes, textures, shaders, settings and authored track data. No files or package lock from the old Rampage66 were used.
- Editor:
C:/Unity Editors/6000.6.0f1/Editor/Unity.exe, the complete short-path installation.
Deliberate changes
- Manifest: HDRP 17.3.0 -> 17.6.0, uGUI 2.0.0 -> 2.6.0. Other direct pins unchanged. Installed HDRP 17.6 requires Core, ShaderGraph, VFX Graph and HDRP Config 17.6. The copied lock was removed so this Editor resolves its dependency graph. Record the regenerated lock: Unity 6.6 also supplies built-in Cinemachine/Collections 6.6.0, Burst 2.0.0, Mathematics 1.4.0 and Test Framework 1.8.0; their actual resolved versions are not assumed to stay at older manifest pins.
- Exactly 15 obsolete
GetInstanceID()calls in ten current C# files were ported. Direct metadata inspection of the installed 6.6 CoreModule proves both GetInstanceID and implicit EntityId/int conversion areObsolete(error=true). - Full
EntityIdvalues remain in identity-sensitive comparisons: terrain/wall caches, particle/audio emitter tie-breaking and material batching keys. Hashes are used only for existing 32-bit random/audio seeds and legacy numeric diagnostic fields. Those hash fields are not collision-free identity proofs. Audio seed values and deterministic tie order can differ between engine versions; they are not promised bit-identical. - Added clone-only
Rampage.Editor.CurrentContentUpgradeBuild.Runand meta. It invokes the existing private BuildPlayer method, without Configure, Bootstrap rebuilding or authoring bakes. Guards require the exact snapshot path, Unity 6000.6.0, an explicit opt-in flag/output and unchanged explicit DX11/DX12 API order. Existing BuildPlayer verifies Both Forward/Deferred support and writes its ordinary build manifest. The sourceCommit field is populated withsnapshot-sha256:<baseline manifest hash>rather than falsely implying a clean Git commit.
ProjectVersion.txt is deliberately unchanged before import; Unity will migrate it in the copy. Record any additional importer/settings changes after first import. The current HDRP asset is already Both=3 and the player settings already specify DX11 followed by DX12, automatic selection disabled.
Root-owned build invocation
Root launched this invocation at 2026-09-16 23:38:44 UTC / 17 September 01:38:44 CEST, PID 43492, after reviewing the frozen port. Source: build-launch.json. The preparation agent did not launch it or edit the snapshot while this build runs. Unlike the earlier proposed invocation, the actual invocation omits -nographics.
& 'C:/Unity Editors/6000.6.0f1/Editor/Unity.exe' -batchmode -quit -projectPath 'C:/Unity Projects/MotoRacer - Rampage/Tools/Diagnostics/CurrentContentUnity66-20260917' -executeMethod Rampage.Editor.CurrentContentUpgradeBuild.Run -rampageCurrentContentUpgradeBuild -rampageBuildOutput 'C:/Unity Projects/MotoRacer - Rampage/Builds/Windows-CurrentContent-Unity66-20260917' -logFile 'C:/Unity Projects/MotoRacer - Rampage/Docs/QA/20260917-user-crash-61088/unity66-build.log'
Static verification: no GetInstanceID calls remain in copied Rampage C#; identity fields use EntityId without deprecated integer conversions; source hashes match baseline. Full C#/shader/import validation is pending the root-owned Editor build. No successful compile or runtime result is claimed here.
Exact pre-import delta
Baseline manifest SHA-256: 9FCFA4CBE8B7C4333BD1709FD92220736C81AC749572BFD88185B895416DAE67.
| File | Original SHA-256 | Port SHA-256 |
|---|---|---|
Assets/Rampage/Runtime/AI/BikeAI.cs |
EE112B21B938C14DBBA199861063678EE03CF47295AAECD45694B3F595E47CAD |
F4E2FA7FF151934ABF7BBAA4DEAA1B049E5375DC6FF9F5CBC6BE5F11765890B2 |
Assets/Rampage/Runtime/Audio/OpponentEngineAudio.cs |
BF26140CECFBA70B392C82A3B6CF34386A53676E810852121C3C7FFF86339D9A |
FFCF61AF5BA8087DC1F64661107810FB4A21F799138D04D591327A156CBC7878 |
Assets/Rampage/Runtime/Bike/BikeController.cs |
98CC006280DBAB5B331CF69A31EB125AE916D9FBF481923D9F3E2595DDD18581 |
DD15B94B1A33F047CD963E70143FF6A9553F37B7F254E61C9F63F26B872F0C83 |
Assets/Rampage/Runtime/Effects/BikeSurfaceDebris.cs |
AF9B134098F5DB50464E98C322D0A3A4342B71B7A4451CCF4618AE34CFDE8BDB |
6CD9009731BD230CCF8F6B1B1793E5CF9E128722F594847FB57D2D870C5F9F3F |
Assets/Rampage/Runtime/Effects/CollisionSparks.cs |
D37E1CF3510B028ACDDE66A43E000BF5855FB09439F8A6E5F96C5DD3DF4EFBDD |
E53BAB364FCD13B16E903FB9E71AF9D2974C17BC908BEC85D7048B1456D500A3 |
Assets/Rampage/Runtime/QA/CampaignMemoryQA.cs |
DDA04CD3154D57E7A036B21918F6FF15674E3F9B9FC9B6FE793F33FCBCA25001 |
EE3DC15D869E519479C478BFCEEB9210B6B84370D37D9606D12B59EC7AE70AE6 |
Assets/Rampage/Runtime/QA/CrashFlightRecorder.cs |
8DE4A30CDA302070D9A959890D31CA99AD33558A7A69C41F4FC367411A4C986E |
09820BEFE4C4CED32CD3A8470AED252524F8E64FC32DF105F1AE693D0E5FA2AF |
Assets/Rampage/Runtime/World/ChapterTerrain.cs |
53D8E5882944117E92F3B2A2DA083C5C267670A6DDF7BA49E2FD7FB381DD87B9 |
40A4B93D027C22DBCB206CCC73FFCDC16D36D7652E570C33CD3729E5465EA78B |
Assets/Rampage/Runtime/World/WorldGeometry.cs |
FF3816AFF8E3CC0FB11E0A9CDCF90B87F50753D9C47D7DDF3484A5E796AF33EE |
6DFB52071E3E8E1C6BE8A6A39EF59544EFBC77900C6882F95D834E33F8DF3F38 |
Assets/Rampage/Runtime/World/WorldLandmarks.cs |
DCAB1FF68E9931FD48B336783430AAFD04D41E8DB819D506567314682020038E |
65AE4B81DFC43F9DC814B5AD5C036CEE5C6C0DCB921A2679AB69A3935A5588A8 |
Packages/manifest.json |
3182A9A70AA860A42C897630D0AB90B9228B131AA5A40275E2D86DAA8F5A710B |
8C07698D6EA0DE601992AE9A18381A5613D0299DDA26885D5874C496C173526F |
Packages/packages-lock.json |
10B392AC313F55D801F7F7D06F2E456002568FD652EA3E8E04AD165DBDAC9FE4 |
DELETED |
Assets/Rampage/Editor/CurrentContentUpgradeBuild.cs |
NEW |
87AA1A5601D498EB2C853FE43DD8F97936E0C67A6DA04C2E652DD9E1E9E7FE54 |
Assets/Rampage/Editor/CurrentContentUpgradeBuild.cs.meta |
NEW |
9E6FB5430F85A6FDEE079B86056ECD02409346FECC43472367D491F336BA1D9E |
Complete text diff
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\AI\\BikeAI.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\AI\\BikeAI.cs"
index 554ae01..6097e29 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\AI\\BikeAI.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\AI\\BikeAI.cs"
@@ -39,7 +39,7 @@ namespace Rampage
if (!Bike || !Bike.Track || !Bike.Body || !Bike.Tuning) return;
if (!_ready)
{
- _randomState = (uint)(Mathf.Abs(GetInstanceID()) + 43) * 747796405u;
+ _randomState = (uint)(Mathf.Abs(GetEntityId().GetHashCode()) + 43) * 747796405u;
_lane = DesiredLane = LaneOffset;
_decisionTime = Time.time + NextRandom() * .4f;
_attackTime = Time.time + 1.4f + NextRandom() * 2f;
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Audio\\OpponentEngineAudio.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Audio\\OpponentEngineAudio.cs"
index 56d2b2c..6273b16 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Audio\\OpponentEngineAudio.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Audio\\OpponentEngineAudio.cs"
@@ -15,16 +15,17 @@ namespace Rampage
static int budgetFrame=-1;
AudioSource source;
float voiceTuning=1;
- int stableId,layer=-1;
+ EntityId stableId;
+ int voiceSeed,layer=-1;
bool selected;
void OnEnable()
- {stableId=GetInstanceID();if(!Emitters.Contains(this)) Emitters.Add(this);budgetFrame=-1;}
+ {stableId=GetEntityId();voiceSeed=stableId.GetHashCode();if(!Emitters.Contains(this)) Emitters.Add(this);budgetFrame=-1;}
void Start() {if(!Bike) Bike=GetComponent<BikeController>();EnsureSource();}
void EnsureSource()
{
if(source) return;
- voiceTuning=.983f+Mathf.Abs(stableId%35)*.001f;
+ voiceTuning=.983f+Mathf.Abs(voiceSeed%35)*.001f;
var child=new GameObject("Nearby recorded rival exhaust");child.transform.SetParent(transform,false);
child.transform.localPosition=new Vector3(.16f,-.17f,-.48f);
source=child.AddComponent<AudioSource>();source.playOnAwake=false;source.loop=true;
@@ -53,7 +54,7 @@ namespace Rampage
source.volume=Mathf.MoveTowards(source.volume,0,dt*7);
if(source.volume>.0001f) return;
source.Stop();layer=wanted;source.clip=MotorcycleRecordings.Get(layer);
- if(source.clip) source.timeSamples=Mathf.Abs(stableId%source.clip.samples);
+ if(source.clip) source.timeSamples=Mathf.Abs(voiceSeed%source.clip.samples);
}
if(!source.clip) return;
float anchor=layer==4?4180:MotorcycleRecordings.Anchors[layer];
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Bike\\BikeController.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Bike\\BikeController.cs"
index 14d148c..5ddaa59 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Bike\\BikeController.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Bike\\BikeController.cs"
@@ -423,8 +423,8 @@ namespace Rampage
gripSum+=properties.Grip;brakeSum+=properties.BrakeTraction;driveSum+=properties.DriveTraction;rollingSum+=properties.RollingResistance;
float clearance = hit.distance + Tuning.ContactRadius - .2f;
float compression = Mathf.Clamp(Tuning.RideHeight - clearance, -Tuning.SuspensionTravel, Tuning.SuspensionTravel);
- if (axle > 0) { FrontSuspensionCompression = compression; FrontWheelContact = measured; FrontGroundColliderId = hit.collider.GetInstanceID(); FrontGroundPoint=hit.point; }
- else { RearSuspensionCompression = compression; RearWheelContact = measured; RearGroundColliderId = hit.collider.GetInstanceID(); RearGroundPoint=hit.point; }
+ if (axle > 0) { FrontSuspensionCompression = compression; FrontWheelContact = measured; FrontGroundColliderId = hit.collider.GetEntityId().GetHashCode(); FrontGroundPoint=hit.point; }
+ else { RearSuspensionCompression = compression; RearWheelContact = measured; RearGroundColliderId = hit.collider.GetEntityId().GetHashCode(); RearGroundPoint=hit.point; }
float acceleration = 4.905f + (Tuning.RideHeight - clearance) * Tuning.SpringAcceleration * .5f
- verticalSpeed * Tuning.SpringDamping * .5f;
acceleration=Mathf.Clamp(acceleration,0f,52f);
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Effects\\BikeSurfaceDebris.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Effects\\BikeSurfaceDebris.cs"
index 0d22eba..bb85cad 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Effects\\BikeSurfaceDebris.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Effects\\BikeSurfaceDebris.cs"
@@ -22,7 +22,7 @@ namespace Rampage
{
bike = owner;
resetVersion = owner ? owner.ResetVersion : 0;
- randomState = unchecked((uint)GetInstanceID() * 747796405u) | 1u;
+ randomState = unchecked((uint)GetEntityId().GetHashCode() * 747796405u) | 1u;
Clear();
}
@@ -84,13 +84,13 @@ namespace Rampage
if (!player) return false;
float distance = (bike.transform.position - player.transform.position).sqrMagnitude;
if (!Finite(distance) || distance > RangeSquared) return false;
- int ahead = 0, id = bike.GetInstanceID();
+ int ahead = 0; EntityId id = bike.GetEntityId();
foreach (var other in BikeController.Active)
{
if (other == bike || !Eligible(other)) continue;
float otherDistance = (other.transform.position - player.transform.position).sqrMagnitude;
if (Finite(otherDistance) && (otherDistance < distance ||
- (otherDistance == distance && other.GetInstanceID() < id))) ahead++;
+ (otherDistance == distance && other.GetEntityId() < id))) ahead++;
}
return ahead < NearbyEmitters;
}
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Effects\\CollisionSparks.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Effects\\CollisionSparks.cs"
index 5d83f10..c13f914 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\Effects\\CollisionSparks.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\Effects\\CollisionSparks.cs"
@@ -25,7 +25,7 @@ namespace Rampage
Unsubscribe();
_bike = bike;
_nextBurstTime = 0f;
- _randomState = unchecked((uint)GetInstanceID() * 747796405u) | 1u;
+ _randomState = unchecked((uint)GetEntityId().GetHashCode() * 747796405u) | 1u;
if (!_particles) CreateParticles();
else _particles.Clear(true);
Subscribe();
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\QA\\CampaignMemoryQA.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\QA\\CampaignMemoryQA.cs"
index aade0f2..a0408b1 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\QA\\CampaignMemoryQA.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\QA\\CampaignMemoryQA.cs"
@@ -172,7 +172,7 @@ namespace Rampage
{
var inventory=new TextureInventory{cycle=cycle,chapter=chapter,stage=stage,phase=phase};
foreach(var texture in Resources.FindObjectsOfTypeAll<Texture>())if(texture)
- inventory.textures.Add(new TextureEntry{instanceId=texture.GetInstanceID(),name=texture.name,type=texture.GetType().Name,
+ inventory.textures.Add(new TextureEntry{instanceId=texture.GetEntityId().GetHashCode(),name=texture.name,type=texture.GetType().Name,
width=texture.width,height=texture.height,bytes=Profiler.GetRuntimeMemorySizeLong(texture)});
File.AppendAllText(Path.Combine(output,"campaign-memory-textures.jsonl"),JsonUtility.ToJson(inventory)+"\n");
}
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\QA\\CrashFlightRecorder.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\QA\\CrashFlightRecorder.cs"
index 5f7cdd1..57c442c 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\QA\\CrashFlightRecorder.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\QA\\CrashFlightRecorder.cs"
@@ -179,7 +179,7 @@ namespace Rampage
var camera = app.MainCamera;
if (camera)
{
- sample.cameraPresent = true; sample.cameraId = camera.GetInstanceID(); sample.cameraEnabled = camera.enabled;
+ sample.cameraPresent = true; sample.cameraId = camera.GetEntityId().GetHashCode(); sample.cameraEnabled = camera.enabled;
sample.cameraPosition = Vector(camera.transform.position, "camera.position", invalid);
Quaternion rotation = camera.transform.rotation;
sample.cameraRotation = new Quaternion(Number(rotation.x, "camera.rotation.x", invalid),
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\World\\ChapterTerrain.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\World\\ChapterTerrain.cs"
index b27379d..80f7874 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\World\\ChapterTerrain.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\World\\ChapterTerrain.cs"
@@ -11,7 +11,7 @@ namespace Rampage
internal static readonly Rect AlpineMapBounds=new Rect(AlpineElevation.MinX,AlpineElevation.MinZ,AlpineElevation.Width,AlpineElevation.Depth);
static readonly Dictionary<string,Material> Surfaces=new Dictionary<string,Material>();
static readonly Dictionary<int,float> CutAreaBySection=new Dictionary<int,float>();
- static int cutTrackId;
+ static EntityId cutTrackId;
static Material roadCutOverlay;
internal static IEnumerable<Material> RepresentativeMaterials
{
@@ -54,7 +54,7 @@ namespace Rampage
{
string chapter=track.Definition.ChapterId;
if(string.IsNullOrEmpty(chapter))return;
- cutTrackId=track.GetInstanceID();CutAreaBySection.Clear();
+ cutTrackId=track.GetEntityId();CutAreaBySection.Clear();
var owner=track.GeneratedRoot.GetComponent<GeneratedWorldResources>();
Rect mapBounds=BoundsFor(track);
Material meadow=TerrainMaterial(track,"meadow",mapBounds,owner);
@@ -237,7 +237,7 @@ namespace Rampage
internal static bool HasCoherentRoadCut(TrackRuntime track,float distance)
{
- return cutTrackId==track.GetInstanceID()&&
+ return cutTrackId==track.GetEntityId()&&
CutAreaBySection.TryGetValue(Mathf.FloorToInt(distance/32),out float area)&&area>=80;
}
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\World\\WorldGeometry.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\World\\WorldGeometry.cs"
index 4c1de71..b7408d3 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\World\\WorldGeometry.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\World\\WorldGeometry.cs"
@@ -288,7 +288,7 @@ namespace Rampage
}
internal WorldMesh At(Vector3 p,Material material,string name,bool collider=false,bool shadows=true)
{
- string key=Mathf.FloorToInt(p.x/cellWidth)+"/"+Mathf.FloorToInt(p.z/cellWidth)+"/"+material.GetInstanceID()+"/"+collider+"/"+shadows;
+ string key=Mathf.FloorToInt(p.x/cellWidth)+"/"+Mathf.FloorToInt(p.z/cellWidth)+"/"+material.GetEntityId().ToString()+"/"+collider+"/"+shadows;
if(!batches.TryGetValue(key,out Batch batch))
{
batch=new Batch {Material=material,Name=name,Collider=collider,Shadows=shadows};batches.Add(key,batch);
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\World\\WorldLandmarks.cs" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\World\\WorldLandmarks.cs"
index ed5152b..f7c324c 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Assets\\Rampage\\Runtime\\World\\WorldLandmarks.cs"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Assets\\Rampage\\Runtime\\World\\WorldLandmarks.cs"
@@ -11,7 +11,7 @@ namespace Rampage
sealed class Part {internal Mesh Mesh;internal Matrix4x4 Matrix;internal string Surface;}
static readonly Dictionary<string,Part[]> Cache=new Dictionary<string,Part[]>();
static readonly Dictionary<long,List<Vector2>> ChineseWallSites=new Dictionary<long,List<Vector2>>();
- static int chineseWallTrackId;
+ static EntityId chineseWallTrackId;
static bool Known(string name)=>name=="PyramidMain"||name=="PyramidCased"||name=="WallWatchtower"||name=="WallSegment20m";
static Part[] Load(string name,int lod)
{
@@ -93,7 +93,7 @@ namespace Rampage
internal static void BuildChineseRidgeWall(TrackRuntime track)
{
ChineseWallSites.Clear();
- chineseWallTrackId=track.GetInstanceID();
+ chineseWallTrackId=track.GetEntityId();
if(track.Definition.ChapterId!="china"||!track.Landmarks)return;
var batches=new WorldBatches(160);
var roads=new RegionalForestCanopy.RoadClearance("china");
@@ -230,7 +230,7 @@ namespace Rampage
}
internal static void PrepareChineseCanopy(TrackRuntime track)
{
- if(chineseWallTrackId!=track.GetInstanceID())ChineseWallSites.Clear();
+ if(chineseWallTrackId!=track.GetEntityId())ChineseWallSites.Clear();
}
static long WallKey(int x,int z)=>((long)x<<32)^(uint)z;
}
diff --git "a/C:\\Unity Projects\\MotoRacer - Rampage\\Packages\\manifest.json" "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Packages\\manifest.json"
index a177c36..0439dc0 100644
--- "a/C:\\Unity Projects\\MotoRacer - Rampage\\Packages\\manifest.json"
+++ "b/C:\\Unity Projects\\MotoRacer - Rampage\\Tools\\Diagnostics\\CurrentContentUnity66-20260917\\Packages\\manifest.json"
@@ -1,10 +1,10 @@
{
"dependencies": {
- "com.unity.render-pipelines.high-definition": "17.3.0",
+ "com.unity.render-pipelines.high-definition": "17.6.0",
"com.unity.inputsystem": "1.20.0",
"com.unity.cinemachine": "3.1.7",
"com.unity.splines": "2.9.1",
- "com.unity.ugui": "2.0.0",
+ "com.unity.ugui": "2.6.0",
"com.unity.test-framework": "1.6.0",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.animation": "1.0.0",
Deleted copied dependency lock: Packages/packages-lock.json (original remains unchanged; full original is identified by the baseline SHA-256 above).
Added: Assets/Rampage/Editor/CurrentContentUpgradeBuild.cs
#if UNITY_EDITOR
using System;
using System.IO;
using System.Reflection;
using System.Runtime.ExceptionServices;
using System.Security.Cryptography;
using UnityEditor;
using UnityEngine;
using UnityEngine.Rendering;
namespace Rampage.Editor
{
/// <summary>Builds the copied current assets without Configure or authoring bakes.</summary>
public static class CurrentContentUpgradeBuild
{
const string ExpectedProject = "C:/Unity Projects/MotoRacer - Rampage/Tools/Diagnostics/CurrentContentUnity66-20260917";
const string SnapshotManifest = "C:/Unity Projects/MotoRacer - Rampage/Docs/QA/20260917-user-crash-61088/current-content-snapshot.json";
public static void Run()
{
string project = Path.GetFullPath(Path.Combine(Application.dataPath, ".."));
if (!string.Equals(project, Path.GetFullPath(ExpectedProject), StringComparison.OrdinalIgnoreCase))
throw new InvalidOperationException("This build method only belongs to the verified current-content snapshot.");
string[] args = Environment.GetCommandLineArgs();
if (Array.IndexOf(args, "-rampageCurrentContentUpgradeBuild") < 0 ||
Array.IndexOf(args, "-rampageBuildOutput") < 0 ||
!Application.unityVersion.StartsWith("6000.6.0", StringComparison.Ordinal))
throw new InvalidOperationException("Explicit snapshot build flag, output directory and Unity 6000.6.0 are required.");
if (PlayerSettings.GetUseDefaultGraphicsAPIs(BuildTarget.StandaloneWindows64))
throw new InvalidOperationException("Snapshot must retain explicit graphics APIs.");
var apis = PlayerSettings.GetGraphicsAPIs(BuildTarget.StandaloneWindows64);
if (apis.Length != 2 || apis[0] != GraphicsDeviceType.Direct3D11 || apis[1] != GraphicsDeviceType.Direct3D12)
throw new InvalidOperationException("Snapshot must retain Direct3D11, Direct3D12 in the existing order.");
string snapshotHash;
using (var stream = File.OpenRead(SnapshotManifest))
using (var sha = SHA256.Create())
snapshotHash = BitConverter.ToString(sha.ComputeHash(stream)).Replace("-", "");
var build = typeof(RampageBuild).GetMethod("BuildPlayer", BindingFlags.NonPublic | BindingFlags.Static,
null, new[] { typeof(string), typeof(string) }, null);
if (build == null) throw new MissingMethodException(typeof(RampageBuild).FullName, "BuildPlayer");
Debug.Log("RAMPAGE_CURRENT_CONTENT_UPGRADE snapshotSha256=" + snapshotHash + " configure=false authoringBake=false");
try { build.Invoke(null, new object[] { "snapshot-sha256:" + snapshotHash, "Default" }); }
catch (TargetInvocationException error)
{
if (error.InnerException == null) throw;
ExceptionDispatchInfo.Capture(error.InnerException).Throw();
throw;
}
}
}
}
#endif
Added: Assets/Rampage/Editor/CurrentContentUpgradeBuild.cs.meta
fileFormatVersion: 2
guid: d738a17e039547688d23c609e90a813d
Observed first-import package resolution
Read at 2026-09-16T23:41:11.7468220Z while the root-owned import was still running. This is the actual regenerated lock, not a guessed dependency list. Lock SHA-256: 013EB45370F95D2ED268F734F0FF88F44E55316410A2871175AA6F560BFE573C. Input System 1.20.0 and Splines 2.9.1 are unchanged. Recheck after the completed build before treating the import delta as final.
| Package | Current main lock | Fresh 6.6 lock |
|---|---|---|
com.unity.burst |
1.8.30 (registry) | 2.0.0 (builtin) |
com.unity.cinemachine |
3.1.7 (registry) | 6.6.0 (builtin) |
com.unity.collections |
2.6.8 (registry) | 6.6.0 (builtin) |
com.unity.ext.nunit |
2.0.5 (builtin) | 2.1.0 (builtin) |
com.unity.graph-authoring |
absent | 1.0.0 (builtin) |
com.unity.mathematics |
1.3.3 (registry) | 1.4.0 (builtin) |
com.unity.modules.physics2d |
absent | 1.0.0 (builtin) |
com.unity.modules.physicscore2d |
absent | 1.0.0 (builtin) |
com.unity.modules.tetgen |
absent | 1.0.0 (builtin) |
com.unity.modules.timelinefoundation |
absent | 1.0.0 (builtin) |
com.unity.profiling.core |
absent | 1.0.3 (registry) |
com.unity.render-pipelines.core |
17.3.0 (builtin) | 17.6.0 (builtin) |
com.unity.render-pipelines.high-definition |
17.3.0 (builtin) | 17.6.0 (builtin) |
com.unity.render-pipelines.high-definition-config |
17.3.0 (builtin) | 17.6.0 (builtin) |
com.unity.shadergraph |
17.3.0 (builtin) | 17.6.0 (builtin) |
com.unity.test-framework |
1.6.0 (builtin) | 1.8.0 (builtin) |
com.unity.test-framework.performance |
3.5.0 (registry) | 6.6.0 (builtin) |
com.unity.ugui |
2.0.0 (builtin) | 2.6.0 (builtin) |
com.unity.visualeffectgraph |
17.3.0 (builtin) | 17.6.0 (builtin) |