U1.5 Unity Core Integration (1/2): Unity-Projekt, Test Runner, Diagnose
- Projekt mit Unity 6.3 LTS (6000.3.20f1, Personal) geöffnet: ProjectSettings, .meta-Dateien, URP-Global-Settings, packages-lock.json. - Manifest auf die benötigten Pakete zurückgeführt; Unity hatte beim ersten Öffnen Vorlagenpakete ergänzt (Purchasing, Analytics, Collab, XR, 2D, Navigation). - Test Runner: Die U1-Suiten laufen unverändert als EditMode-Tests; mit LUNE_TEST_REPORT schreiben .NET und Unity dasselbe JSON-Protokoll (SuiteReport). - Golden-Vergleich zusätzlich je Fachbereich (Gold, HP, Positionen, Türme, Ancients, Wellen, Helden, Boss, Gewinner, ...). Nur Bericht; Testwerte und Prüfungsanzahl unverändert. - Diagnose: FloatProbe (Kern-Arithmetik gegen Godot-Bits und Auswertungsart der Laufzeit), DivergenceTrace und tools/port/trace_diff.py (erster abweichender Schritt), CoreBenchmark für .NET und Editor, CoreBatch als -executeMethod-Einstieg. - .NET-Harness baut nach tools/out/, weil Unity Temp/ beim Beenden löscht. - .gitignore ignoriert nur noch die csproj/sln im Projektwurzelverzeichnis; die Projektdateien des .NET-Harness fehlten deshalb in U1 und kommen jetzt dazu. Stand dieses Commits im Unity-Editor (Mono): 4 von 5 Suiten grün; golden 152/157, weil Mono float32-Zwischenwerte doppelt genau rechnet (Teil 2/2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
4d6ed17dca
commit
44d3bcdee9
90 changed files with 3853 additions and 100 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -8,9 +8,10 @@
|
|||
/[Uu]ser[Ss]ettings/
|
||||
/[Mm]emoryCaptures/
|
||||
/[Rr]ecordings/
|
||||
*.csproj
|
||||
*.sln
|
||||
*.slnx
|
||||
# IDE projects that Unity generates in the project root (tools/dotnet/*/*.csproj are sources)
|
||||
/*.csproj
|
||||
/*.sln
|
||||
/*.slnx
|
||||
*.suo
|
||||
*.user
|
||||
*.pidb
|
||||
|
|
|
|||
15
Assets/DefaultVolumeProfile.asset
Normal file
15
Assets/DefaultVolumeProfile.asset
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: DefaultVolumeProfile
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.VolumeProfile
|
||||
components: []
|
||||
8
Assets/DefaultVolumeProfile.asset.meta
Normal file
8
Assets/DefaultVolumeProfile.asset.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6a697dcb8a0174239a6b4f5cf34e06f3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Luneraria.meta
Normal file
8
Assets/Luneraria.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0e6d8499dbaf24b81b6ad837fdd97658
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Luneraria/Core.meta
Normal file
8
Assets/Luneraria/Core.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 78305943818f84edabafec322efe1fe6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Luneraria/Core/Content.meta
Normal file
8
Assets/Luneraria/Core/Content.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ead6ce2b7436340ca9e68ba84201c3e2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/Luneraria/Core/Content/ContentData.cs.meta
Normal file
2
Assets/Luneraria/Core/Content/ContentData.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 328555984a481452089b9d3edb228624
|
||||
2
Assets/Luneraria/Core/Content/DataCatalog.cs.meta
Normal file
2
Assets/Luneraria/Core/Content/DataCatalog.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 908d82286fb264c028c17d79a57496a0
|
||||
2
Assets/Luneraria/Core/Content/Definitions.cs.meta
Normal file
2
Assets/Luneraria/Core/Content/Definitions.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: adf467f403c0447f493cde3b3d06c592
|
||||
2
Assets/Luneraria/Core/Content/LuneBalance.cs.meta
Normal file
2
Assets/Luneraria/Core/Content/LuneBalance.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4eabf29eecb184c5fac328a428a9f5f9
|
||||
2
Assets/Luneraria/Core/Content/LuneContent.cs.meta
Normal file
2
Assets/Luneraria/Core/Content/LuneContent.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f4ce13de7838f481a85413ac397ab77a
|
||||
2
Assets/Luneraria/Core/Content/PlannedHeroes.cs.meta
Normal file
2
Assets/Luneraria/Core/Content/PlannedHeroes.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 494a8b8f3589145b6b4865a06f2d820f
|
||||
7
Assets/Luneraria/Core/Luneraria.Core.asmdef.meta
Normal file
7
Assets/Luneraria/Core/Luneraria.Core.asmdef.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a1963e13e4b2d498880517ad9c8cb0d4
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Luneraria/Core/Model.meta
Normal file
8
Assets/Luneraria/Core/Model.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 54a47352f21234f5289742a42955b423
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/Luneraria/Core/Model/GdMath.cs.meta
Normal file
2
Assets/Luneraria/Core/Model/GdMath.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e0fb56a7322c5472482706dd9223cf59
|
||||
2
Assets/Luneraria/Core/Model/OrderedMap.cs.meta
Normal file
2
Assets/Luneraria/Core/Model/OrderedMap.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 01f9ba65d813741128d484a918918119
|
||||
2
Assets/Luneraria/Core/Model/Vec2.cs.meta
Normal file
2
Assets/Luneraria/Core/Model/Vec2.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0fb490510bfcb424aa04edaa7727c169
|
||||
8
Assets/Luneraria/Core/Simulation.meta
Normal file
8
Assets/Luneraria/Core/Simulation.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d3272a7bb47bc4100993e32779e701a6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/Luneraria/Core/Simulation/LuneBot.cs.meta
Normal file
2
Assets/Luneraria/Core/Simulation/LuneBot.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f7089c45fb5d44cc8a9275b41dbc81fa
|
||||
2
Assets/Luneraria/Core/Simulation/LuneCombat.cs.meta
Normal file
2
Assets/Luneraria/Core/Simulation/LuneCombat.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e976218cfa7d145d499cea25fb7743c8
|
||||
2
Assets/Luneraria/Core/Simulation/LuneMap.cs.meta
Normal file
2
Assets/Luneraria/Core/Simulation/LuneMap.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 72579d5206af44de0952c6795daa0f30
|
||||
2
Assets/Luneraria/Core/Simulation/LuneMatch.cs.meta
Normal file
2
Assets/Luneraria/Core/Simulation/LuneMatch.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0df2fde8515b847ac9061c49a3833673
|
||||
2
Assets/Luneraria/Core/Simulation/LuneUnit.cs.meta
Normal file
2
Assets/Luneraria/Core/Simulation/LuneUnit.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f6ef4a8c1e43c4168ba865a111175643
|
||||
2
Assets/Luneraria/Core/Simulation/MatchModel.cs.meta
Normal file
2
Assets/Luneraria/Core/Simulation/MatchModel.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5e825dabacf0048aaa43963436a358c7
|
||||
8
Assets/Luneraria/Tests.meta
Normal file
8
Assets/Luneraria/Tests.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bdb7d0e2deed24189a8cea4318bb3669
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Luneraria/Tests/Core.meta
Normal file
8
Assets/Luneraria/Tests/Core.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: efd02dc831c894b3291786d9e1eb7c31
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/Luneraria/Tests/Core/CheckSuite.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/CheckSuite.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c49dd358c53a24d02a8fe32174de6483
|
||||
2
Assets/Luneraria/Tests/Core/ContentSuite.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/ContentSuite.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bad9dbdfd44444b849155de8e602259a
|
||||
2
Assets/Luneraria/Tests/Core/CoreRulesSuite.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/CoreRulesSuite.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b02c8152124054bbc96f124c3d140c92
|
||||
2
Assets/Luneraria/Tests/Core/DeterminismSuite.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/DeterminismSuite.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1e085e5e04b944c1eb4ea7a10eede0e1
|
||||
8
Assets/Luneraria/Tests/Core/Diagnostics.meta
Normal file
8
Assets/Luneraria/Tests/Core/Diagnostics.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8e7cd6f0975494c94895a2fb75c870b2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
70
Assets/Luneraria/Tests/Core/Diagnostics/CoreBenchmark.cs
Normal file
70
Assets/Luneraria/Tests/Core/Diagnostics/CoreBenchmark.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Simulation cost of the core, identical in every runtime (.NET harness
|
||||
/// tools/dotnet/Luneraria.Core.Bench, Unity editor via CoreBatch.Benchmark): one combat step
|
||||
/// at representative maximum occupation (round 13, six armies at the supply cap, the fixture
|
||||
/// of the Godot probe tools/godot-golden/sim_bench.gd) and complete bot matches of seeds 1-3.
|
||||
/// </summary>
|
||||
public static class CoreBenchmark
|
||||
{
|
||||
public static string Run(string runtime, string label)
|
||||
{
|
||||
int units = Fixture(out LuneMatch probe);
|
||||
for (int i = 0; i < 50; i++)
|
||||
probe.StepCombat();
|
||||
var samples = new List<double>();
|
||||
for (int block = 0; block < 5; block++)
|
||||
{
|
||||
Fixture(out LuneMatch fresh);
|
||||
var clock = Stopwatch.StartNew();
|
||||
for (int i = 0; i < 200; i++)
|
||||
fresh.StepCombat();
|
||||
clock.Stop();
|
||||
samples.Add(clock.Elapsed.TotalMilliseconds / 200.0);
|
||||
}
|
||||
samples.Sort();
|
||||
double stepMs = samples[samples.Count / 2];
|
||||
var matchClock = Stopwatch.StartNew();
|
||||
int rounds = 0;
|
||||
foreach (int seed in new[] { 1, 2, 3 })
|
||||
{
|
||||
var match = new LuneMatch();
|
||||
match.Setup(new MatchOptions { Seed = seed, HumanSlot = -1 });
|
||||
while (match.Phase != Phase.Over && match.RoundNumber <= 60)
|
||||
{
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
LuneBot.Plan(match, slot);
|
||||
match.BeginCombat();
|
||||
match.FinishCombat();
|
||||
rounds++;
|
||||
}
|
||||
}
|
||||
matchClock.Stop();
|
||||
return string.Format(CultureInfo.InvariantCulture,
|
||||
"{{\n \"runtime\": \"{0}\",\n \"label\": \"{1}\",\n \"cpu\": \"{2}\",\n \"mobile_units_at_start\": {3},\n \"sim_step_ms_median\": {4:0.0000},\n \"step_blocks_ms\": [{5}],\n \"bot_matches_seeds_1_2_3_ms\": {6:0.0},\n \"bot_match_rounds\": {7},\n \"ms_per_round\": {8:0.00}\n}}\n",
|
||||
runtime, label, System.Runtime.InteropServices.RuntimeInformation.OSArchitecture,
|
||||
units, stepMs, string.Join(", ", samples.ConvertAll(s => s.ToString("0.0000", CultureInfo.InvariantCulture))),
|
||||
matchClock.Elapsed.TotalMilliseconds, rounds, matchClock.Elapsed.TotalMilliseconds / rounds);
|
||||
}
|
||||
|
||||
static int Fixture(out LuneMatch match)
|
||||
{
|
||||
match = new LuneMatch();
|
||||
match.Setup(new MatchOptions { Seed = 5, HumanSlot = -1 });
|
||||
match.RoundNumber = 13;
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
{
|
||||
match.Players[slot].Draft.Gold = 100000;
|
||||
LuneBot.Plan(match, slot, "ausgewogen");
|
||||
}
|
||||
match.BeginCombat();
|
||||
return match.Combat.MobileCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 17ab9a74fa7954e03a18622404a4450d
|
||||
64
Assets/Luneraria/Tests/Core/Diagnostics/DivergenceTrace.cs
Normal file
64
Assets/Luneraria/Tests/Core/Diagnostics/DivergenceTrace.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Step-by-step trace of one combat round of a bot match, for comparing two runtimes
|
||||
/// (docs/port/U1.5-UNITY.md): per step and unit the discrete state (alive, target, hits,
|
||||
/// zone) and the raw bits of position and hit points. Two traces are diffed outside
|
||||
/// (tools/port/trace_diff.py) to find the first step where a decision differs.
|
||||
/// </summary>
|
||||
public static class DivergenceTrace
|
||||
{
|
||||
/// <summary>Plays rounds 1..round of a bot match; writes the trace of the last round.</summary>
|
||||
public static void Write(string path, int seed, string[] bunds, string profile, int round)
|
||||
{
|
||||
var match = new LuneMatch();
|
||||
var options = new MatchOptions { Seed = seed, HumanSlot = -1 };
|
||||
if (bunds != null)
|
||||
options.Bunds = new System.Collections.Generic.List<string>(bunds);
|
||||
match.Setup(options);
|
||||
using (var writer = new StreamWriter(path, false, new UTF8Encoding(false)))
|
||||
{
|
||||
while (match.Phase != Phase.Over && match.RoundNumber <= round)
|
||||
{
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
LuneBot.Plan(match, slot, profile);
|
||||
int fought = match.RoundNumber;
|
||||
bool traced = fought == round;
|
||||
match.BeginCombat();
|
||||
if (traced)
|
||||
{
|
||||
Dump(writer, match.Combat);
|
||||
while (!match.Combat.Finished)
|
||||
{
|
||||
match.StepCombat();
|
||||
Dump(writer, match.Combat);
|
||||
}
|
||||
}
|
||||
match.FinishCombat();
|
||||
writer.WriteLine("settled round {0} combat_time {1} phase {2}", fought, match.LastSettlement.CombatTime.ToString("R", CultureInfo.InvariantCulture), match.Phase);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Dump(StreamWriter writer, LuneCombat combat)
|
||||
{
|
||||
var line = new StringBuilder();
|
||||
line.Append("step ").Append(combat.Steps).Append(" t ").Append(combat.Elapsed.ToString("R", CultureInfo.InvariantCulture));
|
||||
line.Append(" finished ").Append(combat.Finished ? 1 : 0).Append(" reason ").Append(combat.EndReason);
|
||||
writer.WriteLine(line.ToString());
|
||||
foreach (LuneUnit unit in combat.Units)
|
||||
{
|
||||
if (!unit.Alive && unit.DeathTime < combat.Elapsed - 0.001)
|
||||
continue;
|
||||
writer.WriteLine(" u {0} {1} t{2} {3} {4} alive {5} target {6} hits {7} | hp {8:X16} pos {9:X8} {10:X8}",
|
||||
unit.Id, unit.Kind, unit.Team, unit.Lane, unit.Zone, unit.Alive ? 1 : 0, unit.Target != null ? unit.Target.Id : -1, unit.HitCount,
|
||||
BitConverter.DoubleToInt64Bits(unit.Hp), BitConverter.ToInt32(BitConverter.GetBytes(unit.Position.X), 0), BitConverter.ToInt32(BitConverter.GetBytes(unit.Position.Y), 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 76014535682464a2487fb6762d09c83e
|
||||
213
Assets/Luneraria/Tests/Core/Diagnostics/FloatProbe.cs
Normal file
213
Assets/Luneraria/Tests/Core/Diagnostics/FloatProbe.cs
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Float diagnosis for a runtime (docs/port/U1.5-UNITY.md): evaluates the core's own Vec2 and
|
||||
/// GdMath operations on the inputs of tools/godot-golden/float_probe.gd and compares the raw
|
||||
/// bits with Godot's results (Golden/float_probe.json). A second part classifies how the
|
||||
/// runtime evaluates float32 expressions: strictly per operation, with double-precision
|
||||
/// intermediates (allowed by ECMA-335 I.12.1.3) or with fused multiply-add.
|
||||
/// </summary>
|
||||
public static class FloatProbe
|
||||
{
|
||||
public sealed class Result
|
||||
{
|
||||
public int Rows;
|
||||
public readonly OrderedMap<string, int> Identical = new OrderedMap<string, int>();
|
||||
public readonly OrderedMap<string, double> WorstUlps = new OrderedMap<string, double>();
|
||||
public readonly OrderedMap<string, int> Evaluation = new OrderedMap<string, int>();
|
||||
public int EvaluationSamples;
|
||||
|
||||
public int Mismatches
|
||||
{
|
||||
get
|
||||
{
|
||||
int total = 0;
|
||||
foreach (KeyValuePair<string, int> pair in Identical)
|
||||
total += Rows - pair.Value;
|
||||
return total;
|
||||
}
|
||||
}
|
||||
|
||||
public string ToJson(string runtime, string label)
|
||||
{
|
||||
var text = new StringBuilder();
|
||||
text.Append("{\n");
|
||||
text.AppendFormat(" \"runtime\": \"{0}\",\n \"label\": \"{1}\",\n \"rows\": {2},\n", runtime, label, Rows);
|
||||
text.Append(" \"identical_to_godot\": {");
|
||||
bool first = true;
|
||||
foreach (KeyValuePair<string, int> pair in Identical)
|
||||
{
|
||||
text.AppendFormat(CultureInfo.InvariantCulture, "{0}\n \"{1}\": {2}", first ? "" : ",", pair.Key, pair.Value);
|
||||
first = false;
|
||||
}
|
||||
text.Append("\n },\n \"worst_ulps\": {");
|
||||
first = true;
|
||||
foreach (KeyValuePair<string, double> pair in WorstUlps)
|
||||
{
|
||||
text.AppendFormat(CultureInfo.InvariantCulture, "{0}\n \"{1}\": {2}", first ? "" : ",", pair.Key, pair.Value);
|
||||
first = false;
|
||||
}
|
||||
text.AppendFormat("\n }},\n \"evaluation_samples\": {0},\n \"evaluation_matches\": {{", EvaluationSamples);
|
||||
first = true;
|
||||
foreach (KeyValuePair<string, int> pair in Evaluation)
|
||||
{
|
||||
text.AppendFormat(CultureInfo.InvariantCulture, "{0}\n \"{1}\": {2}", first ? "" : ",", pair.Key, pair.Value);
|
||||
first = false;
|
||||
}
|
||||
text.Append("\n }\n}\n");
|
||||
return text.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public static Result Run(string goldenDirectory)
|
||||
{
|
||||
var result = new Result();
|
||||
var probe = MiniJson.Obj(MiniJson.Parse(File.ReadAllText(Path.Combine(goldenDirectory, "float_probe.json"))));
|
||||
foreach (object item in MiniJson.Arr(probe["rows"]))
|
||||
{
|
||||
List<object> row = MiniJson.Arr(item);
|
||||
float[] f = Floats(MiniJson.Str(row[0]));
|
||||
double[] d = Doubles(MiniJson.Str(row[1]));
|
||||
var a = new Vec2(f[0], f[1]);
|
||||
var b = new Vec2(f[2], f[3]);
|
||||
float w = f[4];
|
||||
float s = f[5];
|
||||
result.Rows++;
|
||||
Compare(result, "length", a.Length(), f[6]);
|
||||
Compare(result, "length_squared", a.LengthSquared(), f[7]);
|
||||
Compare(result, "distance_to", a.DistanceTo(b), f[8]);
|
||||
Compare(result, "distance_squared_to", a.DistanceSquaredTo(b), f[9]);
|
||||
Compare(result, "dot", a.Dot(b), f[10]);
|
||||
Vec2 n = a.Normalized();
|
||||
Compare(result, "normalized", n.X, f[11], n.Y, f[12]);
|
||||
Vec2 l = a.Lerp(b, w);
|
||||
Compare(result, "lerp", l.X, f[13], l.Y, f[14]);
|
||||
Vec2 c = a.LimitLength(0.9f);
|
||||
Compare(result, "limit_length", c.X, f[15], c.Y, f[16]);
|
||||
Compare(result, "multiply", (a * s).X, f[17]);
|
||||
Compare(result, "divide", (a / s).Y, f[18]);
|
||||
Compare(result, "sub_normalized", (a - b).Normalized().X, f[19]);
|
||||
double angle = GdMath.Atan2(a.X, a.Y);
|
||||
if (!result.Identical.ContainsKey("atan2"))
|
||||
result.Identical["atan2"] = 0;
|
||||
if (BitConverter.DoubleToInt64Bits(angle) == BitConverter.DoubleToInt64Bits(d[0]))
|
||||
result.Identical["atan2"] += 1;
|
||||
Classify(result, f);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
static void Compare(Result result, string name, float actual, float expected)
|
||||
{
|
||||
Compare(result, name, actual, expected, 0f, 0f);
|
||||
}
|
||||
|
||||
static void Compare(Result result, string name, float actualX, float expectedX, float actualY, float expectedY)
|
||||
{
|
||||
if (!result.Identical.ContainsKey(name))
|
||||
{
|
||||
result.Identical[name] = 0;
|
||||
result.WorstUlps[name] = 0.0;
|
||||
}
|
||||
double ulps = Math.Max(Ulps(actualX, expectedX), Ulps(actualY, expectedY));
|
||||
if (ulps == 0.0)
|
||||
result.Identical[name] += 1;
|
||||
if (ulps > result.WorstUlps[name])
|
||||
result.WorstUlps[name] = ulps;
|
||||
}
|
||||
|
||||
/// <summary>Distance in units of the last place (float32).</summary>
|
||||
public static double Ulps(float a, float b)
|
||||
{
|
||||
if (BitConverter.ToInt32(BitConverter.GetBytes(a), 0) == BitConverter.ToInt32(BitConverter.GetBytes(b), 0))
|
||||
return 0.0;
|
||||
if (float.IsNaN(a) || float.IsNaN(b))
|
||||
return double.PositiveInfinity;
|
||||
long ia = Ordered(a);
|
||||
long ib = Ordered(b);
|
||||
return Math.Abs(ia - ib);
|
||||
}
|
||||
|
||||
static long Ordered(float value)
|
||||
{
|
||||
int bits = BitConverter.ToInt32(BitConverter.GetBytes(value), 0);
|
||||
return bits < 0 ? (long)int.MinValue - bits : bits;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// How does this runtime evaluate `x*x + y*y` and `a + (b - a) * w` with float32 operands?
|
||||
/// The candidates are computed with explicit conversions, which ECMA-335 guarantees to
|
||||
/// narrow: per-operation float32, double intermediates rounded once, fused multiply-add.
|
||||
/// </summary>
|
||||
static void Classify(Result result, float[] f)
|
||||
{
|
||||
float x = f[0];
|
||||
float y = f[1];
|
||||
float a = f[0];
|
||||
float b = f[2];
|
||||
float w = f[4];
|
||||
float natural = SumOfSquares(x, y);
|
||||
float strict = (float)((float)(x * x) + (float)(y * y));
|
||||
float wide = (float)((double)x * x + (double)y * y);
|
||||
float fused = (float)((double)x * x + (double)(float)(y * y));
|
||||
float naturalLerp = LerpNatural(a, b, w);
|
||||
float strictLerp = (float)(a + (float)((float)(b - a) * w));
|
||||
float wideLerp = (float)(a + ((double)b - a) * w);
|
||||
result.EvaluationSamples++;
|
||||
Count(result, "sum_of_squares_strict_float32", natural == strict);
|
||||
Count(result, "sum_of_squares_double_intermediate", natural == wide);
|
||||
Count(result, "sum_of_squares_fused", natural == fused);
|
||||
Count(result, "sum_of_squares_candidates_differ", strict != wide);
|
||||
Count(result, "lerp_strict_float32", naturalLerp == strictLerp);
|
||||
Count(result, "lerp_double_intermediate", naturalLerp == wideLerp);
|
||||
Count(result, "lerp_candidates_differ", strictLerp != wideLerp);
|
||||
}
|
||||
|
||||
static void Count(Result result, string key, bool hit)
|
||||
{
|
||||
if (!result.Evaluation.ContainsKey(key))
|
||||
result.Evaluation[key] = 0;
|
||||
if (hit)
|
||||
result.Evaluation[key] += 1;
|
||||
}
|
||||
|
||||
// Kept out of line so the expressions are compiled the way the core's own code is.
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
static float SumOfSquares(float x, float y) { return x * x + y * y; }
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
static float LerpNatural(float a, float b, float w) { return a + (b - a) * w; }
|
||||
|
||||
static float[] Floats(string hex)
|
||||
{
|
||||
byte[] bytes = Bytes(hex);
|
||||
var values = new float[bytes.Length / 4];
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
values[i] = BitConverter.ToSingle(bytes, i * 4);
|
||||
return values;
|
||||
}
|
||||
|
||||
static double[] Doubles(string hex)
|
||||
{
|
||||
byte[] bytes = Bytes(hex);
|
||||
var values = new double[bytes.Length / 8];
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
values[i] = BitConverter.ToDouble(bytes, i * 8);
|
||||
return values;
|
||||
}
|
||||
|
||||
static byte[] Bytes(string hex)
|
||||
{
|
||||
var bytes = new byte[hex.Length / 2];
|
||||
for (int i = 0; i < bytes.Length; i++)
|
||||
bytes[i] = byte.Parse(hex.Substring(i * 2, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture);
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: dde242710507440988d99275e67a726a
|
||||
8
Assets/Luneraria/Tests/Core/Golden.meta
Normal file
8
Assets/Luneraria/Tests/Core/Golden.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 28f5eb2a6ac514406bae6856288e7bfc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/Luneraria/Tests/Core/Golden/content.json.meta
Normal file
7
Assets/Luneraria/Tests/Core/Golden/content.json.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4df8ca414590b4e409f3974eb4251b4c
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1
Assets/Luneraria/Tests/Core/Golden/float_probe.json
Normal file
1
Assets/Luneraria/Tests/Core/Golden/float_probe.json
Normal file
File diff suppressed because one or more lines are too long
7
Assets/Luneraria/Tests/Core/Golden/float_probe.json.meta
Normal file
7
Assets/Luneraria/Tests/Core/Golden/float_probe.json.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b7dba5c6106c445b89e4bb5e3cd85830
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/Luneraria/Tests/Core/Golden/golden.json.meta
Normal file
7
Assets/Luneraria/Tests/Core/Golden/golden.json.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 48fc599fb146d4cd897c3f0537064c89
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Assets/Luneraria/Tests/Core/Golden/scenarios.json.meta
Normal file
7
Assets/Luneraria/Tests/Core/Golden/scenarios.json.meta
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a29ede38d3bd545e39836962a4ae9024
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/Luneraria/Tests/Core/GoldenReplay.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/GoldenReplay.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2e6616fb2133545338365e872002e0a1
|
||||
|
|
@ -10,7 +10,8 @@ namespace Luneraria.Core.Tests
|
|||
/// snapshot is compared with the Godot reference (Golden/golden.json) field by field.
|
||||
/// Integers, strings, flags, ids, ownership, purchases, targets and results must be equal;
|
||||
/// numbers that pass through floating point use the tolerances below (docs/port/U1-RULES.md).
|
||||
/// The largest deviation per category is noted in the report.
|
||||
/// The largest deviation per category is noted in the report, and per domain (gold, hit
|
||||
/// points, positions, towers, Ancients, waves, heroes, boss, winner, ...) for the port QA.
|
||||
/// </summary>
|
||||
public sealed partial class GoldenSuite
|
||||
{
|
||||
|
|
@ -24,6 +25,16 @@ namespace Luneraria.Core.Tests
|
|||
readonly Dictionary<string, int> _counts = new Dictionary<string, int>();
|
||||
int _compared;
|
||||
|
||||
sealed class DomainStat
|
||||
{
|
||||
public int Values;
|
||||
public int Differences;
|
||||
public double Worst;
|
||||
}
|
||||
|
||||
readonly OrderedMap<string, DomainStat> _domains = new OrderedMap<string, DomainStat>();
|
||||
List<BuildingDef> _buildings;
|
||||
|
||||
partial void RunScenarios()
|
||||
{
|
||||
var spec = MiniJson.Obj(MiniJson.Parse(File.ReadAllText(Path.Combine(GoldenDirectory, "scenarios.json"))));
|
||||
|
|
@ -58,6 +69,110 @@ namespace Luneraria.Core.Tests
|
|||
Note(string.Format("golden values compared: {0}", _compared));
|
||||
foreach (KeyValuePair<string, double> pair in _worst.OrderBy(p => p.Key))
|
||||
Note(string.Format("largest deviation {0}: {1:E2} over {2} values (tolerance {3:E0})", pair.Key, pair.Value, _counts[pair.Key], Tolerances[pair.Key]));
|
||||
foreach (KeyValuePair<string, DomainStat> pair in _domains.OrderBy(p => p.Key, StringComparer.Ordinal))
|
||||
Note(string.Format("domain {0}: {1} values, {2} differences, largest numeric deviation {3:E2}", pair.Key, pair.Value.Values, pair.Value.Differences, pair.Value.Worst));
|
||||
}
|
||||
|
||||
/// <summary>Domain of a compared value for the report, from its path in the snapshot.</summary>
|
||||
string Domain(string path)
|
||||
{
|
||||
if (path.Contains("/results"))
|
||||
return "commands";
|
||||
int dot = path.IndexOf('.');
|
||||
if (dot < 0)
|
||||
return "other";
|
||||
string[] parts = path.Substring(dot + 1).Split('.');
|
||||
string top = Head(parts[0]);
|
||||
string field = parts.Length > 1 ? Head(parts[1]) : "";
|
||||
switch (top)
|
||||
{
|
||||
case "winner":
|
||||
case "end_note":
|
||||
case "phase":
|
||||
return "winner";
|
||||
case "round":
|
||||
return "rounds";
|
||||
case "players":
|
||||
if (field == "gold" || field == "draft_gold" || field == "earned" || field == "spent")
|
||||
return "gold";
|
||||
if (field == "hero" || field == "draft_hero")
|
||||
return "heroes";
|
||||
if (field == "boss_lane")
|
||||
return "boss";
|
||||
return "purchases";
|
||||
case "buildings":
|
||||
int open = parts[0].IndexOf('[');
|
||||
int index = open < 0 ? -1 : int.Parse(parts[0].Substring(open + 1, parts[0].IndexOf(']') - open - 1));
|
||||
if (_buildings == null)
|
||||
_buildings = new LuneMap(new LuneBalance()).Buildings;
|
||||
return index >= 0 && index < _buildings.Count && _buildings[index].Tier == "core" ? "ancients" : "towers";
|
||||
case "boss":
|
||||
case "boss_log":
|
||||
return "boss";
|
||||
case "announcements":
|
||||
return "announcements";
|
||||
case "settlement":
|
||||
if (field == "gains" || field == "income")
|
||||
return "gold";
|
||||
if (field == "xp")
|
||||
return "heroes";
|
||||
if (field == "lost")
|
||||
return "towers";
|
||||
if (field == "end_reason")
|
||||
return "winner";
|
||||
if (field == "boss")
|
||||
return "boss";
|
||||
if (field == "lane_kills")
|
||||
return "waves";
|
||||
return "combat";
|
||||
case "combat":
|
||||
if (field == "destroyed")
|
||||
return "ancients";
|
||||
if (field.StartsWith("grotto", StringComparison.Ordinal))
|
||||
return "boss";
|
||||
if (field == "end_reason" || field == "finished")
|
||||
return "winner";
|
||||
if (field == "mobile")
|
||||
return "waves";
|
||||
return "combat";
|
||||
case "units":
|
||||
if (field == "x" || field == "y" || field == "progress")
|
||||
return "positions";
|
||||
if (field == "facing")
|
||||
return "facing";
|
||||
if (field == "hp" || field == "max_hp" || field == "shield")
|
||||
return "hp";
|
||||
if (field == "target")
|
||||
return "targets";
|
||||
return "units";
|
||||
case "events":
|
||||
return "events";
|
||||
case "wave":
|
||||
return "waves";
|
||||
}
|
||||
return "other";
|
||||
}
|
||||
|
||||
static string Head(string segment)
|
||||
{
|
||||
int bracket = segment.IndexOf('[');
|
||||
return bracket < 0 ? segment : segment.Substring(0, bracket);
|
||||
}
|
||||
|
||||
void Track(string path, bool different, double deviation)
|
||||
{
|
||||
string domain = Domain(path);
|
||||
DomainStat stat;
|
||||
if (!_domains.TryGetValue(domain, out stat))
|
||||
{
|
||||
stat = new DomainStat();
|
||||
_domains[domain] = stat;
|
||||
}
|
||||
stat.Values++;
|
||||
if (different)
|
||||
stat.Differences++;
|
||||
if (deviation > stat.Worst)
|
||||
stat.Worst = deviation;
|
||||
}
|
||||
|
||||
static string Category(string key)
|
||||
|
|
@ -102,6 +217,7 @@ namespace Luneraria.Core.Tests
|
|||
{
|
||||
if (el != al)
|
||||
problems.Add(path + ": " + el + " != " + al);
|
||||
Track(path, el != al, Math.Abs((double)el - al));
|
||||
return;
|
||||
}
|
||||
double e = MiniJson.Num(expected);
|
||||
|
|
@ -115,8 +231,10 @@ namespace Luneraria.Core.Tests
|
|||
int count;
|
||||
_counts.TryGetValue(category, out count);
|
||||
_counts[category] = count + 1;
|
||||
if (deviation > tolerance || double.IsNaN(a) != double.IsNaN(e))
|
||||
bool outside = deviation > tolerance || double.IsNaN(a) != double.IsNaN(e);
|
||||
if (outside)
|
||||
problems.Add(string.Format("{0}: {1:R} != {2:R}", path, e, a));
|
||||
Track(path, outside, deviation);
|
||||
return;
|
||||
}
|
||||
if (expected is OrderedMap<string, object> em && actual is OrderedMap<string, object> am)
|
||||
|
|
@ -143,8 +261,10 @@ namespace Luneraria.Core.Tests
|
|||
return;
|
||||
}
|
||||
_compared++;
|
||||
if (!Equals(Normalize(expected), Normalize(actual)))
|
||||
bool differs = !Equals(Normalize(expected), Normalize(actual));
|
||||
if (differs)
|
||||
problems.Add(path + ": " + Show(expected) + " != " + Show(actual));
|
||||
Track(path, differs, 0.0);
|
||||
}
|
||||
|
||||
static bool IsNumber(object value) { return value is long || value is double; }
|
||||
|
|
|
|||
2
Assets/Luneraria/Tests/Core/GoldenSuite.Compare.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/GoldenSuite.Compare.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: feb0125914fa744a3a55fdc802915847
|
||||
2
Assets/Luneraria/Tests/Core/GoldenSuite.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/GoldenSuite.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: dff1f7e4449c54f72b92c92e0dbe435f
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b997c048918f14bc4bf68739194c4da7
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
2
Assets/Luneraria/Tests/Core/M2RulesSuite.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/M2RulesSuite.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c64b5f91fb73b4804bc1d21f27e6ac88
|
||||
2
Assets/Luneraria/Tests/Core/MiniJson.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/MiniJson.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 313281e4ad63241d795e43b756113e17
|
||||
64
Assets/Luneraria/Tests/Core/SuiteReport.cs
Normal file
64
Assets/Luneraria/Tests/Core/SuiteReport.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// JSON protocol of a suite run, identical for the .NET harness and the Unity Test Runner
|
||||
/// (docs/port/logs/u1/core-tests.json, docs/port/logs/u1_5/*.json). The target file comes from
|
||||
/// the environment variable LUNE_TEST_REPORT; without it nothing is written.
|
||||
/// </summary>
|
||||
public sealed class SuiteReport
|
||||
{
|
||||
readonly StringBuilder _suites = new StringBuilder();
|
||||
int _count;
|
||||
|
||||
public int Failures { get; private set; }
|
||||
|
||||
public static string TargetPath { get { return Environment.GetEnvironmentVariable("LUNE_TEST_REPORT"); } }
|
||||
|
||||
public void Add(CheckSuite suite, double seconds)
|
||||
{
|
||||
Failures += suite.Failures.Count;
|
||||
_suites.Append(_count == 0 ? "" : ",\n");
|
||||
_count++;
|
||||
_suites.AppendFormat(CultureInfo.InvariantCulture, " {{\"suite\": \"{0}\", \"checks\": {1}, \"failures\": {2}, \"seconds\": {3:0.00}, \"failed\": [{4}], \"notes\": [{5}]}}",
|
||||
suite.Name, suite.Checks, suite.Failures.Count, seconds, Join(suite.Failures), Join(suite.Notes));
|
||||
}
|
||||
|
||||
public string ToJson(string runtime, string label)
|
||||
{
|
||||
var text = new StringBuilder("{\n \"suites\": [\n");
|
||||
text.Append(_suites);
|
||||
text.Append("\n ],\n");
|
||||
text.Append(" \"runtime\": \"" + Escape(runtime) + "\",\n");
|
||||
text.Append(" \"label\": \"" + Escape(label) + "\",\n");
|
||||
text.Append(" \"os\": \"" + Escape(System.Runtime.InteropServices.RuntimeInformation.OSDescription + " " + System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture) + "\"\n}\n");
|
||||
return text.ToString();
|
||||
}
|
||||
|
||||
public void WriteTo(string path, string runtime, string label)
|
||||
{
|
||||
string directory = Path.GetDirectoryName(Path.GetFullPath(path));
|
||||
if (!string.IsNullOrEmpty(directory))
|
||||
Directory.CreateDirectory(directory);
|
||||
File.WriteAllText(path, ToJson(runtime, label));
|
||||
}
|
||||
|
||||
static string Join(List<string> values)
|
||||
{
|
||||
var parts = new List<string>();
|
||||
foreach (string value in values)
|
||||
parts.Add("\"" + Escape(value) + "\"");
|
||||
return string.Join(", ", parts);
|
||||
}
|
||||
|
||||
static string Escape(string value)
|
||||
{
|
||||
return value.Replace("\\", "\\\\").Replace("\"", "\\\"").Replace("\n", "\\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Luneraria/Tests/Core/SuiteReport.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/SuiteReport.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fe846d20bb3994c26a59388fb1e21792
|
||||
8
Assets/Luneraria/Tests/Core/Unity.meta
Normal file
8
Assets/Luneraria/Tests/Core/Unity.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0527948c56bec4869a41e17324db45f6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
114
Assets/Luneraria/Tests/Core/Unity/CoreBatch.cs
Normal file
114
Assets/Luneraria/Tests/Core/Unity/CoreBatch.cs
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build;
|
||||
using UnityEditor.Compilation;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Batch entry points for the core inside the Unity editor (docs/port/U1.5-UNITY.md):
|
||||
/// Unity -batchmode -projectPath . -executeMethod Luneraria.Core.Tests.CoreBatch.FloatProbe
|
||||
/// Results go to docs/port/logs/u1_5/; every file names the runtime and the editor's code
|
||||
/// optimization mode, because editor numbers are not player numbers.
|
||||
/// </summary>
|
||||
public static class CoreBatch
|
||||
{
|
||||
static string ProjectRoot { get { return Path.GetDirectoryName(Application.dataPath); } }
|
||||
static string GoldenDirectory { get { return Path.Combine(Application.dataPath, "Luneraria/Tests/Core/Golden"); } }
|
||||
static string LogDirectory { get { return Path.Combine(ProjectRoot, "docs/port/logs/u1_5"); } }
|
||||
|
||||
/// <summary>"Unity 6000.3.20f1 editor, Mono, code optimization Debug".</summary>
|
||||
public static string Label
|
||||
{
|
||||
get { return "Unity " + Application.unityVersion + " editor, " + System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription + ", code optimization " + CompilationPipeline.codeOptimization; }
|
||||
}
|
||||
|
||||
static string Mode { get { return CompilationPipeline.codeOptimization == CodeOptimization.Release ? "release" : "debug"; } }
|
||||
|
||||
public static void FloatProbe()
|
||||
{
|
||||
Run(() =>
|
||||
{
|
||||
global::Luneraria.Core.Tests.FloatProbe.Result result = global::Luneraria.Core.Tests.FloatProbe.Run(GoldenDirectory);
|
||||
Write("float-probe-unity-" + Mode + ".json", result.ToJson(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription, Label));
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>Versions and settings of the integration (docs/port/U1.5-UNITY.md).</summary>
|
||||
public static void EnvironmentReport()
|
||||
{
|
||||
Run(() =>
|
||||
{
|
||||
var urp = UnityEditor.PackageManager.PackageInfo.FindForAssetPath("Packages/com.unity.render-pipelines.universal");
|
||||
var values = new List<KeyValuePair<string, string>>
|
||||
{
|
||||
Pair("unity_version", UnityEditorInternal.InternalEditorUtility.GetFullUnityVersion()),
|
||||
Pair("license_has_pro", UnityEditorInternal.InternalEditorUtility.HasPro().ToString()),
|
||||
Pair("urp_version", urp != null ? urp.version : "missing"),
|
||||
Pair("editor_runtime", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription),
|
||||
Pair("editor_code_optimization", CompilationPipeline.codeOptimization.ToString()),
|
||||
Pair("standalone_scripting_backend", PlayerSettings.GetScriptingBackend(NamedBuildTarget.Standalone).ToString()),
|
||||
Pair("standalone_api_compatibility", PlayerSettings.GetApiCompatibilityLevel(NamedBuildTarget.Standalone).ToString()),
|
||||
Pair("color_space", PlayerSettings.colorSpace.ToString()),
|
||||
Pair("render_pipeline_asset", GraphicsSettings.defaultRenderPipeline != null ? AssetDatabase.GetAssetPath(GraphicsSettings.defaultRenderPipeline) : "none"),
|
||||
Pair("build_support_macos", BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Standalone, BuildTarget.StandaloneOSX).ToString()),
|
||||
Pair("build_support_windows64", BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Standalone, BuildTarget.StandaloneWindows64).ToString()),
|
||||
Pair("build_support_linux64", BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Standalone, BuildTarget.StandaloneLinux64).ToString()),
|
||||
Pair("core_assembly_references", string.Join(", ", typeof(LuneMatch).Assembly.GetReferencedAssemblies().Select(a => a.Name + " " + a.Version))),
|
||||
};
|
||||
Write("unity-environment.json", "{\n" + string.Join(",\n", values.Select(p => " \"" + p.Key + "\": \"" + p.Value.Replace("\\", "\\\\").Replace("\"", "\\\"") + "\"")) + "\n}\n");
|
||||
});
|
||||
}
|
||||
|
||||
static KeyValuePair<string, string> Pair(string key, string value) { return new KeyValuePair<string, string>(key, value); }
|
||||
|
||||
/// <summary>Editor benchmark: labelled with Unity version, runtime and code optimization.</summary>
|
||||
public static void Benchmark()
|
||||
{
|
||||
Run(() =>
|
||||
{
|
||||
string json = CoreBenchmark.Run(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription, Label);
|
||||
Write("sim-bench-unity-editor-" + Mode + ".json", json);
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>Step trace of mirror_match round 7 into tools/out/ (compared with the .NET trace).</summary>
|
||||
public static void TraceMirrorMatch()
|
||||
{
|
||||
Run(() =>
|
||||
{
|
||||
string path = Path.Combine(ProjectRoot, "tools/out/trace-mirror-unity-" + Mode + ".txt");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(path));
|
||||
DivergenceTrace.Write(path, 3, new[] { "glutpakt", "glutpakt", "glutpakt", "glutpakt", "glutpakt", "glutpakt" }, "verteidigung", 7);
|
||||
Debug.Log("LUNE_BATCH wrote " + path);
|
||||
});
|
||||
}
|
||||
|
||||
static void Write(string name, string text)
|
||||
{
|
||||
Directory.CreateDirectory(LogDirectory);
|
||||
File.WriteAllText(Path.Combine(LogDirectory, name), text);
|
||||
Debug.Log("LUNE_BATCH wrote " + name + "\n" + text);
|
||||
}
|
||||
|
||||
static void Run(Action action)
|
||||
{
|
||||
int code = 0;
|
||||
try
|
||||
{
|
||||
action();
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
Debug.LogError("LUNE_BATCH failed: " + error);
|
||||
code = 1;
|
||||
}
|
||||
EditorApplication.Exit(code);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Luneraria/Tests/Core/Unity/CoreBatch.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/Unity/CoreBatch.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a63bd5ca9ba774b92ac02b418c047441
|
||||
|
|
@ -1,21 +1,43 @@
|
|||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using Debug = UnityEngine.Debug;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs the engine-independent core suites in Unity's Test Runner (EditMode). The same
|
||||
/// suites run outside Unity through tools/dotnet/Luneraria.Core.Tests.
|
||||
/// suites run outside Unity through tools/dotnet/Luneraria.Core.Tests. With the environment
|
||||
/// variable LUNE_TEST_REPORT set, the run also writes the JSON protocol of the .NET harness.
|
||||
/// </summary>
|
||||
public sealed class CoreSuiteTests
|
||||
{
|
||||
static SuiteReport _report;
|
||||
|
||||
static string GoldenDirectory { get { return Path.Combine(Application.dataPath, "Luneraria/Tests/Core/Golden"); } }
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void Begin()
|
||||
{
|
||||
_report = new SuiteReport();
|
||||
}
|
||||
|
||||
[OneTimeTearDown]
|
||||
public void End()
|
||||
{
|
||||
if (SuiteReport.TargetPath != null && _report != null)
|
||||
_report.WriteTo(SuiteReport.TargetPath, System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription, CoreBatch.Label);
|
||||
}
|
||||
|
||||
static void RunSuite(CheckSuite suite)
|
||||
{
|
||||
suite.GoldenDirectory = GoldenDirectory;
|
||||
var clock = Stopwatch.StartNew();
|
||||
bool ok = suite.Run();
|
||||
clock.Stop();
|
||||
if (_report != null)
|
||||
_report.Add(suite, clock.Elapsed.TotalSeconds);
|
||||
foreach (string note in suite.Notes)
|
||||
Debug.Log(suite.Name + ": " + note);
|
||||
Assert.IsTrue(ok, suite.Name + ": " + suite.Failures.Count + " of " + suite.Checks + " checks failed:\n" + string.Join("\n", suite.Failures));
|
||||
|
|
|
|||
2
Assets/Luneraria/Tests/Core/Unity/CoreSuiteTests.cs.meta
Normal file
2
Assets/Luneraria/Tests/Core/Unity/CoreSuiteTests.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3f3ec979aea374f62bf1b6f5a5f00a63
|
||||
426
Assets/UniversalRenderPipelineGlobalSettings.asset
Normal file
426
Assets/UniversalRenderPipelineGlobalSettings.asset
Normal file
|
|
@ -0,0 +1,426 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3}
|
||||
m_Name: UniversalRenderPipelineGlobalSettings
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalRenderPipelineGlobalSettings
|
||||
m_ShaderStrippingSetting:
|
||||
m_Version: 0
|
||||
m_ExportShaderVariants: 1
|
||||
m_ShaderVariantLogLevel: 0
|
||||
m_StripRuntimeDebugShaders: 1
|
||||
m_URPShaderStrippingSetting:
|
||||
m_Version: 0
|
||||
m_StripUnusedPostProcessingVariants: 0
|
||||
m_StripUnusedVariants: 1
|
||||
m_StripScreenCoordOverrideVariants: 1
|
||||
m_ShaderVariantLogLevel: 0
|
||||
m_ExportShaderVariants: 1
|
||||
m_StripDebugVariants: 1
|
||||
m_StripUnusedPostProcessingVariants: 0
|
||||
m_StripUnusedVariants: 1
|
||||
m_StripScreenCoordOverrideVariants: 1
|
||||
supportRuntimeDebugDisplay: 0
|
||||
m_EnableRenderGraph: 0
|
||||
m_Settings:
|
||||
m_SettingsList:
|
||||
m_List:
|
||||
- rid: 5026820519263993858
|
||||
- rid: 5026820519263993859
|
||||
- rid: 5026820519263993860
|
||||
- rid: 5026820519263993861
|
||||
- rid: 5026820519263993862
|
||||
- rid: 5026820519263993863
|
||||
- rid: 5026820519263993864
|
||||
- rid: 5026820519263993865
|
||||
- rid: 5026820519263993866
|
||||
- rid: 5026820519263993867
|
||||
- rid: 5026820519263993868
|
||||
- rid: 5026820519263993869
|
||||
- rid: 5026820519263993870
|
||||
- rid: 5026820519263993871
|
||||
- rid: 5026820519263993872
|
||||
- rid: 5026820519263993873
|
||||
- rid: 5026820519263993874
|
||||
- rid: 5026820519263993875
|
||||
- rid: 5026820519263993876
|
||||
- rid: 5026820519263993877
|
||||
- rid: 5026820519263993878
|
||||
- rid: 5026820519263993879
|
||||
- rid: 5026820519263993880
|
||||
- rid: 5026820519263993881
|
||||
- rid: 5026820519263993882
|
||||
- rid: 5026820519263993883
|
||||
- rid: 5026820519263993884
|
||||
- rid: 5026820519263993885
|
||||
- rid: 5026820519263993886
|
||||
- rid: 5026820519263993887
|
||||
- rid: 5026820519263993888
|
||||
- rid: 5026820519263993889
|
||||
- rid: 5026820519263993890
|
||||
- rid: 5026820519263993891
|
||||
m_RuntimeSettings:
|
||||
m_List: []
|
||||
m_AssetVersion: 10
|
||||
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
||||
m_RenderingLayerNames:
|
||||
- Default
|
||||
m_ValidRenderingLayers: 0
|
||||
lightLayerName0:
|
||||
lightLayerName1:
|
||||
lightLayerName2:
|
||||
lightLayerName3:
|
||||
lightLayerName4:
|
||||
lightLayerName5:
|
||||
lightLayerName6:
|
||||
lightLayerName7:
|
||||
apvScenesData:
|
||||
obsoleteSceneBounds:
|
||||
m_Keys: []
|
||||
m_Values: []
|
||||
obsoleteHasProbeVolumes:
|
||||
m_Keys: []
|
||||
m_Values:
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 5026820519263993858
|
||||
type: {class: RayTracingRenderPipelineResources, ns: UnityEngine.Rendering.UnifiedRayTracing, asm: Unity.UnifiedRayTracing.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
m_GeometryPoolKernels: {fileID: 7200000, guid: 98e3d58cae7210c4786f67f504c9e899, type: 3}
|
||||
m_CopyBuffer: {fileID: 7200000, guid: 1b95b5dcf48d1914c9e1e7405c7660e3, type: 3}
|
||||
m_CopyPositions: {fileID: 7200000, guid: 1ad53a96b58d3c3488dde4f14db1aaeb, type: 3}
|
||||
m_BitHistogram: {fileID: 7200000, guid: 8670f7ce4b60cef43bed36148aa1b0a2, type: 3}
|
||||
m_BlockReducePart: {fileID: 7200000, guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a, type: 3}
|
||||
m_BlockScan: {fileID: 7200000, guid: 4d6d5de35fa45ef4a92119397a045cc9, type: 3}
|
||||
m_BuildHlbvh: {fileID: 7200000, guid: 2d70cd6be91bd7843a39a54b51c15b13, type: 3}
|
||||
m_RestructureBvh: {fileID: 7200000, guid: 56641cb88dcb31a4398a4997ef7a7a8c, type: 3}
|
||||
m_Scatter: {fileID: 7200000, guid: a2eaeefdac4637a44b734e85b7be9186, type: 3}
|
||||
- rid: 5026820519263993859
|
||||
type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||
m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||
m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||
m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
|
||||
m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||
m_TerrainDetailLit: {fileID: 0}
|
||||
m_TerrainDetailGrassBillboard: {fileID: 0}
|
||||
m_TerrainDetailGrass: {fileID: 0}
|
||||
- rid: 5026820519263993860
|
||||
type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||
m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
|
||||
m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||
m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, type: 3}
|
||||
m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, type: 3}
|
||||
m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3}
|
||||
- rid: 5026820519263993861
|
||||
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
|
||||
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
|
||||
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
|
||||
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
|
||||
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
|
||||
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
|
||||
- rid: 5026820519263993862
|
||||
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2}
|
||||
- rid: 5026820519263993863
|
||||
type: {class: UniversalRenderPipelineRuntimeTerrainShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
|
||||
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
|
||||
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
|
||||
- rid: 5026820519263993864
|
||||
type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
|
||||
m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||
m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
|
||||
- rid: 5026820519263993865
|
||||
type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
|
||||
m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
|
||||
m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2}
|
||||
m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2}
|
||||
m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
|
||||
- rid: 5026820519263993866
|
||||
type: {class: URPTerrainShaderSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_IncludeTerrainShaders: 1
|
||||
- rid: 5026820519263993867
|
||||
type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3}
|
||||
m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3}
|
||||
m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3}
|
||||
m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3}
|
||||
m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3}
|
||||
m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3}
|
||||
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
|
||||
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
|
||||
m_DefaultMesh2DLitMaterial: {fileID: 2100000, guid: 9452ae1262a74094f8a68013fbcd1834, type: 2}
|
||||
- rid: 5026820519263993868
|
||||
type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3}
|
||||
subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3}
|
||||
gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3}
|
||||
bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3}
|
||||
cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3}
|
||||
paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3}
|
||||
lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3}
|
||||
lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3}
|
||||
bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3}
|
||||
temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3}
|
||||
LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3}
|
||||
LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3}
|
||||
scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3}
|
||||
easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3}
|
||||
uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3}
|
||||
finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3}
|
||||
m_ShaderResourcesVersion: 0
|
||||
- rid: 5026820519263993869
|
||||
type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_EnableRenderCompatibilityMode: 0
|
||||
- rid: 5026820519263993870
|
||||
type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
|
||||
m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
|
||||
m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3}
|
||||
- rid: 5026820519263993871
|
||||
type: {class: URPReflectionProbeSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
version: 1
|
||||
useReflectionProbeRotation: 1
|
||||
- rid: 5026820519263993872
|
||||
type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_VolumeProfile: {fileID: 11400000, guid: 6a697dcb8a0174239a6b4f5cf34e06f3, type: 2}
|
||||
- rid: 5026820519263993873
|
||||
type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_StripUnusedPostProcessingVariants: 0
|
||||
m_StripUnusedVariants: 1
|
||||
m_StripScreenCoordOverrideVariants: 1
|
||||
- rid: 5026820519263993874
|
||||
type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_BlueNoise256Textures:
|
||||
- {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3}
|
||||
- {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3}
|
||||
- {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3}
|
||||
- {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3}
|
||||
- {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3}
|
||||
- {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3}
|
||||
- {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3}
|
||||
m_Version: 0
|
||||
- rid: 5026820519263993875
|
||||
type: {class: OnTilePostProcessResource, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_UberPostShader: {fileID: 4800000, guid: fe4f13c1004a07d4ea1e30bfd0326d9e, type: 3}
|
||||
- rid: 5026820519263993876
|
||||
type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3}
|
||||
m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3}
|
||||
m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3}
|
||||
- rid: 5026820519263993877
|
||||
type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
|
||||
m_Version: 0
|
||||
- rid: 5026820519263993878
|
||||
type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
blueNoise16LTex:
|
||||
- {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3}
|
||||
- {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3}
|
||||
- {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3}
|
||||
- {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3}
|
||||
- {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3}
|
||||
- {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3}
|
||||
- {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3}
|
||||
- {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3}
|
||||
- {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3}
|
||||
- {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3}
|
||||
- {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3}
|
||||
- {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3}
|
||||
- {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3}
|
||||
- {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3}
|
||||
- {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3}
|
||||
- {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3}
|
||||
- {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3}
|
||||
- {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3}
|
||||
- {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3}
|
||||
- {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3}
|
||||
- {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3}
|
||||
- {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3}
|
||||
- {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3}
|
||||
- {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3}
|
||||
- {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3}
|
||||
- {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3}
|
||||
- {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3}
|
||||
- {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3}
|
||||
- {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3}
|
||||
- {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3}
|
||||
- {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3}
|
||||
- {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3}
|
||||
filmGrainTex:
|
||||
- {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3}
|
||||
- {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3}
|
||||
- {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3}
|
||||
- {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3}
|
||||
- {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3}
|
||||
- {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3}
|
||||
- {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3}
|
||||
- {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3}
|
||||
- {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3}
|
||||
- {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3}
|
||||
smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3}
|
||||
smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3}
|
||||
m_TexturesResourcesVersion: 0
|
||||
- rid: 5026820519263993879
|
||||
type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3}
|
||||
m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3}
|
||||
m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3}
|
||||
m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3}
|
||||
m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3}
|
||||
m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3}
|
||||
m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3}
|
||||
m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3}
|
||||
m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3}
|
||||
- rid: 5026820519263993880
|
||||
type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_version: 0
|
||||
m_EnableCompilationCaching: 1
|
||||
m_EnableValidityChecks: 1
|
||||
- rid: 5026820519263993881
|
||||
type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, type: 3}
|
||||
m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, type: 3}
|
||||
m_VisualizationLookupTable:
|
||||
m_Data:
|
||||
- {r: 0.785, g: 0.23, b: 0.2, a: 1}
|
||||
- {r: 1, g: 0.8, b: 0.8, a: 1}
|
||||
- {r: 0.4, g: 0.2, b: 0.2, a: 1}
|
||||
- {r: 0.51, g: 0.8, b: 0.6, a: 1}
|
||||
- {r: 0.6, g: 0.8, b: 1, a: 1}
|
||||
- {r: 0.2, g: 0.4, b: 0.6, a: 1}
|
||||
- {r: 0.8, g: 1, b: 0.8, a: 1}
|
||||
- {r: 0.2, g: 0.4, b: 0.2, a: 1}
|
||||
- {r: 0.125, g: 0.22, b: 0.36, a: 1}
|
||||
m_ConversionLookupTable:
|
||||
m_Data:
|
||||
- {r: 0.785, g: 0.23, b: 0.2, a: 1}
|
||||
- {r: 1, g: 0.8, b: 0.8, a: 1}
|
||||
- {r: 0.4, g: 0.2, b: 0.2, a: 1}
|
||||
- {r: 0.51, g: 0.8, b: 0.6, a: 1}
|
||||
- {r: 0.6, g: 0.8, b: 1, a: 1}
|
||||
- {r: 0.2, g: 0.4, b: 0.6, a: 1}
|
||||
- {r: 0.8, g: 1, b: 0.8, a: 1}
|
||||
- {r: 0.2, g: 0.4, b: 0.2, a: 1}
|
||||
- {r: 0.125, g: 0.22, b: 0.36, a: 1}
|
||||
- rid: 5026820519263993882
|
||||
type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_ExportShaderVariants: 1
|
||||
m_ShaderVariantLogLevel: 0
|
||||
m_StripRuntimeDebugShaders: 1
|
||||
- rid: 5026820519263993883
|
||||
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
m_ProbeVolumeDisableStreamingAssets: 0
|
||||
- rid: 5026820519263993884
|
||||
type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_version: 0
|
||||
m_IncludeReferencedInScenes: 0
|
||||
m_IncludeAssetsByLabel: 0
|
||||
m_LabelToInclude:
|
||||
- rid: 5026820519263993885
|
||||
type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_version: 0
|
||||
- rid: 5026820519263993886
|
||||
type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3}
|
||||
m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3}
|
||||
m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3}
|
||||
- rid: 5026820519263993887
|
||||
type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
m_UseBicubicLightmapSampling: 0
|
||||
- rid: 5026820519263993888
|
||||
type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3}
|
||||
subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3}
|
||||
voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3}
|
||||
traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3}
|
||||
traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3}
|
||||
skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
|
||||
skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
|
||||
renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
|
||||
renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
|
||||
- rid: 5026820519263993889
|
||||
type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3}
|
||||
probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3}
|
||||
probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3}
|
||||
- rid: 5026820519263993890
|
||||
type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3}
|
||||
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3}
|
||||
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3}
|
||||
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3}
|
||||
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3}
|
||||
numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3}
|
||||
- rid: 5026820519263993891
|
||||
type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3}
|
||||
8
Assets/UniversalRenderPipelineGlobalSettings.asset.meta
Normal file
8
Assets/UniversalRenderPipelineGlobalSettings.asset.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6f0ce73cdc8074fc283478fba3d0ede7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"com.unity.ide.rider": "3.0.40",
|
||||
"com.unity.ide.visualstudio": "2.0.26",
|
||||
"com.unity.inputsystem": "1.19.0",
|
||||
"com.unity.nuget.newtonsoft-json": "3.2.2",
|
||||
"com.unity.recorder": "5.1.6",
|
||||
|
|
|
|||
285
Packages/packages-lock.json
Normal file
285
Packages/packages-lock.json
Normal file
|
|
@ -0,0 +1,285 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"com.unity.bindings.openimageio": {
|
||||
"version": "1.0.2",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.collections": "1.2.4"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.burst": {
|
||||
"version": "1.8.29",
|
||||
"depth": 2,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.mathematics": "1.2.1",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.collections": {
|
||||
"version": "2.6.6",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.burst": "1.8.28",
|
||||
"com.unity.mathematics": "1.3.2",
|
||||
"com.unity.test-framework": "1.4.6",
|
||||
"com.unity.nuget.mono-cecil": "1.11.6",
|
||||
"com.unity.test-framework.performance": "3.0.3"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ext.nunit": {
|
||||
"version": "2.0.5",
|
||||
"depth": 1,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.ide.rider": {
|
||||
"version": "3.0.40",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.ext.nunit": "1.0.6"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ide.visualstudio": {
|
||||
"version": "2.0.26",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.test-framework": "1.1.33"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.inputsystem": {
|
||||
"version": "1.19.0",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.modules.uielements": "1.0.0"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.mathematics": {
|
||||
"version": "1.3.3",
|
||||
"depth": 2,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.nuget.mono-cecil": {
|
||||
"version": "1.11.6",
|
||||
"depth": 2,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.nuget.newtonsoft-json": {
|
||||
"version": "3.2.2",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.recorder": {
|
||||
"version": "5.1.6",
|
||||
"depth": 0,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.timeline": "1.8.7",
|
||||
"com.unity.collections": "1.2.4",
|
||||
"com.unity.bindings.openimageio": "1.0.2"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.render-pipelines.core": {
|
||||
"version": "17.3.0",
|
||||
"depth": 1,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.burst": "1.8.14",
|
||||
"com.unity.mathematics": "1.3.2",
|
||||
"com.unity.ugui": "2.0.0",
|
||||
"com.unity.collections": "2.4.3",
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.terrain": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.render-pipelines.universal": {
|
||||
"version": "17.3.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.render-pipelines.core": "17.3.0",
|
||||
"com.unity.shadergraph": "17.3.0",
|
||||
"com.unity.render-pipelines.universal-config": "17.0.3"
|
||||
}
|
||||
},
|
||||
"com.unity.render-pipelines.universal-config": {
|
||||
"version": "17.0.3",
|
||||
"depth": 1,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.render-pipelines.core": "17.0.3"
|
||||
}
|
||||
},
|
||||
"com.unity.searcher": {
|
||||
"version": "4.9.4",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.shadergraph": {
|
||||
"version": "17.3.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.render-pipelines.core": "17.3.0",
|
||||
"com.unity.searcher": "4.9.3"
|
||||
}
|
||||
},
|
||||
"com.unity.test-framework": {
|
||||
"version": "1.6.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.ext.nunit": "2.0.3",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.test-framework.performance": {
|
||||
"version": "3.5.0",
|
||||
"depth": 2,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.test-framework": "1.1.33",
|
||||
"com.unity.modules.jsonserialize": "1.0.0"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.timeline": {
|
||||
"version": "1.8.12",
|
||||
"depth": 1,
|
||||
"source": "registry",
|
||||
"dependencies": {
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.director": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0",
|
||||
"com.unity.modules.particlesystem": "1.0.0"
|
||||
},
|
||||
"url": "https://packages.unity.com"
|
||||
},
|
||||
"com.unity.ugui": {
|
||||
"version": "2.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.animation": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.audio": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.director": {
|
||||
"version": "1.0.0",
|
||||
"depth": 2,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.hierarchycore": {
|
||||
"version": "1.0.0",
|
||||
"depth": 1,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.imageconversion": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.imgui": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.jsonserialize": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.particlesystem": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.physics": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.screencapture": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.imageconversion": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.terrain": {
|
||||
"version": "1.0.0",
|
||||
"depth": 2,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.ui": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
},
|
||||
"com.unity.modules.uielements": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.hierarchycore": "1.0.0",
|
||||
"com.unity.modules.physics": "1.0.0"
|
||||
}
|
||||
},
|
||||
"com.unity.modules.umbra": {
|
||||
"version": "1.0.0",
|
||||
"depth": 0,
|
||||
"source": "builtin",
|
||||
"dependencies": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
ProjectSettings/AudioManager.asset
Normal file
23
ProjectSettings/AudioManager.asset
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!11 &1
|
||||
AudioManager:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Volume: 1
|
||||
Rolloff Scale: 1
|
||||
Doppler Factor: 1
|
||||
Default Speaker Mode: 2
|
||||
m_SampleRate: 0
|
||||
m_DSPBufferSize: 1024
|
||||
m_VirtualVoiceCount: 512
|
||||
m_RealVoiceCount: 32
|
||||
m_EnableOutputSuspension: 1
|
||||
m_SpatializerPlugin:
|
||||
m_AmbisonicDecoderPlugin:
|
||||
m_DisableAudio: 0
|
||||
m_VirtualizeEffects: 1
|
||||
m_RequestedDSPBufferSize: 0
|
||||
m_AudioFoundation: 0
|
||||
m_OutputChannelLayout: 2
|
||||
m_OutputSamplingRate: 48000
|
||||
6
ProjectSettings/ClusterInputManager.asset
Normal file
6
ProjectSettings/ClusterInputManager.asset
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!236 &1
|
||||
ClusterInputManager:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Inputs: []
|
||||
46
ProjectSettings/DynamicsManager.asset
Normal file
46
ProjectSettings/DynamicsManager.asset
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!55 &1
|
||||
PhysicsManager:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 24
|
||||
m_Gravity: {x: 0, y: -9.81, z: 0}
|
||||
m_DefaultMaterial: {fileID: 0}
|
||||
m_BounceThreshold: 2
|
||||
m_DefaultMaxDepenetrationVelocity: 10
|
||||
m_SleepThreshold: 0.005
|
||||
m_DefaultContactOffset: 0.01
|
||||
m_DefaultSolverIterations: 6
|
||||
m_DefaultSolverVelocityIterations: 1
|
||||
m_QueriesHitBackfaces: 0
|
||||
m_QueriesHitTriggers: 1
|
||||
m_EnableAdaptiveForce: 0
|
||||
m_ClothInterCollisionDistance: 0.1
|
||||
m_ClothInterCollisionStiffness: 0.2
|
||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
m_SimulationMode: 0
|
||||
m_ThreadingMode: 0
|
||||
m_AutoSyncTransforms: 0
|
||||
m_ReuseCollisionCallbacks: 1
|
||||
m_InvokeCollisionCallbacks: 1
|
||||
m_ClothInterCollisionSettingsToggle: 0
|
||||
m_ClothGravity: {x: 0, y: -9.81, z: 0}
|
||||
m_ContactPairsMode: 0
|
||||
m_BroadphaseType: 2
|
||||
m_WorldBounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 256, y: 256, z: 256}
|
||||
m_WorldSubdivisions: 8
|
||||
m_FrictionType: 0
|
||||
m_EnableEnhancedDeterminism: 0
|
||||
m_ImprovedPatchFriction: 0
|
||||
m_GenerateOnTriggerStayEvents: 1
|
||||
m_SolverType: 0
|
||||
m_DefaultMaxAngularSpeed: 50
|
||||
m_ScratchBufferChunkCount: 4
|
||||
m_CurrentBackendId: 4072204805
|
||||
m_FastMotionThreshold: 3.4028235e+38
|
||||
m_SceneBuffersReleaseInterval: 0
|
||||
m_ReleaseSceneBuffers: 0
|
||||
m_LogVerbosity: 3
|
||||
m_IncrementalStaticBroadphase: 1
|
||||
9
ProjectSettings/EditorBuildSettings.asset
Normal file
9
ProjectSettings/EditorBuildSettings.asset
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1045 &1
|
||||
EditorBuildSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Scenes: []
|
||||
m_configObjects: {}
|
||||
m_UseUCBPForAssetBundles: 0
|
||||
50
ProjectSettings/EditorSettings.asset
Normal file
50
ProjectSettings/EditorSettings.asset
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!159 &1
|
||||
EditorSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 15
|
||||
m_SerializationMode: 2
|
||||
m_LineEndingsForNewScripts: 1
|
||||
m_DefaultBehaviorMode: 0
|
||||
m_PrefabRegularEnvironment: {fileID: 0}
|
||||
m_PrefabUIEnvironment: {fileID: 0}
|
||||
m_SpritePackerMode: 0
|
||||
m_SpritePackerCacheSize: 10
|
||||
m_SpritePackerPaddingPower: 1
|
||||
m_Bc7TextureCompressor: 0
|
||||
m_EtcTextureCompressorBehavior: 1
|
||||
m_EtcTextureFastCompressor: 1
|
||||
m_EtcTextureNormalCompressor: 2
|
||||
m_EtcTextureBestCompressor: 4
|
||||
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;java;cpp;c;mm;m;h
|
||||
m_ProjectGenerationRootNamespace:
|
||||
m_EnableTextureStreamingInEditMode: 1
|
||||
m_EnableTextureStreamingInPlayMode: 1
|
||||
m_EnableEditorAsyncCPUTextureLoading: 0
|
||||
m_AsyncShaderCompilation: 1
|
||||
m_PrefabModeAllowAutoSave: 1
|
||||
m_EnterPlayModeOptionsEnabled: 1
|
||||
m_EnterPlayModeOptions: 0
|
||||
m_GameObjectNamingDigits: 1
|
||||
m_GameObjectNamingScheme: 0
|
||||
m_AssetNamingUsesSpace: 1
|
||||
m_InspectorUseIMGUIDefaultInspector: 0
|
||||
m_UseLegacyProbeSampleCount: 0
|
||||
m_SerializeInlineMappingsOnOneLine: 1
|
||||
m_DisableCookiesInLightmapper: 0
|
||||
m_ShadowmaskStitching: 1
|
||||
m_AssetPipelineMode: 1
|
||||
m_RefreshImportMode: 0
|
||||
m_CacheServerMode: 0
|
||||
m_CacheServerEndpoint:
|
||||
m_CacheServerNamespacePrefix: default
|
||||
m_CacheServerEnableDownload: 1
|
||||
m_CacheServerEnableUpload: 1
|
||||
m_CacheServerEnableAuth: 0
|
||||
m_CacheServerEnableTls: 0
|
||||
m_CacheServerValidationMode: 2
|
||||
m_CacheServerDownloadBatchSize: 128
|
||||
m_EnableEnlightenBakedGI: 0
|
||||
m_ReferencedClipsExactNaming: 1
|
||||
m_ForceAssetUnloadAndGCOnSceneLoad: 1
|
||||
69
ProjectSettings/GraphicsSettings.asset
Normal file
69
ProjectSettings/GraphicsSettings.asset
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!30 &1
|
||||
GraphicsSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 16
|
||||
m_Deferred:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_DeferredReflections:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ScreenSpaceShadows:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_DepthNormals:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_MotionVectors:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightHalo:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LensFlare:
|
||||
m_Mode: 1
|
||||
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_VideoShadersIncludeMode: 2
|
||||
m_AlwaysIncludedShaders:
|
||||
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
|
||||
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
|
||||
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
|
||||
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
|
||||
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
|
||||
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
|
||||
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_PreloadedShaders: []
|
||||
m_PreloadShadersBatchTimeLimit: -1
|
||||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_CustomRenderPipeline: {fileID: 0}
|
||||
m_TransparencySortMode: 0
|
||||
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
|
||||
m_DefaultRenderingPath: 1
|
||||
m_DefaultMobileRenderingPath: 1
|
||||
m_TierSettings: []
|
||||
m_LightmapStripping: 0
|
||||
m_FogStripping: 0
|
||||
m_InstancingStripping: 0
|
||||
m_BrgStripping: 0
|
||||
m_LightmapKeepPlain: 1
|
||||
m_LightmapKeepDirCombined: 1
|
||||
m_LightmapKeepDynamicPlain: 1
|
||||
m_LightmapKeepDynamicDirCombined: 1
|
||||
m_LightmapKeepShadowMask: 1
|
||||
m_LightmapKeepSubtractive: 1
|
||||
m_FogKeepLinear: 1
|
||||
m_FogKeepExp: 1
|
||||
m_FogKeepExp2: 1
|
||||
m_AlbedoSwatchInfos: []
|
||||
m_RenderPipelineGlobalSettingsMap:
|
||||
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 6f0ce73cdc8074fc283478fba3d0ede7, type: 2}
|
||||
m_ShaderBuildSettings:
|
||||
keywordDeclarationOverrides: []
|
||||
m_LightsUseLinearIntensity: 0
|
||||
m_LightsUseColorTemperature: 0
|
||||
m_LogWhenShaderIsCompiled: 0
|
||||
m_LightProbeOutsideHullStrategy: 1
|
||||
m_CameraRelativeLightCulling: 0
|
||||
m_CameraRelativeShadowCulling: 0
|
||||
488
ProjectSettings/InputManager.asset
Normal file
488
ProjectSettings/InputManager.asset
Normal file
|
|
@ -0,0 +1,488 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!13 &1
|
||||
InputManager:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Axes:
|
||||
- serializedVersion: 3
|
||||
m_Name: Horizontal
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton: left
|
||||
positiveButton: right
|
||||
altNegativeButton: a
|
||||
altPositiveButton: d
|
||||
gravity: 3
|
||||
dead: 0.001
|
||||
sensitivity: 3
|
||||
snap: 1
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Vertical
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton: down
|
||||
positiveButton: up
|
||||
altNegativeButton: s
|
||||
altPositiveButton: w
|
||||
gravity: 3
|
||||
dead: 0.001
|
||||
sensitivity: 3
|
||||
snap: 1
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Fire1
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: left ctrl
|
||||
altNegativeButton:
|
||||
altPositiveButton: mouse 0
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Fire2
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: left alt
|
||||
altNegativeButton:
|
||||
altPositiveButton: mouse 1
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Fire3
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: left shift
|
||||
altNegativeButton:
|
||||
altPositiveButton: mouse 2
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Jump
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: space
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Mouse X
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton:
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0.1
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 1
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Mouse Y
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton:
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0.1
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 1
|
||||
axis: 1
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Mouse ScrollWheel
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton:
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0.1
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 1
|
||||
axis: 2
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Horizontal
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton:
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 0
|
||||
dead: 0.19
|
||||
sensitivity: 1
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 2
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Vertical
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton:
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 0
|
||||
dead: 0.19
|
||||
sensitivity: 1
|
||||
snap: 0
|
||||
invert: 1
|
||||
type: 2
|
||||
axis: 1
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Fire1
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: joystick button 0
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Fire2
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: joystick button 1
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Fire3
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: joystick button 2
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Jump
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: joystick button 3
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Submit
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: return
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 0
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Submit
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: enter
|
||||
altNegativeButton:
|
||||
altPositiveButton: space
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Cancel
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: escape
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 1
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Enable Debug Button 1
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: left ctrl
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 8
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Enable Debug Button 2
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: backspace
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 9
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Reset
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: left alt
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 1
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Next
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: page down
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 5
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Previous
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: page up
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 4
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Validate
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: return
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 0
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Persistent
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: right shift
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 2
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Multiplier
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton:
|
||||
positiveButton: left shift
|
||||
altNegativeButton:
|
||||
altPositiveButton: joystick button 3
|
||||
gravity: 0
|
||||
dead: 0
|
||||
sensitivity: 0
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Horizontal
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton: left
|
||||
positiveButton: right
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Vertical
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton: down
|
||||
positiveButton: up
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 0
|
||||
axis: 0
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Vertical
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton: down
|
||||
positiveButton: up
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 2
|
||||
axis: 6
|
||||
joyNum: 0
|
||||
- serializedVersion: 3
|
||||
m_Name: Debug Horizontal
|
||||
descriptiveName:
|
||||
descriptiveNegativeName:
|
||||
negativeButton: left
|
||||
positiveButton: right
|
||||
altNegativeButton:
|
||||
altPositiveButton:
|
||||
gravity: 1000
|
||||
dead: 0.001
|
||||
sensitivity: 1000
|
||||
snap: 0
|
||||
invert: 0
|
||||
type: 2
|
||||
axis: 5
|
||||
joyNum: 0
|
||||
m_UsePhysicalKeys: 1
|
||||
35
ProjectSettings/MemorySettings.asset
Normal file
35
ProjectSettings/MemorySettings.asset
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!387306366 &1
|
||||
MemorySettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_EditorMemorySettings:
|
||||
m_MainAllocatorBlockSize: -1
|
||||
m_ThreadAllocatorBlockSize: -1
|
||||
m_MainGfxBlockSize: -1
|
||||
m_ThreadGfxBlockSize: -1
|
||||
m_CacheBlockSize: -1
|
||||
m_TypetreeBlockSize: -1
|
||||
m_ProfilerBlockSize: -1
|
||||
m_ProfilerEditorBlockSize: -1
|
||||
m_BucketAllocatorGranularity: -1
|
||||
m_BucketAllocatorBucketsCount: -1
|
||||
m_BucketAllocatorBlockSize: -1
|
||||
m_BucketAllocatorBlockCount: -1
|
||||
m_ProfilerBucketAllocatorGranularity: -1
|
||||
m_ProfilerBucketAllocatorBucketsCount: -1
|
||||
m_ProfilerBucketAllocatorBlockSize: -1
|
||||
m_ProfilerBucketAllocatorBlockCount: -1
|
||||
m_TempAllocatorSizeMain: -1
|
||||
m_JobTempAllocatorBlockSize: -1
|
||||
m_BackgroundJobTempAllocatorBlockSize: -1
|
||||
m_JobTempAllocatorReducedBlockSize: -1
|
||||
m_TempAllocatorSizeGIBakingWorker: -1
|
||||
m_TempAllocatorSizeNavMeshWorker: -1
|
||||
m_TempAllocatorSizeAudioWorker: -1
|
||||
m_TempAllocatorSizeCloudWorker: -1
|
||||
m_TempAllocatorSizeGfx: -1
|
||||
m_TempAllocatorSizeJobWorker: -1
|
||||
m_TempAllocatorSizeBackgroundWorker: -1
|
||||
m_TempAllocatorSizePreloadManager: -1
|
||||
m_PlatformMemorySettings: {}
|
||||
9
ProjectSettings/MultiplayerManager.asset
Normal file
9
ProjectSettings/MultiplayerManager.asset
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!655991488 &1
|
||||
MultiplayerManager:
|
||||
m_ObjectHideFlags: 0
|
||||
m_EnableMultiplayerRoles: 0
|
||||
m_EnablePlayModeLocalDeployment: 0
|
||||
m_EnablePlayModeRemoteDeployment: 0
|
||||
m_StrippingTypes: {}
|
||||
93
ProjectSettings/NavMeshAreas.asset
Normal file
93
ProjectSettings/NavMeshAreas.asset
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!126 &1
|
||||
NavMeshProjectSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
areas:
|
||||
- name: Walkable
|
||||
cost: 1
|
||||
- name: Not Walkable
|
||||
cost: 1
|
||||
- name: Jump
|
||||
cost: 2
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
- name:
|
||||
cost: 1
|
||||
m_LastAgentTypeID: -887442657
|
||||
m_Settings:
|
||||
- serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.75
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_SettingNames:
|
||||
- Humanoid
|
||||
57
ProjectSettings/Physics2DSettings.asset
Normal file
57
ProjectSettings/Physics2DSettings.asset
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!19 &1
|
||||
Physics2DSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 11
|
||||
m_Gravity: {x: 0, y: -9.81}
|
||||
m_DefaultMaterial: {fileID: 0}
|
||||
m_VelocityIterations: 8
|
||||
m_PositionIterations: 3
|
||||
m_BounceThreshold: 1
|
||||
m_MaxLinearCorrection: 0.2
|
||||
m_MaxAngularCorrection: 8
|
||||
m_MaxTranslationSpeed: 100
|
||||
m_MaxRotationSpeed: 360
|
||||
m_BaumgarteScale: 0.2
|
||||
m_BaumgarteTimeOfImpactScale: 0.75
|
||||
m_TimeToSleep: 0.5
|
||||
m_LinearSleepTolerance: 0.01
|
||||
m_AngularSleepTolerance: 2
|
||||
m_DefaultContactOffset: 0.01
|
||||
m_ContactThreshold: 0
|
||||
m_JobOptions:
|
||||
serializedVersion: 2
|
||||
useMultithreading: 0
|
||||
useConsistencySorting: 0
|
||||
m_InterpolationPosesPerJob: 100
|
||||
m_NewContactsPerJob: 30
|
||||
m_CollideContactsPerJob: 100
|
||||
m_ClearFlagsPerJob: 200
|
||||
m_ClearBodyForcesPerJob: 200
|
||||
m_SyncDiscreteFixturesPerJob: 50
|
||||
m_SyncContinuousFixturesPerJob: 50
|
||||
m_FindNearestContactsPerJob: 100
|
||||
m_UpdateTriggerContactsPerJob: 100
|
||||
m_IslandSolverCostThreshold: 100
|
||||
m_IslandSolverBodyCostScale: 1
|
||||
m_IslandSolverContactCostScale: 10
|
||||
m_IslandSolverJointCostScale: 10
|
||||
m_IslandSolverBodiesPerJob: 50
|
||||
m_IslandSolverContactsPerJob: 50
|
||||
m_SimulationMode: 0
|
||||
m_SimulationLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_MaxSubStepCount: 4
|
||||
m_MinSubStepFPS: 30
|
||||
m_UseSubStepping: 0
|
||||
m_UseSubStepContacts: 0
|
||||
m_QueriesHitTriggers: 1
|
||||
m_QueriesStartInColliders: 1
|
||||
m_CallbacksOnDisable: 1
|
||||
m_ReuseCollisionCallbacks: 1
|
||||
m_AutoSyncTransforms: 0
|
||||
m_GizmoOptions: 10
|
||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
m_PhysicsLowLevelSettings: {fileID: 0}
|
||||
7
ProjectSettings/PresetManager.asset
Normal file
7
ProjectSettings/PresetManager.asset
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1386491679 &1
|
||||
PresetManager:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_DefaultPresets: {}
|
||||
696
ProjectSettings/ProjectSettings.asset
Normal file
696
ProjectSettings/ProjectSettings.asset
Normal file
|
|
@ -0,0 +1,696 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!129 &1
|
||||
PlayerSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 28
|
||||
productGUID: d7f9623963cd94aabb162c37d6d79814
|
||||
AndroidProfiler: 0
|
||||
AndroidFilterTouchesWhenObscured: 0
|
||||
AndroidEnableSustainedPerformanceMode: 0
|
||||
defaultScreenOrientation: 4
|
||||
targetDevice: 2
|
||||
useOnDemandResources: 0
|
||||
accelerometerFrequency: 60
|
||||
companyName: DefaultCompany
|
||||
productName: luneraria-unity
|
||||
defaultCursor: {fileID: 0}
|
||||
cursorHotspot: {x: 0, y: 0}
|
||||
m_SplashScreenBackgroundColor: {r: 0.12156863, g: 0.12156863, b: 0.1254902, a: 1}
|
||||
m_ShowUnitySplashScreen: 1
|
||||
m_ShowUnitySplashLogo: 1
|
||||
m_SplashScreenOverlayOpacity: 1
|
||||
m_SplashScreenAnimation: 1
|
||||
m_SplashScreenLogoStyle: 1
|
||||
m_SplashScreenDrawMode: 0
|
||||
m_SplashScreenBackgroundAnimationZoom: 1
|
||||
m_SplashScreenLogoAnimationZoom: 1
|
||||
m_SplashScreenBackgroundLandscapeAspect: 1
|
||||
m_SplashScreenBackgroundPortraitAspect: 1
|
||||
m_SplashScreenBackgroundLandscapeUvs:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
m_SplashScreenBackgroundPortraitUvs:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
m_SplashScreenLogos: []
|
||||
m_VirtualRealitySplashScreen: {fileID: 0}
|
||||
m_HolographicTrackingLossScreen: {fileID: 0}
|
||||
defaultScreenWidth: 1920
|
||||
defaultScreenHeight: 1080
|
||||
defaultScreenWidthWeb: 960
|
||||
defaultScreenHeightWeb: 600
|
||||
m_StereoRenderingPath: 0
|
||||
m_ActiveColorSpace: 0
|
||||
unsupportedMSAAFallback: 0
|
||||
m_SpriteBatchMaxVertexCount: 65535
|
||||
m_SpriteBatchVertexThreshold: 300
|
||||
m_MTRendering: 1
|
||||
mipStripping: 0
|
||||
numberOfMipsStripped: 0
|
||||
numberOfMipsStrippedPerMipmapLimitGroup: {}
|
||||
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
|
||||
iosShowActivityIndicatorOnLoading: -1
|
||||
androidShowActivityIndicatorOnLoading: -1
|
||||
iosUseCustomAppBackgroundBehavior: 0
|
||||
allowedAutorotateToPortrait: 1
|
||||
allowedAutorotateToPortraitUpsideDown: 1
|
||||
allowedAutorotateToLandscapeRight: 1
|
||||
allowedAutorotateToLandscapeLeft: 1
|
||||
useOSAutorotation: 1
|
||||
use32BitDisplayBuffer: 1
|
||||
preserveFramebufferAlpha: 0
|
||||
disableDepthAndStencilBuffers: 0
|
||||
androidStartInFullscreen: 1
|
||||
androidRenderOutsideSafeArea: 1
|
||||
androidUseSwappy: 1
|
||||
androidDisplayOptions: 1
|
||||
androidBlitType: 0
|
||||
androidResizeableActivity: 1
|
||||
androidDefaultWindowWidth: 1920
|
||||
androidDefaultWindowHeight: 1080
|
||||
androidMinimumWindowWidth: 400
|
||||
androidMinimumWindowHeight: 300
|
||||
androidFullscreenMode: 1
|
||||
androidAutoRotationBehavior: 1
|
||||
androidPredictiveBackSupport: 1
|
||||
androidApplicationEntry: 2
|
||||
defaultIsNativeResolution: 1
|
||||
macRetinaSupport: 1
|
||||
runInBackground: 0
|
||||
muteOtherAudioSources: 0
|
||||
Prepare IOS For Recording: 0
|
||||
Force IOS Speakers When Recording: 0
|
||||
audioSpatialExperience: 0
|
||||
deferSystemGesturesMode: 0
|
||||
hideHomeButton: 0
|
||||
submitAnalytics: 1
|
||||
usePlayerLog: 1
|
||||
dedicatedServerOptimizations: 1
|
||||
bakeCollisionMeshes: 0
|
||||
forceSingleInstance: 0
|
||||
useFlipModelSwapchain: 1
|
||||
resizableWindow: 0
|
||||
useMacAppStoreValidation: 0
|
||||
macAppStoreCategory: public.app-category.games
|
||||
gpuSkinning: 0
|
||||
meshDeformation: 0
|
||||
xboxPIXTextureCapture: 0
|
||||
xboxEnableAvatar: 0
|
||||
xboxEnableKinect: 0
|
||||
xboxEnableKinectAutoTracking: 0
|
||||
xboxEnableFitness: 0
|
||||
visibleInBackground: 1
|
||||
allowFullscreenSwitch: 1
|
||||
fullscreenMode: 1
|
||||
xboxSpeechDB: 0
|
||||
xboxEnableHeadOrientation: 0
|
||||
xboxEnableGuest: 0
|
||||
xboxEnablePIXSampling: 0
|
||||
metalFramebufferOnly: 0
|
||||
metalUseMetalDisplayLink: 0
|
||||
xboxOneResolution: 0
|
||||
xboxOneSResolution: 0
|
||||
xboxOneXResolution: 3
|
||||
xboxOneMonoLoggingLevel: 0
|
||||
xboxOneLoggingLevel: 1
|
||||
xboxOneDisableEsram: 0
|
||||
xboxOneEnableTypeOptimization: 0
|
||||
xboxOnePresentImmediateThreshold: 0
|
||||
switchQueueCommandMemory: 1048576
|
||||
switchQueueControlMemory: 16384
|
||||
switchQueueComputeMemory: 262144
|
||||
switchNVNShaderPoolsGranularity: 33554432
|
||||
switchNVNDefaultPoolsGranularity: 16777216
|
||||
switchNVNOtherPoolsGranularity: 16777216
|
||||
switchGpuScratchPoolGranularity: 2097152
|
||||
switchAllowGpuScratchShrinking: 0
|
||||
switchNVNMaxPublicTextureIDCount: 0
|
||||
switchNVNMaxPublicSamplerIDCount: 0
|
||||
switchMaxWorkerMultiple: 8
|
||||
switchNVNGraphicsFirmwareMemory: 32
|
||||
switchGraphicsJobsSyncAfterKick: 1
|
||||
vulkanNumSwapchainBuffers: 3
|
||||
vulkanEnableSetSRGBWrite: 0
|
||||
vulkanEnablePreTransform: 0
|
||||
vulkanEnableLateAcquireNextImage: 0
|
||||
vulkanEnableCommandBufferRecycling: 1
|
||||
loadStoreDebugModeEnabled: 0
|
||||
visionOSBundleVersion: 1.0
|
||||
tvOSBundleVersion: 1.0
|
||||
bundleVersion: 1.0
|
||||
preloadedAssets: []
|
||||
metroInputSource: 0
|
||||
wsaTransparentSwapchain: 0
|
||||
m_HolographicPauseOnTrackingLoss: 1
|
||||
xboxOneDisableKinectGpuReservation: 1
|
||||
xboxOneEnable7thCore: 1
|
||||
vrSettings:
|
||||
enable360StereoCapture: 0
|
||||
isWsaHolographicRemotingEnabled: 0
|
||||
enableFrameTimingStats: 0
|
||||
enableOpenGLProfilerGPURecorders: 1
|
||||
allowHDRDisplaySupport: 0
|
||||
useHDRDisplay: 0
|
||||
hdrBitDepth: 0
|
||||
m_ColorGamuts: 00000000
|
||||
targetPixelDensity: 0
|
||||
resolutionScalingMode: 0
|
||||
resetResolutionOnWindowResize: 0
|
||||
androidSupportedAspectRatio: 1
|
||||
androidMaxAspectRatio: 2.4
|
||||
androidMinAspectRatio: 1
|
||||
applicationIdentifier: {}
|
||||
buildNumber: {}
|
||||
overrideDefaultApplicationIdentifier: 0
|
||||
AndroidBundleVersionCode: 1
|
||||
AndroidMinSdkVersion: 25
|
||||
AndroidTargetSdkVersion: 0
|
||||
AndroidPreferredInstallLocation: 1
|
||||
AndroidPreferredDataLocation: 1
|
||||
aotOptions:
|
||||
stripEngineCode: 1
|
||||
iPhoneStrippingLevel: 0
|
||||
iPhoneScriptCallOptimization: 0
|
||||
ForceInternetPermission: 0
|
||||
ForceSDCardPermission: 0
|
||||
CreateWallpaper: 0
|
||||
androidSplitApplicationBinary: 0
|
||||
keepLoadedShadersAlive: 0
|
||||
StripUnusedMeshComponents: 0
|
||||
strictShaderVariantMatching: 0
|
||||
VertexChannelCompressionMask: 4054
|
||||
iPhoneSdkVersion: 988
|
||||
iOSSimulatorArchitecture: 0
|
||||
iOSTargetOSVersionString:
|
||||
tvOSSdkVersion: 0
|
||||
tvOSSimulatorArchitecture: 0
|
||||
tvOSRequireExtendedGameController: 0
|
||||
tvOSTargetOSVersionString:
|
||||
VisionOSSdkVersion: 0
|
||||
VisionOSTargetOSVersionString:
|
||||
uIPrerenderedIcon: 0
|
||||
uIRequiresPersistentWiFi: 0
|
||||
uIRequiresFullScreen: 1
|
||||
uIStatusBarHidden: 1
|
||||
uIExitOnSuspend: 0
|
||||
uIStatusBarStyle: 0
|
||||
appleTVSplashScreen: {fileID: 0}
|
||||
appleTVSplashScreen2x: {fileID: 0}
|
||||
tvOSSmallIconLayers: []
|
||||
tvOSSmallIconLayers2x: []
|
||||
tvOSLargeIconLayers: []
|
||||
tvOSLargeIconLayers2x: []
|
||||
tvOSTopShelfImageLayers: []
|
||||
tvOSTopShelfImageLayers2x: []
|
||||
tvOSTopShelfImageWideLayers: []
|
||||
tvOSTopShelfImageWideLayers2x: []
|
||||
iOSLaunchScreenType: 0
|
||||
iOSLaunchScreenPortrait: {fileID: 0}
|
||||
iOSLaunchScreenLandscape: {fileID: 0}
|
||||
iOSLaunchScreenBackgroundColor:
|
||||
serializedVersion: 2
|
||||
rgba: 0
|
||||
iOSLaunchScreenFillPct: 100
|
||||
iOSLaunchScreenSize: 100
|
||||
iOSLaunchScreeniPadType: 0
|
||||
iOSLaunchScreeniPadImage: {fileID: 0}
|
||||
iOSLaunchScreeniPadBackgroundColor:
|
||||
serializedVersion: 2
|
||||
rgba: 0
|
||||
iOSLaunchScreeniPadFillPct: 100
|
||||
iOSLaunchScreeniPadSize: 100
|
||||
iOSLaunchScreenCustomStoryboardPath:
|
||||
iOSLaunchScreeniPadCustomStoryboardPath:
|
||||
iOSDeviceRequirements: []
|
||||
iOSURLSchemes: []
|
||||
macOSURLSchemes: []
|
||||
iOSBackgroundModes: 0
|
||||
iOSMetalForceHardShadows: 0
|
||||
metalEditorSupport: 1
|
||||
metalAPIValidation: 1
|
||||
metalCompileShaderBinary: 0
|
||||
iOSRenderExtraFrameOnPause: 0
|
||||
iosCopyPluginsCodeInsteadOfSymlink: 0
|
||||
appleDeveloperTeamID:
|
||||
iOSManualSigningProvisioningProfileID:
|
||||
tvOSManualSigningProvisioningProfileID:
|
||||
VisionOSManualSigningProvisioningProfileID:
|
||||
iOSManualSigningProvisioningProfileType: 0
|
||||
tvOSManualSigningProvisioningProfileType: 0
|
||||
VisionOSManualSigningProvisioningProfileType: 0
|
||||
appleEnableAutomaticSigning: 0
|
||||
iOSRequireARKit: 0
|
||||
iOSAutomaticallyDetectAndAddCapabilities: 1
|
||||
appleEnableProMotion: 0
|
||||
shaderPrecisionModel: 0
|
||||
clonedFromGUID: 00000000000000000000000000000000
|
||||
templatePackageId:
|
||||
templateDefaultScene:
|
||||
useCustomMainManifest: 0
|
||||
useCustomLauncherManifest: 0
|
||||
useCustomMainGradleTemplate: 0
|
||||
useCustomLauncherGradleManifest: 0
|
||||
useCustomBaseGradleTemplate: 0
|
||||
useCustomGradlePropertiesTemplate: 0
|
||||
useCustomGradleSettingsTemplate: 0
|
||||
useCustomProguardFile: 0
|
||||
AndroidTargetArchitectures: 2
|
||||
AndroidAllowedArchitectures: -1
|
||||
AndroidSplashScreenScale: 0
|
||||
androidSplashScreen: {fileID: 0}
|
||||
AndroidKeystoreName:
|
||||
AndroidKeyaliasName:
|
||||
AndroidEnableArmv9SecurityFeatures: 0
|
||||
AndroidEnableArm64MTE: 0
|
||||
AndroidBuildApkPerCpuArchitecture: 0
|
||||
AndroidTVCompatibility: 0
|
||||
AndroidIsGame: 1
|
||||
androidAppCategory: 3
|
||||
useAndroidAppCategory: 1
|
||||
androidAppCategoryOther:
|
||||
AndroidEnableTango: 0
|
||||
androidEnableBanner: 1
|
||||
androidUseLowAccuracyLocation: 0
|
||||
androidUseCustomKeystore: 0
|
||||
m_AndroidBanners:
|
||||
- width: 320
|
||||
height: 180
|
||||
banner: {fileID: 0}
|
||||
androidGamepadSupportLevel: 0
|
||||
AndroidMinifyRelease: 0
|
||||
AndroidMinifyDebug: 0
|
||||
AndroidValidateAppBundleSize: 1
|
||||
AndroidAppBundleSizeToValidate: 200
|
||||
AndroidReportGooglePlayAppDependencies: 1
|
||||
androidSymbolsSizeThreshold: 800
|
||||
m_BuildTargetIcons: []
|
||||
m_BuildTargetPlatformIcons: []
|
||||
m_BuildTargetBatching: []
|
||||
m_BuildTargetShaderSettings: []
|
||||
m_BuildTargetGraphicsJobs: []
|
||||
m_BuildTargetGraphicsJobMode: []
|
||||
m_BuildTargetGraphicsAPIs: []
|
||||
m_BuildTargetVRSettings: []
|
||||
m_DefaultShaderChunkSizeInMB: 16
|
||||
m_DefaultShaderChunkCount: 0
|
||||
openGLRequireES31: 0
|
||||
openGLRequireES31AEP: 0
|
||||
openGLRequireES32: 0
|
||||
m_TemplateCustomTags: {}
|
||||
mobileMTRendering:
|
||||
Android: 1
|
||||
VisionOS: 1
|
||||
iPhone: 1
|
||||
tvOS: 1
|
||||
m_BuildTargetGroupLightmapEncodingQuality: []
|
||||
m_BuildTargetGroupHDRCubemapEncodingQuality: []
|
||||
m_BuildTargetGroupLightmapSettings: []
|
||||
m_BuildTargetGroupLoadStoreDebugModeSettings: []
|
||||
m_BuildTargetNormalMapEncoding: []
|
||||
m_BuildTargetDefaultTextureCompressionFormat: []
|
||||
playModeTestRunnerEnabled: 0
|
||||
runPlayModeTestAsEditModeTest: 0
|
||||
actionOnDotNetUnhandledException: 1
|
||||
editorGfxJobOverride: 1
|
||||
enableInternalProfiler: 0
|
||||
logObjCUncaughtExceptions: 1
|
||||
enableCrashReportAPI: 0
|
||||
cameraUsageDescription:
|
||||
locationUsageDescription:
|
||||
microphoneUsageDescription:
|
||||
bluetoothUsageDescription:
|
||||
macOSTargetOSVersion:
|
||||
switchNMETAOverride:
|
||||
switchNetLibKey:
|
||||
switchSocketMemoryPoolSize: 6144
|
||||
switchSocketAllocatorPoolSize: 128
|
||||
switchSocketConcurrencyLimit: 14
|
||||
switchScreenResolutionBehavior: 2
|
||||
switchUseCPUProfiler: 0
|
||||
switchEnableFileSystemTrace: 0
|
||||
switchLTOSetting: 0
|
||||
switchApplicationID: 0x01004b9000490000
|
||||
switchNSODependencies:
|
||||
switchCompilerFlags:
|
||||
switchTitleNames_0:
|
||||
switchTitleNames_1:
|
||||
switchTitleNames_2:
|
||||
switchTitleNames_3:
|
||||
switchTitleNames_4:
|
||||
switchTitleNames_5:
|
||||
switchTitleNames_6:
|
||||
switchTitleNames_7:
|
||||
switchTitleNames_8:
|
||||
switchTitleNames_9:
|
||||
switchTitleNames_10:
|
||||
switchTitleNames_11:
|
||||
switchTitleNames_12:
|
||||
switchTitleNames_13:
|
||||
switchTitleNames_14:
|
||||
switchTitleNames_15:
|
||||
switchPublisherNames_0:
|
||||
switchPublisherNames_1:
|
||||
switchPublisherNames_2:
|
||||
switchPublisherNames_3:
|
||||
switchPublisherNames_4:
|
||||
switchPublisherNames_5:
|
||||
switchPublisherNames_6:
|
||||
switchPublisherNames_7:
|
||||
switchPublisherNames_8:
|
||||
switchPublisherNames_9:
|
||||
switchPublisherNames_10:
|
||||
switchPublisherNames_11:
|
||||
switchPublisherNames_12:
|
||||
switchPublisherNames_13:
|
||||
switchPublisherNames_14:
|
||||
switchPublisherNames_15:
|
||||
switchIcons_0: {fileID: 0}
|
||||
switchIcons_1: {fileID: 0}
|
||||
switchIcons_2: {fileID: 0}
|
||||
switchIcons_3: {fileID: 0}
|
||||
switchIcons_4: {fileID: 0}
|
||||
switchIcons_5: {fileID: 0}
|
||||
switchIcons_6: {fileID: 0}
|
||||
switchIcons_7: {fileID: 0}
|
||||
switchIcons_8: {fileID: 0}
|
||||
switchIcons_9: {fileID: 0}
|
||||
switchIcons_10: {fileID: 0}
|
||||
switchIcons_11: {fileID: 0}
|
||||
switchIcons_12: {fileID: 0}
|
||||
switchIcons_13: {fileID: 0}
|
||||
switchIcons_14: {fileID: 0}
|
||||
switchIcons_15: {fileID: 0}
|
||||
switchSmallIcons_0: {fileID: 0}
|
||||
switchSmallIcons_1: {fileID: 0}
|
||||
switchSmallIcons_2: {fileID: 0}
|
||||
switchSmallIcons_3: {fileID: 0}
|
||||
switchSmallIcons_4: {fileID: 0}
|
||||
switchSmallIcons_5: {fileID: 0}
|
||||
switchSmallIcons_6: {fileID: 0}
|
||||
switchSmallIcons_7: {fileID: 0}
|
||||
switchSmallIcons_8: {fileID: 0}
|
||||
switchSmallIcons_9: {fileID: 0}
|
||||
switchSmallIcons_10: {fileID: 0}
|
||||
switchSmallIcons_11: {fileID: 0}
|
||||
switchSmallIcons_12: {fileID: 0}
|
||||
switchSmallIcons_13: {fileID: 0}
|
||||
switchSmallIcons_14: {fileID: 0}
|
||||
switchSmallIcons_15: {fileID: 0}
|
||||
switchManualHTML:
|
||||
switchAccessibleURLs:
|
||||
switchLegalInformation:
|
||||
switchMainThreadStackSize: 1048576
|
||||
switchPresenceGroupId:
|
||||
switchLogoHandling: 0
|
||||
switchReleaseVersion: 0
|
||||
switchDisplayVersion: 1.0.0
|
||||
switchStartupUserAccount: 0
|
||||
switchSupportedLanguagesMask: 0
|
||||
switchLogoType: 0
|
||||
switchApplicationErrorCodeCategory:
|
||||
switchUserAccountSaveDataSize: 0
|
||||
switchUserAccountSaveDataJournalSize: 0
|
||||
switchApplicationAttribute: 0
|
||||
switchCardSpecSize: -1
|
||||
switchCardSpecClock: -1
|
||||
switchRatingsMask: 0
|
||||
switchRatingsInt_0: 0
|
||||
switchRatingsInt_1: 0
|
||||
switchRatingsInt_2: 0
|
||||
switchRatingsInt_3: 0
|
||||
switchRatingsInt_4: 0
|
||||
switchRatingsInt_5: 0
|
||||
switchRatingsInt_6: 0
|
||||
switchRatingsInt_7: 0
|
||||
switchRatingsInt_8: 0
|
||||
switchRatingsInt_9: 0
|
||||
switchRatingsInt_10: 0
|
||||
switchRatingsInt_11: 0
|
||||
switchRatingsInt_12: 0
|
||||
switchLocalCommunicationIds_0:
|
||||
switchLocalCommunicationIds_1:
|
||||
switchLocalCommunicationIds_2:
|
||||
switchLocalCommunicationIds_3:
|
||||
switchLocalCommunicationIds_4:
|
||||
switchLocalCommunicationIds_5:
|
||||
switchLocalCommunicationIds_6:
|
||||
switchLocalCommunicationIds_7:
|
||||
switchParentalControl: 0
|
||||
switchAllowsScreenshot: 1
|
||||
switchAllowsVideoCapturing: 1
|
||||
switchAllowsRuntimeAddOnContentInstall: 0
|
||||
switchDataLossConfirmation: 0
|
||||
switchUserAccountLockEnabled: 0
|
||||
switchSystemResourceMemory: 16777216
|
||||
switchSupportedNpadStyles: 22
|
||||
switchNativeFsCacheSize: 32
|
||||
switchIsHoldTypeHorizontal: 1
|
||||
switchSupportedNpadCount: 8
|
||||
switchEnableTouchScreen: 1
|
||||
switchSocketConfigEnabled: 0
|
||||
switchTcpInitialSendBufferSize: 32
|
||||
switchTcpInitialReceiveBufferSize: 64
|
||||
switchTcpAutoSendBufferSizeMax: 256
|
||||
switchTcpAutoReceiveBufferSizeMax: 256
|
||||
switchUdpSendBufferSize: 9
|
||||
switchUdpReceiveBufferSize: 42
|
||||
switchSocketBufferEfficiency: 4
|
||||
switchSocketInitializeEnabled: 1
|
||||
switchNetworkInterfaceManagerInitializeEnabled: 1
|
||||
switchDisableHTCSPlayerConnection: 0
|
||||
switchUseNewStyleFilepaths: 1
|
||||
switchUseLegacyFmodPriorities: 0
|
||||
switchUseMicroSleepForYield: 1
|
||||
switchEnableRamDiskSupport: 0
|
||||
switchMicroSleepForYieldTime: 25
|
||||
switchRamDiskSpaceSize: 12
|
||||
switchUpgradedPlayerSettingsToNMETA: 0
|
||||
ps4NPAgeRating: 12
|
||||
ps4NPTitleSecret:
|
||||
ps4NPTrophyPackPath:
|
||||
ps4ParentalLevel: 11
|
||||
ps4ContentID: ED1633-NPXX51362_00-0000000000000000
|
||||
ps4Category: 0
|
||||
ps4MasterVersion: 01.00
|
||||
ps4AppVersion: 01.00
|
||||
ps4AppType: 0
|
||||
ps4ParamSfxPath:
|
||||
ps4VideoOutPixelFormat: 0
|
||||
ps4VideoOutInitialWidth: 1920
|
||||
ps4VideoOutBaseModeInitialWidth: 1920
|
||||
ps4VideoOutReprojectionRate: 60
|
||||
ps4PronunciationXMLPath:
|
||||
ps4PronunciationSIGPath:
|
||||
ps4BackgroundImagePath:
|
||||
ps4StartupImagePath:
|
||||
ps4StartupImagesFolder:
|
||||
ps4IconImagesFolder:
|
||||
ps4SaveDataImagePath:
|
||||
ps4SdkOverride:
|
||||
ps4BGMPath:
|
||||
ps4ShareFilePath:
|
||||
ps4ShareOverlayImagePath:
|
||||
ps4PrivacyGuardImagePath:
|
||||
ps4ExtraSceSysFile:
|
||||
ps4NPtitleDatPath:
|
||||
ps4RemotePlayKeyAssignment: -1
|
||||
ps4RemotePlayKeyMappingDir:
|
||||
ps4PlayTogetherPlayerCount: 0
|
||||
ps4EnterButtonAssignment: 2
|
||||
ps4ApplicationParam1: 0
|
||||
ps4ApplicationParam2: 0
|
||||
ps4ApplicationParam3: 0
|
||||
ps4ApplicationParam4: 0
|
||||
ps4DownloadDataSize: 0
|
||||
ps4GarlicHeapSize: 2048
|
||||
ps4ProGarlicHeapSize: 2560
|
||||
playerPrefsMaxSize: 32768
|
||||
ps4Passcode: 2mBb6EbdJzdDhGIADmOHeVPCI60gXNhk
|
||||
ps4pnSessions: 1
|
||||
ps4pnPresence: 1
|
||||
ps4pnFriends: 1
|
||||
ps4pnGameCustomData: 1
|
||||
playerPrefsSupport: 0
|
||||
enableApplicationExit: 0
|
||||
resetTempFolder: 1
|
||||
restrictedAudioUsageRights: 0
|
||||
ps4UseResolutionFallback: 0
|
||||
ps4ReprojectionSupport: 0
|
||||
ps4UseAudio3dBackend: 0
|
||||
ps4UseLowGarlicFragmentationMode: 1
|
||||
ps4SocialScreenEnabled: 0
|
||||
ps4ScriptOptimizationLevel: 2
|
||||
ps4Audio3dVirtualSpeakerCount: 14
|
||||
ps4attribCpuUsage: 0
|
||||
ps4PatchPkgPath:
|
||||
ps4PatchLatestPkgPath:
|
||||
ps4PatchChangeinfoPath:
|
||||
ps4PatchDayOne: 0
|
||||
ps4attribUserManagement: 0
|
||||
ps4attribMoveSupport: 0
|
||||
ps4attrib3DSupport: 0
|
||||
ps4attribShareSupport: 0
|
||||
ps4attribExclusiveVR: 0
|
||||
ps4disableAutoHideSplash: 0
|
||||
ps4videoRecordingFeaturesUsed: 0
|
||||
ps4contentSearchFeaturesUsed: 0
|
||||
ps4CompatibilityPS5: 0
|
||||
ps4AllowPS5Detection: 0
|
||||
ps4GPU800MHz: 1
|
||||
ps4attribEyeToEyeDistanceSettingVR: 0
|
||||
ps4IncludedModules: []
|
||||
ps4attribVROutputEnabled: 0
|
||||
monoEnv:
|
||||
splashScreenBackgroundSourceLandscape: {fileID: 0}
|
||||
splashScreenBackgroundSourcePortrait: {fileID: 0}
|
||||
blurSplashScreenBackground: 1
|
||||
spritePackerPolicy:
|
||||
webGLMemorySize: 32
|
||||
webGLExceptionSupport: 1
|
||||
webGLNameFilesAsHashes: 0
|
||||
webGLShowDiagnostics: 0
|
||||
webGLDataCaching: 1
|
||||
webGLDebugSymbols: 0
|
||||
webGLEmscriptenArgs:
|
||||
webGLModulesDirectory:
|
||||
webGLTemplate: APPLICATION:Default
|
||||
webGLAnalyzeBuildSize: 0
|
||||
webGLUseEmbeddedResources: 0
|
||||
webGLCompressionFormat: 1
|
||||
webGLWasmArithmeticExceptions: 0
|
||||
webGLLinkerTarget: 1
|
||||
webGLThreadsSupport: 0
|
||||
webGLDecompressionFallback: 0
|
||||
webGLInitialMemorySize: 32
|
||||
webGLMaximumMemorySize: 2048
|
||||
webGLMemoryGrowthMode: 2
|
||||
webGLMemoryLinearGrowthStep: 16
|
||||
webGLMemoryGeometricGrowthStep: 0.2
|
||||
webGLMemoryGeometricGrowthCap: 96
|
||||
webGLPowerPreference: 2
|
||||
webGLWebAssemblyTable: 0
|
||||
webGLWebAssemblyBigInt: 0
|
||||
webGLCloseOnQuit: 0
|
||||
webWasm2023: 0
|
||||
webEnableSubmoduleStrippingCompatibility: 0
|
||||
scriptingDefineSymbols: {}
|
||||
additionalCompilerArguments: {}
|
||||
platformArchitecture: {}
|
||||
scriptingBackend: {}
|
||||
il2cppCompilerConfiguration: {}
|
||||
il2cppCodeGeneration: {}
|
||||
il2cppStacktraceInformation: {}
|
||||
managedStrippingLevel: {}
|
||||
incrementalIl2cppBuild: {}
|
||||
suppressCommonWarnings: 1
|
||||
allowUnsafeCode: 0
|
||||
useDeterministicCompilation: 1
|
||||
additionalIl2CppArgs:
|
||||
scriptingRuntimeVersion: 1
|
||||
gcIncremental: 1
|
||||
gcWBarrierValidation: 0
|
||||
apiCompatibilityLevelPerPlatform: {}
|
||||
editorAssembliesCompatibilityLevel: 1
|
||||
m_RenderingPath: 1
|
||||
m_MobileRenderingPath: 1
|
||||
metroPackageName: luneraria-unity
|
||||
metroPackageVersion:
|
||||
metroCertificatePath:
|
||||
metroCertificatePassword:
|
||||
metroCertificateSubject:
|
||||
metroCertificateIssuer:
|
||||
metroCertificateNotAfter: 0000000000000000
|
||||
metroApplicationDescription: luneraria-unity
|
||||
wsaImages: {}
|
||||
metroTileShortName:
|
||||
metroTileShowName: 0
|
||||
metroMediumTileShowName: 0
|
||||
metroLargeTileShowName: 0
|
||||
metroWideTileShowName: 0
|
||||
metroSupportStreamingInstall: 0
|
||||
metroLastRequiredScene: 0
|
||||
metroDefaultTileSize: 1
|
||||
metroTileForegroundText: 2
|
||||
metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
|
||||
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
|
||||
metroSplashScreenUseBackgroundColor: 0
|
||||
syncCapabilities: 0
|
||||
platformCapabilities: {}
|
||||
metroTargetDeviceFamilies: {}
|
||||
metroFTAName:
|
||||
metroFTAFileTypes: []
|
||||
metroProtocolName:
|
||||
vcxProjDefaultLanguage:
|
||||
XboxOneProductId:
|
||||
XboxOneUpdateKey:
|
||||
XboxOneSandboxId:
|
||||
XboxOneContentId:
|
||||
XboxOneTitleId:
|
||||
XboxOneSCId:
|
||||
XboxOneGameOsOverridePath:
|
||||
XboxOnePackagingOverridePath:
|
||||
XboxOneAppManifestOverridePath:
|
||||
XboxOneVersion: 1.0.0.0
|
||||
XboxOnePackageEncryption: 0
|
||||
XboxOnePackageUpdateGranularity: 2
|
||||
XboxOneDescription:
|
||||
XboxOneLanguage:
|
||||
- enus
|
||||
XboxOneCapability: []
|
||||
XboxOneGameRating: {}
|
||||
XboxOneIsContentPackage: 0
|
||||
XboxOneEnhancedXboxCompatibilityMode: 0
|
||||
XboxOneEnableGPUVariability: 1
|
||||
XboxOneSockets: {}
|
||||
XboxOneSplashScreen: {fileID: 0}
|
||||
XboxOneAllowedProductIds: []
|
||||
XboxOnePersistentLocalStorageSize: 0
|
||||
XboxOneXTitleMemory: 8
|
||||
XboxOneOverrideIdentityName:
|
||||
XboxOneOverrideIdentityPublisher:
|
||||
vrEditorSettings: {}
|
||||
cloudServicesEnabled: {}
|
||||
luminIcon:
|
||||
m_Name:
|
||||
m_ModelFolderPath:
|
||||
m_PortalFolderPath:
|
||||
luminCert:
|
||||
m_CertPath:
|
||||
m_SignPackage: 1
|
||||
luminIsChannelApp: 0
|
||||
luminVersion:
|
||||
m_VersionCode: 1
|
||||
m_VersionName:
|
||||
hmiPlayerDataPath:
|
||||
hmiForceSRGBBlit: 0
|
||||
embeddedLinuxEnableGamepadInput: 0
|
||||
hmiCpuConfiguration:
|
||||
hmiLogStartupTiming: 0
|
||||
qnxGraphicConfPath:
|
||||
apiCompatibilityLevel: 6
|
||||
captureStartupLogs: {}
|
||||
activeInputHandler: 0
|
||||
windowsGamepadBackendHint: 0
|
||||
cloudProjectId:
|
||||
framebufferDepthMemorylessMode: 0
|
||||
qualitySettingsNames: []
|
||||
projectName:
|
||||
organizationId:
|
||||
cloudEnabled: 0
|
||||
legacyClampBlendShapeWeights: 0
|
||||
hmiLoadingImage: {fileID: 0}
|
||||
platformRequiresReadableAssets: 0
|
||||
virtualTexturingSupportEnabled: 0
|
||||
insecureHttpOption: 0
|
||||
androidVulkanDenyFilterList: []
|
||||
androidVulkanAllowFilterList: []
|
||||
androidVulkanDeviceFilterListAsset: {fileID: 0}
|
||||
d3d12DeviceFilterListAsset: {fileID: 0}
|
||||
allowedHttpConnections: 3
|
||||
2
ProjectSettings/ProjectVersion.txt
Normal file
2
ProjectSettings/ProjectVersion.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
m_EditorVersion: 6000.3.20f1
|
||||
m_EditorVersionWithRevision: 6000.3.20f1 (c9ba695d4f07)
|
||||
347
ProjectSettings/QualitySettings.asset
Normal file
347
ProjectSettings/QualitySettings.asset
Normal file
|
|
@ -0,0 +1,347 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!47 &1
|
||||
QualitySettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 5
|
||||
m_CurrentQuality: 5
|
||||
m_QualitySettings:
|
||||
- serializedVersion: 5
|
||||
name: Very Low
|
||||
pixelLightCount: 0
|
||||
shadows: 0
|
||||
shadowResolution: 0
|
||||
shadowProjection: 1
|
||||
shadowCascades: 1
|
||||
shadowDistance: 15
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
skinWeights: 1
|
||||
globalTextureMipmapLimit: 1
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 0
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
billboardsFaceCameraPosition: 0
|
||||
useLegacyDetailDistribution: 0
|
||||
adaptiveVsync: 0
|
||||
vSyncCount: 0
|
||||
realtimeGICPUUsage: 25
|
||||
adaptiveVsyncExtraA: 0
|
||||
adaptiveVsyncExtraB: 0
|
||||
lodBias: 0.3
|
||||
meshLodThreshold: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
streamingMipmapsRenderersPerFrame: 512
|
||||
streamingMipmapsMaxLevelReduction: 2
|
||||
streamingMipmapsMaxFileIORequests: 1024
|
||||
particleRaycastBudget: 4
|
||||
asyncUploadTimeSlice: 2
|
||||
asyncUploadBufferSize: 16
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 5
|
||||
name: Low
|
||||
pixelLightCount: 0
|
||||
shadows: 0
|
||||
shadowResolution: 0
|
||||
shadowProjection: 1
|
||||
shadowCascades: 1
|
||||
shadowDistance: 20
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
skinWeights: 2
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 0
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
billboardsFaceCameraPosition: 0
|
||||
useLegacyDetailDistribution: 0
|
||||
adaptiveVsync: 0
|
||||
vSyncCount: 0
|
||||
realtimeGICPUUsage: 25
|
||||
adaptiveVsyncExtraA: 0
|
||||
adaptiveVsyncExtraB: 0
|
||||
lodBias: 0.4
|
||||
meshLodThreshold: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
streamingMipmapsRenderersPerFrame: 512
|
||||
streamingMipmapsMaxLevelReduction: 2
|
||||
streamingMipmapsMaxFileIORequests: 1024
|
||||
particleRaycastBudget: 16
|
||||
asyncUploadTimeSlice: 2
|
||||
asyncUploadBufferSize: 16
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 5
|
||||
name: Medium
|
||||
pixelLightCount: 1
|
||||
shadows: 1
|
||||
shadowResolution: 0
|
||||
shadowProjection: 1
|
||||
shadowCascades: 1
|
||||
shadowDistance: 20
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
skinWeights: 2
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 1
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
billboardsFaceCameraPosition: 0
|
||||
useLegacyDetailDistribution: 0
|
||||
adaptiveVsync: 0
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 25
|
||||
adaptiveVsyncExtraA: 0
|
||||
adaptiveVsyncExtraB: 0
|
||||
lodBias: 0.7
|
||||
meshLodThreshold: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
streamingMipmapsRenderersPerFrame: 512
|
||||
streamingMipmapsMaxLevelReduction: 2
|
||||
streamingMipmapsMaxFileIORequests: 1024
|
||||
particleRaycastBudget: 64
|
||||
asyncUploadTimeSlice: 2
|
||||
asyncUploadBufferSize: 16
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 5
|
||||
name: High
|
||||
pixelLightCount: 2
|
||||
shadows: 2
|
||||
shadowResolution: 1
|
||||
shadowProjection: 1
|
||||
shadowCascades: 2
|
||||
shadowDistance: 40
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 2
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 1
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
billboardsFaceCameraPosition: 1
|
||||
useLegacyDetailDistribution: 0
|
||||
adaptiveVsync: 0
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 50
|
||||
adaptiveVsyncExtraA: 0
|
||||
adaptiveVsyncExtraB: 0
|
||||
lodBias: 1
|
||||
meshLodThreshold: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
streamingMipmapsRenderersPerFrame: 512
|
||||
streamingMipmapsMaxLevelReduction: 2
|
||||
streamingMipmapsMaxFileIORequests: 1024
|
||||
particleRaycastBudget: 256
|
||||
asyncUploadTimeSlice: 2
|
||||
asyncUploadBufferSize: 16
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 5
|
||||
name: Very High
|
||||
pixelLightCount: 3
|
||||
shadows: 2
|
||||
shadowResolution: 2
|
||||
shadowProjection: 1
|
||||
shadowCascades: 2
|
||||
shadowDistance: 70
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 4
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 2
|
||||
antiAliasing: 2
|
||||
softParticles: 1
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
billboardsFaceCameraPosition: 1
|
||||
useLegacyDetailDistribution: 0
|
||||
adaptiveVsync: 0
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 50
|
||||
adaptiveVsyncExtraA: 0
|
||||
adaptiveVsyncExtraB: 0
|
||||
lodBias: 1.5
|
||||
meshLodThreshold: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
streamingMipmapsRenderersPerFrame: 512
|
||||
streamingMipmapsMaxLevelReduction: 2
|
||||
streamingMipmapsMaxFileIORequests: 1024
|
||||
particleRaycastBudget: 1024
|
||||
asyncUploadTimeSlice: 2
|
||||
asyncUploadBufferSize: 16
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 5
|
||||
name: Ultra
|
||||
pixelLightCount: 4
|
||||
shadows: 2
|
||||
shadowResolution: 2
|
||||
shadowProjection: 1
|
||||
shadowCascades: 4
|
||||
shadowDistance: 150
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 255
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 2
|
||||
antiAliasing: 2
|
||||
softParticles: 1
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
billboardsFaceCameraPosition: 1
|
||||
useLegacyDetailDistribution: 0
|
||||
adaptiveVsync: 0
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 100
|
||||
adaptiveVsyncExtraA: 0
|
||||
adaptiveVsyncExtraB: 0
|
||||
lodBias: 2
|
||||
meshLodThreshold: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
streamingMipmapsRenderersPerFrame: 512
|
||||
streamingMipmapsMaxLevelReduction: 2
|
||||
streamingMipmapsMaxFileIORequests: 1024
|
||||
particleRaycastBudget: 4096
|
||||
asyncUploadTimeSlice: 2
|
||||
asyncUploadBufferSize: 16
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
m_TextureMipmapLimitGroupNames: []
|
||||
m_PerPlatformDefaultQuality:
|
||||
Android: 2
|
||||
EmbeddedLinux: 5
|
||||
GameCoreScarlett: 5
|
||||
GameCoreXboxOne: 5
|
||||
Kepler: 5
|
||||
LinuxHeadlessSimulation: 5
|
||||
Nintendo Switch: 5
|
||||
Nintendo Switch 2: 5
|
||||
PS4: 5
|
||||
PS5: 5
|
||||
QNX: 5
|
||||
Server: 5
|
||||
Standalone: 5
|
||||
VisionOS: 5
|
||||
WebGL: 3
|
||||
Windows Store Apps: 5
|
||||
XboxOne: 5
|
||||
iPhone: 2
|
||||
tvOS: 2
|
||||
19
ProjectSettings/ShaderGraphSettings.asset
Normal file
19
ProjectSettings/ShaderGraphSettings.asset
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &1
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 53
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ShaderGraph.Editor::UnityEditor.ShaderGraph.ShaderGraphProjectSettings
|
||||
shaderVariantLimit: 2048
|
||||
overrideShaderVariantLimit: 0
|
||||
customInterpolatorErrorThreshold: 32
|
||||
customInterpolatorWarningThreshold: 16
|
||||
customHeatmapValues: {fileID: 0}
|
||||
45
ProjectSettings/TagManager.asset
Normal file
45
ProjectSettings/TagManager.asset
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!78 &1
|
||||
TagManager:
|
||||
serializedVersion: 3
|
||||
tags: []
|
||||
layers:
|
||||
- Default
|
||||
- TransparentFX
|
||||
- Ignore Raycast
|
||||
-
|
||||
- Water
|
||||
- UI
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
m_SortingLayers:
|
||||
- name: Default
|
||||
uniqueID: 0
|
||||
locked: 0
|
||||
m_RenderingLayers:
|
||||
- Default
|
||||
14
ProjectSettings/TimeManager.asset
Normal file
14
ProjectSettings/TimeManager.asset
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!5 &1
|
||||
TimeManager:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
Fixed Timestep:
|
||||
m_Count: 2822399
|
||||
m_Rate:
|
||||
m_Denominator: 1
|
||||
m_Numerator: 141120000
|
||||
Maximum Allowed Timestep: 0.33333334
|
||||
m_TimeScale: 1
|
||||
Maximum Particle Timestep: 0.03
|
||||
40
ProjectSettings/UnityConnectSettings.asset
Normal file
40
ProjectSettings/UnityConnectSettings.asset
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!310 &1
|
||||
UnityConnectSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 1
|
||||
m_Enabled: 0
|
||||
m_TestMode: 0
|
||||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
||||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
||||
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
||||
m_DashboardUrl: https://dashboard.unity3d.com
|
||||
m_TestInitMode: 0
|
||||
InsightsSettings:
|
||||
m_EngineDiagnosticsEnabled: 0
|
||||
m_Enabled: 0
|
||||
CrashReportingSettings:
|
||||
serializedVersion: 2
|
||||
m_EventUrl: https://perf-events.cloud.unity3d.com
|
||||
m_EnableCloudDiagnosticsReporting: 0
|
||||
m_LogBufferSize: 10
|
||||
m_CaptureEditorExceptions: 1
|
||||
UnityPurchasingSettings:
|
||||
m_Enabled: 0
|
||||
m_TestMode: 0
|
||||
UnityAnalyticsSettings:
|
||||
m_Enabled: 0
|
||||
m_TestMode: 0
|
||||
m_InitializeOnStartup: 1
|
||||
m_PackageRequiringCoreStatsPresent: 0
|
||||
UnityAdsSettings:
|
||||
m_Enabled: 0
|
||||
m_InitializeOnStartup: 1
|
||||
m_TestMode: 0
|
||||
m_IosGameId:
|
||||
m_AndroidGameId:
|
||||
m_GameIds: {}
|
||||
m_GameId:
|
||||
PerformanceReportingSettings:
|
||||
m_Enabled: 0
|
||||
20
ProjectSettings/VFXManager.asset
Normal file
20
ProjectSettings/VFXManager.asset
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!937362698 &1
|
||||
VFXManager:
|
||||
m_ObjectHideFlags: 0
|
||||
m_IndirectShader: {fileID: 0}
|
||||
m_CopyBufferShader: {fileID: 0}
|
||||
m_PrefixSumShader: {fileID: 0}
|
||||
m_SortShader: {fileID: 0}
|
||||
m_StripUpdateShader: {fileID: 0}
|
||||
m_EmptyShader: {fileID: 0}
|
||||
m_RenderPipeSettingsPath:
|
||||
m_FixedTimeStep: 0.016666668
|
||||
m_MaxDeltaTime: 0.05
|
||||
m_MaxScrubTime: 30
|
||||
m_MaxCapacity: 100000000
|
||||
m_CompiledVersion: 0
|
||||
m_RuntimeVersion: 0
|
||||
m_RuntimeResources: {fileID: 0}
|
||||
m_BatchEmptyLifetime: 300
|
||||
7
ProjectSettings/VersionControlSettings.asset
Normal file
7
ProjectSettings/VersionControlSettings.asset
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!890905787 &1
|
||||
VersionControlSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Mode: Visible Meta Files
|
||||
m_TrackPackagesOutsideProject: 0
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<Project>
|
||||
<!-- Build output of the .NET harness stays in Temp/ (ignored by git and by Unity). -->
|
||||
<!-- Build output of the .NET harness stays in tools/out/ (ignored by git and outside Assets/).
|
||||
Not in Temp/: Unity deletes its Temp folder whenever the editor exits. -->
|
||||
<PropertyGroup>
|
||||
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)../../Temp/dotnet/obj/$(MSBuildProjectName)/</BaseIntermediateOutputPath>
|
||||
<BaseOutputPath>$(MSBuildThisFileDirectory)../../Temp/dotnet/bin/$(MSBuildProjectName)/</BaseOutputPath>
|
||||
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)../out/dotnet/obj/$(MSBuildProjectName)/</BaseIntermediateOutputPath>
|
||||
<BaseOutputPath>$(MSBuildThisFileDirectory)../out/dotnet/bin/$(MSBuildProjectName)/</BaseOutputPath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!-- Simulation cost of the C# core; shared CoreBenchmark, same fixture as tools/godot-golden/sim_bench.gd. -->
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
<Nullable>disable</Nullable>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../Luneraria.Core/Luneraria.Core.csproj" />
|
||||
<Compile Include="../../../Assets/Luneraria/Tests/Core/Diagnostics/CoreBenchmark.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -1,71 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using Luneraria.Core;
|
||||
using Luneraria.Core.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// Measures the C# rules: one combat step at representative maximum occupation (round 13,
|
||||
/// six armies at the supply cap, the same fixture as the Godot benchmark probe) and complete
|
||||
/// bot matches. Usage: dotnet run -c Release --project tools/dotnet/Luneraria.Core.Bench [out.json]
|
||||
/// Measures the C# rules outside Unity with the shared CoreBenchmark (the Unity editor runs the
|
||||
/// same code through CoreBatch.Benchmark). Usage:
|
||||
/// dotnet run -c Release --project tools/dotnet/Luneraria.Core.Bench [out.json]
|
||||
/// </summary>
|
||||
public static class Program
|
||||
{
|
||||
public static int Main(string[] args)
|
||||
{
|
||||
var probe = new LuneMatch();
|
||||
probe.Setup(new MatchOptions { Seed = 5, HumanSlot = -1 });
|
||||
probe.RoundNumber = 13;
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
{
|
||||
probe.Players[slot].Draft.Gold = 100000;
|
||||
LuneBot.Plan(probe, slot, "ausgewogen");
|
||||
}
|
||||
probe.BeginCombat();
|
||||
int units = probe.Combat.MobileCount();
|
||||
for (int i = 0; i < 50; i++)
|
||||
probe.StepCombat();
|
||||
var samples = new List<double>();
|
||||
for (int block = 0; block < 5; block++)
|
||||
{
|
||||
var fresh = new LuneMatch();
|
||||
fresh.Setup(new MatchOptions { Seed = 5, HumanSlot = -1 });
|
||||
fresh.RoundNumber = 13;
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
{
|
||||
fresh.Players[slot].Draft.Gold = 100000;
|
||||
LuneBot.Plan(fresh, slot, "ausgewogen");
|
||||
}
|
||||
fresh.BeginCombat();
|
||||
var clock = Stopwatch.StartNew();
|
||||
for (int i = 0; i < 200; i++)
|
||||
fresh.StepCombat();
|
||||
clock.Stop();
|
||||
samples.Add(clock.Elapsed.TotalMilliseconds / 200.0);
|
||||
}
|
||||
samples.Sort();
|
||||
double stepMs = samples[samples.Count / 2];
|
||||
var matchClock = Stopwatch.StartNew();
|
||||
int rounds = 0;
|
||||
foreach (int seed in new[] { 1, 2, 3 })
|
||||
{
|
||||
var match = new LuneMatch();
|
||||
match.Setup(new MatchOptions { Seed = seed, HumanSlot = -1 });
|
||||
while (match.Phase != Phase.Over && match.RoundNumber <= 60)
|
||||
{
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
LuneBot.Plan(match, slot);
|
||||
match.BeginCombat();
|
||||
match.FinishCombat();
|
||||
rounds++;
|
||||
}
|
||||
}
|
||||
matchClock.Stop();
|
||||
string json = string.Format(System.Globalization.CultureInfo.InvariantCulture,
|
||||
"{{\n \"runtime\": \"{0}\",\n \"cpu\": \"{1}\",\n \"mobile_units_at_start\": {2},\n \"sim_step_ms_median\": {3:0.0000},\n \"step_blocks_ms\": [{4}],\n \"bot_matches_seeds_1_2_3_ms\": {5:0.0},\n \"bot_match_rounds\": {6},\n \"ms_per_round\": {7:0.00}\n}}\n",
|
||||
System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription, System.Runtime.InteropServices.RuntimeInformation.OSArchitecture,
|
||||
units, stepMs, string.Join(", ", samples.ConvertAll(s => s.ToString("0.0000", System.Globalization.CultureInfo.InvariantCulture))),
|
||||
matchClock.Elapsed.TotalMilliseconds, rounds, matchClock.Elapsed.TotalMilliseconds / rounds);
|
||||
string runtime = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
|
||||
string json = CoreBenchmark.Run(runtime, runtime + ", Release build");
|
||||
Console.Write(json);
|
||||
if (args.Length > 0)
|
||||
File.WriteAllText(args[0], json);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!-- Runs the core test suites of Assets/Luneraria/Tests/Core outside Unity (no NuGet packages).
|
||||
The Unity adapter in Tests/Core/Unity runs the same suites in the Unity Test Runner. -->
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
<Nullable>disable</Nullable>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
<RootNamespace>Luneraria.Core.Tests</RootNamespace>
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../Luneraria.Core/Luneraria.Core.csproj" />
|
||||
<Compile Include="../../../Assets/Luneraria/Tests/Core/*.cs" />
|
||||
<Compile Include="../../../Assets/Luneraria/Tests/Core/Diagnostics/*.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="ReplayImage.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -2,13 +2,13 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Console runner: dotnet run --project tools/dotnet/Luneraria.Core.Tests -- [suite ...]
|
||||
/// Writes docs/port/logs/u1/core-tests.json and exits non-zero on any failure.
|
||||
/// Writes the JSON protocol to $LUNE_TEST_REPORT (if set) and exits non-zero on any failure.
|
||||
/// Diagnostics: --float-probe out.json, --trace-mirror out.txt, --image scenario label out.png.
|
||||
/// </summary>
|
||||
public static class Program
|
||||
{
|
||||
|
|
@ -18,10 +18,22 @@ namespace Luneraria.Core.Tests
|
|||
string golden = Path.Combine(root, "Assets/Luneraria/Tests/Core/Golden");
|
||||
if (args.Length == 4 && args[0] == "--image")
|
||||
return ReplayImage.Write(golden, args[1], args[2], Path.GetFullPath(args[3]));
|
||||
if (args.Length == 2 && args[0] == "--trace-mirror")
|
||||
{
|
||||
// Scenario mirror_match of Golden/scenarios.json, round 7 (docs/port/U1.5-UNITY.md).
|
||||
DivergenceTrace.Write(Path.GetFullPath(args[1]), 3, new[] { "glutpakt", "glutpakt", "glutpakt", "glutpakt", "glutpakt", "glutpakt" }, "verteidigung", 7);
|
||||
return 0;
|
||||
}
|
||||
if (args.Length == 2 && args[0] == "--float-probe")
|
||||
{
|
||||
string probeRuntime = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
|
||||
string json = FloatProbe.Run(golden).ToJson(probeRuntime, probeRuntime + ", Release");
|
||||
File.WriteAllText(Path.GetFullPath(args[1]), json);
|
||||
Console.Write(json);
|
||||
return 0;
|
||||
}
|
||||
var wanted = new HashSet<string>(args);
|
||||
var report = new StringBuilder("{\n \"suites\": [\n");
|
||||
int failures = 0;
|
||||
bool first = true;
|
||||
var report = new SuiteReport();
|
||||
foreach (CheckSuite suite in CheckSuite.All())
|
||||
{
|
||||
if (wanted.Count > 0 && !wanted.Contains(suite.Name))
|
||||
|
|
@ -30,35 +42,18 @@ namespace Luneraria.Core.Tests
|
|||
var clock = Stopwatch.StartNew();
|
||||
bool ok = suite.Run();
|
||||
clock.Stop();
|
||||
failures += suite.Failures.Count;
|
||||
report.Add(suite, clock.Elapsed.TotalSeconds);
|
||||
Console.WriteLine("LUNE_U1_{0} {1}: {2} checks; {3} failures ({4:0.0} s)", ok ? "PASS" : "FAIL", suite.Name, suite.Checks, suite.Failures.Count, clock.Elapsed.TotalSeconds);
|
||||
foreach (string failure in suite.Failures)
|
||||
Console.WriteLine(" FAIL " + failure);
|
||||
foreach (string note in suite.Notes)
|
||||
Console.WriteLine(" note " + note);
|
||||
report.Append(first ? "" : ",\n");
|
||||
first = false;
|
||||
report.AppendFormat(" {{\"suite\": \"{0}\", \"checks\": {1}, \"failures\": {2}, \"seconds\": {3:0.00}, \"failed\": [{4}], \"notes\": [{5}]}}",
|
||||
suite.Name, suite.Checks, suite.Failures.Count, clock.Elapsed.TotalSeconds, Join(suite.Failures), Join(suite.Notes));
|
||||
}
|
||||
report.Append("\n ],\n \"runtime\": \"" + System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription + "\",\n");
|
||||
report.Append(" \"os\": \"" + System.Runtime.InteropServices.RuntimeInformation.OSDescription + " " + System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture + "\"\n}\n");
|
||||
if (wanted.Count == 0)
|
||||
{
|
||||
string logs = Path.Combine(root, "docs/port/logs/u1");
|
||||
Directory.CreateDirectory(logs);
|
||||
File.WriteAllText(Path.Combine(logs, "core-tests.json"), report.ToString());
|
||||
}
|
||||
Console.WriteLine(failures == 0 ? "LUNE_U1_TESTS_OK" : "LUNE_U1_TESTS_FAILED");
|
||||
return failures == 0 ? 0 : 1;
|
||||
}
|
||||
|
||||
static string Join(List<string> values)
|
||||
{
|
||||
var parts = new List<string>();
|
||||
foreach (string value in values)
|
||||
parts.Add("\"" + value.Replace("\\", "\\\\").Replace("\"", "\\\"").Replace("\n", "\\n") + "\"");
|
||||
return string.Join(", ", parts);
|
||||
string runtime = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
|
||||
if (SuiteReport.TargetPath != null)
|
||||
report.WriteTo(SuiteReport.TargetPath, runtime, runtime + ", Release");
|
||||
Console.WriteLine(report.Failures == 0 ? "LUNE_U1_TESTS_OK" : "LUNE_U1_TESTS_FAILED");
|
||||
return report.Failures == 0 ? 0 : 1;
|
||||
}
|
||||
|
||||
static string FindRoot()
|
||||
|
|
|
|||
16
tools/dotnet/Luneraria.Core/Luneraria.Core.csproj
Normal file
16
tools/dotnet/Luneraria.Core/Luneraria.Core.csproj
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!-- Builds the engine-independent rules outside Unity with Unity's language and API level
|
||||
(C# 9, .NET Standard 2.1). The sources live in Assets/Luneraria/Core. -->
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
<Nullable>disable</Nullable>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<AssemblyName>Luneraria.Core</AssemblyName>
|
||||
<RootNamespace>Luneraria.Core</RootNamespace>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="../../../Assets/Luneraria/Core/**/*.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
77
tools/port/trace_diff.py
Normal file
77
tools/port/trace_diff.py
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Compares two step traces of DivergenceTrace (docs/port/U1.5-UNITY.md).
|
||||
|
||||
Reports the first step where raw bits differ (positions, hit points) and the first step
|
||||
where a decision differs (alive, target, hits, zone, combat end), with the units involved.
|
||||
Usage: python3 tools/port/trace_diff.py <reference trace> <other trace>
|
||||
"""
|
||||
import struct
|
||||
import sys
|
||||
|
||||
|
||||
def load(path):
|
||||
steps = []
|
||||
current = None
|
||||
for line in open(path, encoding="utf-8"):
|
||||
line = line.rstrip("\n")
|
||||
if line.startswith("step "):
|
||||
parts = line.split()
|
||||
current = {"step": int(parts[1]), "t": float(parts[3]), "finished": parts[5], "units": {}}
|
||||
steps.append(current)
|
||||
elif line.startswith(" u ") and current is not None:
|
||||
discrete, bits = line[4:].split(" | ")
|
||||
fields = discrete.split()
|
||||
b = bits.split()
|
||||
current["units"][int(fields[0])] = {
|
||||
"discrete": " ".join(fields[1:]),
|
||||
"hp": int(b[1], 16),
|
||||
"x": int(b[3], 16),
|
||||
"y": int(b[4], 16),
|
||||
}
|
||||
return steps
|
||||
|
||||
|
||||
def f32(bits):
|
||||
return struct.unpack("<f", struct.pack("<i", bits if bits < 2**31 else bits - 2**32))[0]
|
||||
|
||||
|
||||
def f64(bits):
|
||||
return struct.unpack("<d", struct.pack("<Q", bits))[0]
|
||||
|
||||
|
||||
def main():
|
||||
ref, other = load(sys.argv[1]), load(sys.argv[2])
|
||||
print(f"steps: reference {len(ref) - 1}, other {len(other) - 1}")
|
||||
first_bits = first_decision = None
|
||||
worst_pos = 0.0
|
||||
worst_hp = 0.0
|
||||
for a, b in zip(ref, other):
|
||||
for uid in sorted(set(a["units"]) | set(b["units"])):
|
||||
ua, ub = a["units"].get(uid), b["units"].get(uid)
|
||||
if ua is None or ub is None:
|
||||
if first_decision is None:
|
||||
first_decision = (a["step"], uid, ua and ua["discrete"], ub and ub["discrete"])
|
||||
continue
|
||||
if (ua["x"], ua["y"], ua["hp"]) != (ub["x"], ub["y"], ub["hp"]):
|
||||
if first_bits is None:
|
||||
first_bits = (a["step"], uid)
|
||||
if first_decision is None:
|
||||
worst_pos = max(worst_pos, abs(f32(ua["x"]) - f32(ub["x"])), abs(f32(ua["y"]) - f32(ub["y"])))
|
||||
worst_hp = max(worst_hp, abs(f64(ua["hp"]) - f64(ub["hp"])))
|
||||
if ua["discrete"] != ub["discrete"] and first_decision is None:
|
||||
first_decision = (a["step"], uid, ua["discrete"], ub["discrete"])
|
||||
if a["finished"] != b["finished"] and first_decision is None:
|
||||
first_decision = (a["step"], "combat end", a["finished"], b["finished"])
|
||||
print("first bit difference: step %s unit %s" % first_bits if first_bits else "no bit difference")
|
||||
if first_decision:
|
||||
step, uid, da, db = first_decision
|
||||
print(f"first decision difference: step {step} (t = {step * 0.05:.2f} s) unit {uid}")
|
||||
print(f" reference: {da}")
|
||||
print(f" other: {db}")
|
||||
print(f"largest deviation before it: position {worst_pos:.3e} m, hp {worst_hp:.3e}")
|
||||
else:
|
||||
print("no decision difference")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
# U1 core tests outside Unity: builds the rules (netstandard2.1, C# 9 = Unity's level) and runs
|
||||
# every suite with the .NET SDK. Writes docs/port/logs/u1/core-tests.json.
|
||||
# Core tests outside Unity: builds the rules (netstandard2.1, C# 9 = Unity's level) and runs
|
||||
# every suite with the .NET SDK. The JSON protocol goes to $LUNE_TEST_REPORT
|
||||
# (default tools/out/core-tests-dotnet.json; milestone logs live in docs/port/logs/<milestone>/).
|
||||
# Optional: REGENERATE_GOLDEN=1 re-creates the Godot references first (needs ../saumwacht-godot).
|
||||
set -eu
|
||||
cd "$(dirname "$0")/.."
|
||||
|
|
@ -10,4 +11,5 @@ if [ "${REGENERATE_GOLDEN:-0}" = "1" ]; then
|
|||
fi
|
||||
dotnet build tools/dotnet/Luneraria.Core/Luneraria.Core.csproj -c Release -nologo -v q
|
||||
dotnet build tools/dotnet/Luneraria.Core.Tests/Luneraria.Core.Tests.csproj -c Release -nologo -v q
|
||||
dotnet Temp/dotnet/bin/Luneraria.Core.Tests/Release/net8.0/Luneraria.Core.Tests.dll "$@"
|
||||
LUNE_TEST_REPORT="${LUNE_TEST_REPORT:-$PWD/tools/out/core-tests-dotnet.json}" \
|
||||
dotnet tools/out/dotnet/bin/Luneraria.Core.Tests/Release/net8.0/Luneraria.Core.Tests.dll "$@"
|
||||
|
|
|
|||
Loading…
Reference in a new issue