diff --git a/.gitattributes b/.gitattributes
index e5c5394e6..d530ed421 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -54,6 +54,9 @@
*.sbsar filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
GameData/*.cc filter=lfs diff=lfs merge=lfs -text
+GameData/Mods/**/*.cc filter=lfs diff=lfs merge=lfs -text
+GameData/Mods/**/*.glb filter=lfs diff=lfs merge=lfs -text
+tools/blender/tests/fixtures/*.glb filter=lfs diff=lfs merge=lfs -text
*.a filter=lfs diff=lfs merge=lfs -text
*AkSoundEngine filter=lfs diff=lfs merge=lfs -text
*AkWaapiClient filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
index 2cbd223f9..811814afa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,6 +66,7 @@ GameData/*.lock
/Aetheria.Shared/obj/
/tools/**/bin/
/tools/**/obj/
+/ModTools/
/tests/**/bin/
/tests/**/obj/
diff --git a/Aetheria.Shared/Aetheria.Shared.csproj b/Aetheria.Shared/Aetheria.Shared.csproj
index 43d1c257d..a8a4c97bc 100644
--- a/Aetheria.Shared/Aetheria.Shared.csproj
+++ b/Aetheria.Shared/Aetheria.Shared.csproj
@@ -23,6 +23,10 @@
+
+
+
+
diff --git a/Asset Sources/PBR Materials.blend b/Asset Sources/PBR Materials.blend
new file mode 100644
index 000000000..cbe7a475b
--- /dev/null
+++ b/Asset Sources/PBR Materials.blend
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7c88c4c5380c3553182a545e04ffcc0776a54f7cbde4fa80de95f5e569b931de
+size 359499
diff --git a/Asset Sources/blender_assets.cats.txt b/Asset Sources/blender_assets.cats.txt
new file mode 100644
index 000000000..7fc29fe08
--- /dev/null
+++ b/Asset Sources/blender_assets.cats.txt
@@ -0,0 +1,10 @@
+# This is an Asset Catalog Definition file for Blender.
+#
+# Empty lines and lines starting with `#` will be ignored.
+# The first non-ignored line should be the version indicator.
+# Other lines are of the format "UUID:catalog/path/for/assets:simple catalog name"
+
+VERSION 1
+
+2c70f9d2-3a69-4004-8f42-4712b3e6c439:Aetheria:Aetheria
+a71be0dc-105e-4c66-8ff3-acb25522e9cd:Aetheria/PBR:Aetheria-PBR
diff --git a/Assets/Content/Prefabs/Mine.prefab b/Assets/Content/Prefabs/Mine.prefab
new file mode 100644
index 000000000..912986ee7
--- /dev/null
+++ b/Assets/Content/Prefabs/Mine.prefab
@@ -0,0 +1,150 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3437702659452284539
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3879893384158149147}
+ - component: {fileID: 8643339631069775210}
+ - component: {fileID: 7703217095432408775}
+ - component: {fileID: 7283754118921506074}
+ m_Layer: 0
+ m_Name: Mine
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3879893384158149147
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3437702659452284539}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8643339631069775210
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3437702659452284539}
+ m_Mesh: {fileID: -5495902117074765545, guid: dab8e1a18a1b825458e8e6356cf00cd2, type: 3}
+--- !u!23 &7703217095432408775
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3437702659452284539}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 38f8ba6b169127249b6532be2b3926ee, type: 2}
+ - {fileID: 2100000, guid: 71e1f3613633dfa488fff097aaf97660, type: 2}
+ - {fileID: 2100000, guid: e879c37f3520bf14a8a6075581faf7b2, type: 2}
+ - {fileID: 2100000, guid: 33a2546b27ff92d4fb43d5a76a9693c0, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &7283754118921506074
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3437702659452284539}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 35c62f5e26769f645b1a1614a70422e1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::MineInstance
+ MeshRenderer: {fileID: 7703217095432408775}
+ EmissionSubmesh: 2
+ EmissionCurve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: 0.051179443
+ outSlope: 0.051179443
+ tangentMode: 0
+ weightedMode: 3
+ inWeight: 0
+ outWeight: 0.24423963
+ - serializedVersion: 3
+ time: 0.5
+ value: 0.1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 3
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 1
+ value: 1
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 0
+ weightedMode: 3
+ inWeight: 0.22580647
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ ActiveCycleDuration: 1
+ ArmedCycleDuration: 0.25
+ ActiveEmission: 100
+ ArmedEmission: 1000
+ RotationSpeed: 1
+ HitEffect: {fileID: 1121192042590650, guid: e1b08032bec16ba4eb1ae23cbd572664, type: 3}
+ HitEffectScale: 10
diff --git a/Assets/Content/Prefabs/Thrusters/Aether Drive.prefab.meta b/Assets/Content/Prefabs/Mine.prefab.meta
similarity index 74%
rename from Assets/Content/Prefabs/Thrusters/Aether Drive.prefab.meta
rename to Assets/Content/Prefabs/Mine.prefab.meta
index e33810938..01e11b0eb 100644
--- a/Assets/Content/Prefabs/Thrusters/Aether Drive.prefab.meta
+++ b/Assets/Content/Prefabs/Mine.prefab.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 151cf0ff54a22274caf671ece149fa6e
+guid: b04728b2b65e057429eb6e8529299c8a
PrefabImporter:
externalObjects: {}
userData:
diff --git a/Assets/Content/Prefabs/Stations/PlanetOutpost.prefab b/Assets/Content/Prefabs/Stations/PlanetOutpost.prefab
index 6ce31f34f..e3d20ceb7 100644
--- a/Assets/Content/Prefabs/Stations/PlanetOutpost.prefab
+++ b/Assets/Content/Prefabs/Stations/PlanetOutpost.prefab
@@ -81,87 +81,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!1 &7783244517717541194
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 7783244517717541195}
- - component: {fileID: 7783244517717541175}
- - component: {fileID: 7783244517717541174}
- m_Layer: 9
- m_Name: Gravity Well
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &7783244517717541195
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7783244517717541194}
- m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 7783244518521719148}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &7783244517717541175
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7783244517717541194}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &7783244517717541174
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7783244517717541194}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 44a8bbb89acb4e34c9f41a9da5842bb4, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &7783244518317531027
GameObject:
m_ObjectHideFlags: 0
@@ -289,7 +208,6 @@ Transform:
m_Children:
- {fileID: 589192530128514016}
- {fileID: 7783244518317531036}
- - {fileID: 7783244517717541195}
- {fileID: 7783244516809707565}
m_Father: {fileID: 0}
m_RootOrder: 0
@@ -307,7 +225,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Body: {fileID: 7783244518317531038}
- GravityWell: {fileID: 7783244517717541174}
Icon: {fileID: 7783244516809707566}
Generator: {fileID: 741236912059895623}
--- !u!114 &741236912059895623
diff --git a/Assets/Content/Prefabs/Thrusters/Aether Drive.prefab b/Assets/Content/Prefabs/Thrusters/Aether Drive.prefab
deleted file mode 100644
index 4a566b534..000000000
--- a/Assets/Content/Prefabs/Thrusters/Aether Drive.prefab
+++ /dev/null
@@ -1,4819 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &3270076511764283730
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 5152310125488819541}
- - component: {fileID: 8928170315538518364}
- - component: {fileID: 8974554360790158463}
- m_Layer: 0
- m_Name: Aether Drive
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &5152310125488819541
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3270076511764283730}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!198 &8928170315538518364
-ParticleSystem:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3270076511764283730}
- serializedVersion: 7
- lengthInSec: 5
- simulationSpeed: 2
- stopAction: 0
- cullingMode: 0
- ringBufferMode: 0
- ringBufferLoopRange: {x: 0, y: 1}
- looping: 1
- prewarm: 0
- playOnAwake: 1
- useUnscaledTime: 0
- autoRandomSeed: 1
- useRigidbodyForVelocity: 0
- startDelay:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- moveWithTransform: 2
- moveWithCustomTransform: {fileID: 0}
- scalingMode: 2
- randomSeed: 0
- InitialModule:
- serializedVersion: 3
- enabled: 1
- startLifetime:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0.5
- minScalar: 5
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startSpeed:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 5
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startColor:
- serializedVersion: 2
- minMaxState: 0
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- startSize:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0.25
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startSizeY:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startSizeZ:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startRotationX:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startRotationY:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startRotation:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- randomizeRotationDirection: 0
- maxNumParticles: 1000
- size3D: 0
- rotation3D: 0
- gravityModifier:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- ShapeModule:
- serializedVersion: 6
- enabled: 1
- type: 0
- angle: 25
- length: 5
- boxThickness: {x: 0, y: 0, z: 0}
- radiusThickness: 1
- donutRadius: 0.2
- m_Position: {x: 0, y: 0, z: 0}
- m_Rotation: {x: 0, y: 0, z: 0}
- m_Scale: {x: 1, y: 1, z: 1}
- placementMode: 2
- m_MeshMaterialIndex: 0
- m_MeshNormalOffset: 0
- m_MeshSpawn:
- mode: 0
- spread: 0
- speed:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- m_Mesh: {fileID: 0}
- m_MeshRenderer: {fileID: 0}
- m_SkinnedMeshRenderer: {fileID: 0}
- m_Sprite: {fileID: 0}
- m_SpriteRenderer: {fileID: 0}
- m_UseMeshMaterialIndex: 0
- m_UseMeshColors: 0
- alignToDirection: 0
- m_Texture: {fileID: 0}
- m_TextureClipChannel: 3
- m_TextureClipThreshold: 0
- m_TextureUVChannel: 0
- m_TextureColorAffectsParticles: 1
- m_TextureAlphaAffectsParticles: 1
- m_TextureBilinearFiltering: 0
- randomDirectionAmount: 0
- sphericalDirectionAmount: 0
- randomPositionAmount: 0
- radius:
- value: 10
- mode: 0
- spread: 0
- speed:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- arc:
- value: 360
- mode: 0
- spread: 0
- speed:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- EmissionModule:
- enabled: 1
- serializedVersion: 4
- rateOverTime:
- serializedVersion: 2
- minMaxState: 0
- scalar: 75
- minScalar: 10
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- rateOverDistance:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- m_BurstCount: 0
- m_Bursts: []
- SizeModule:
- enabled: 1
- curve:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- z:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- separateAxes: 0
- RotationModule:
- enabled: 0
- x:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- curve:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0.7853982
- minScalar: 0.7853982
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- separateAxes: 0
- ColorModule:
- enabled: 1
- gradient:
- serializedVersion: 2
- minMaxState: 1
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 0, g: 0.54509807, b: 1, a: 1}
- key1: {r: 0.122641504, g: 0, b: 0.121027805, a: 0.45490196}
- key2: {r: 0.122641504, g: 0, b: 0.121027805, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 65535
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- UVModule:
- serializedVersion: 2
- enabled: 0
- mode: 0
- timeMode: 0
- fps: 30
- frameOverTime:
- serializedVersion: 2
- minMaxState: 1
- scalar: 0.9999
- minScalar: 0.9999
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- startFrame:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- speedRange: {x: 0, y: 1}
- tilesX: 1
- tilesY: 1
- animationType: 0
- rowIndex: 0
- cycles: 1
- uvChannelMask: -1
- rowMode: 1
- sprites:
- - sprite: {fileID: 0}
- flipU: 0
- flipV: 0
- VelocityModule:
- enabled: 0
- x:
- serializedVersion: 2
- minMaxState: 1
- scalar: 99.9
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- z:
- serializedVersion: 2
- minMaxState: 1
- scalar: 50
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 2
- outSlope: 2
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: -0.013513565
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- orbitalX:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- orbitalY:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- orbitalZ:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- orbitalOffsetX:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- orbitalOffsetY:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- orbitalOffsetZ:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- radial:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- speedModifier:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- inWorldSpace: 0
- InheritVelocityModule:
- enabled: 0
- m_Mode: 0
- m_Curve:
- serializedVersion: 2
- minMaxState: 0
- scalar: 2
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- LifetimeByEmitterSpeedModule:
- enabled: 0
- m_Curve:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: -0.8
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0.2
- inSlope: -0.8
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- m_Range: {x: 0, y: 1}
- ForceModule:
- enabled: 1
- x:
- serializedVersion: 2
- minMaxState: 1
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 3.072868
- outSlope: 3.072868
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.11519607
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 1
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 3.0251138
- outSlope: 3.0251138
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0.09068627
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.12531352
- outWeight: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- z:
- serializedVersion: 2
- minMaxState: 1
- scalar: 50
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 3.0335512
- outSlope: 3.0335512
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0.09354838
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- inWorldSpace: 1
- randomizePerFrame: 0
- ExternalForcesModule:
- serializedVersion: 2
- enabled: 0
- multiplierCurve:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- influenceFilter: 0
- influenceMask:
- serializedVersion: 2
- m_Bits: 4294967295
- influenceList: []
- ClampVelocityModule:
- enabled: 0
- x:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- z:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- magnitude:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- separateAxis: 0
- inWorldSpace: 0
- multiplyDragByParticleSize: 1
- multiplyDragByParticleVelocity: 1
- dampen: 0
- drag:
- serializedVersion: 2
- minMaxState: 0
- scalar: 33.08
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- NoiseModule:
- enabled: 1
- strength:
- serializedVersion: 2
- minMaxState: 0
- scalar: 25
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: -2
- outSlope: -2
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- strengthY:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- strengthZ:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- separateAxes: 0
- frequency: 0.1
- damping: 0
- octaves: 3
- octaveMultiplier: 0.5
- octaveScale: 2
- quality: 2
- scrollSpeed:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- remap:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 0
- outSlope: 2
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 2
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- remapY:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 0
- outSlope: 2
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 2
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- remapZ:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: -1
- inSlope: 0
- outSlope: 2
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 2
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- remapEnabled: 0
- positionAmount:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- rotationAmount:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- sizeAmount:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- SizeBySpeedModule:
- enabled: 0
- curve:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- z:
- serializedVersion: 2
- minMaxState: 1
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 1
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 1
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- range: {x: 0, y: 1}
- separateAxes: 0
- RotationBySpeedModule:
- enabled: 0
- x:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- y:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- curve:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0.7853982
- minScalar: 0.7853982
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- separateAxes: 0
- range: {x: 0, y: 1}
- ColorBySpeedModule:
- enabled: 0
- gradient:
- serializedVersion: 2
- minMaxState: 1
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- range: {x: 0, y: 1}
- CollisionModule:
- enabled: 0
- serializedVersion: 4
- type: 0
- collisionMode: 0
- colliderForce: 0
- multiplyColliderForceByParticleSize: 0
- multiplyColliderForceByParticleSpeed: 0
- multiplyColliderForceByCollisionAngle: 1
- m_Planes:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- m_Dampen:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- m_Bounce:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- m_EnergyLossOnCollision:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minKillSpeed: 0
- maxKillSpeed: 10000
- radiusScale: 1
- collidesWith:
- serializedVersion: 2
- m_Bits: 4294967295
- maxCollisionShapes: 256
- quality: 0
- voxelSize: 0.5
- collisionMessages: 0
- collidesWithDynamic: 1
- interiorCollisions: 0
- TriggerModule:
- enabled: 0
- serializedVersion: 2
- inside: 1
- outside: 0
- enter: 0
- exit: 0
- colliderQueryMode: 0
- radiusScale: 1
- primitives:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- SubModule:
- serializedVersion: 2
- enabled: 0
- subEmitters:
- - serializedVersion: 3
- emitter: {fileID: 0}
- type: 0
- properties: 0
- emitProbability: 1
- LightsModule:
- enabled: 0
- ratio: 0
- light: {fileID: 0}
- randomDistribution: 1
- color: 1
- range: 1
- intensity: 1
- rangeCurve:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- intensityCurve:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- maxLights: 20
- TrailModule:
- enabled: 1
- mode: 0
- ratio: 1
- lifetime:
- serializedVersion: 2
- minMaxState: 0
- scalar: 1
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minVertexDistance: 0.5
- textureMode: 0
- ribbonCount: 1
- shadowBias: 0.5
- worldSpace: 0
- dieWithParticles: 0
- sizeAffectsWidth: 0
- sizeAffectsLifetime: 0
- inheritParticleColor: 0
- generateLightingData: 0
- splitSubEmitterRibbons: 0
- attachRibbonsToTransform: 0
- colorOverLifetime:
- serializedVersion: 2
- minMaxState: 0
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- widthOverTrail:
- serializedVersion: 2
- minMaxState: 1
- scalar: 0.25
- minScalar: 1
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 6.705435
- outSlope: 6.705435
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0.034313723
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 1
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- colorOverTrail:
- serializedVersion: 2
- minMaxState: 1
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 0.2830189, g: 0, b: 0, a: 0}
- key1: {r: 0.12415449, g: 0.26510748, b: 0.8490566, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 129
- atime1: 31802
- atime2: 65535
- atime3: 65535
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 3
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- CustomDataModule:
- enabled: 1
- mode0: 1
- vectorComponentCount0: 2
- color0:
- serializedVersion: 2
- minMaxState: 0
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- colorLabel0: Color
- vector0_0:
- serializedVersion: 2
- minMaxState: 3
- scalar: 1
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel0_0: X
- vector0_1:
- serializedVersion: 2
- minMaxState: 3
- scalar: 1
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel0_1: Y
- vector0_2:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel0_2: Z
- vector0_3:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel0_3: W
- mode1: 0
- vectorComponentCount1: 4
- color1:
- serializedVersion: 2
- minMaxState: 0
- minColor: {r: 1, g: 1, b: 1, a: 1}
- maxColor: {r: 1, g: 1, b: 1, a: 1}
- maxGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- minGradient:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- colorLabel1: Color
- vector1_0:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel1_0: X
- vector1_1:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel1_1: Y
- vector1_2:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel1_2: Z
- vector1_3:
- serializedVersion: 2
- minMaxState: 0
- scalar: 0
- minScalar: 0
- maxCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- minCurve:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0.33333334
- outWeight: 0.33333334
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- vectorLabel1_3: W
---- !u!199 &8974554360790158463
-ParticleSystemRenderer:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3270076511764283730}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 0
- m_ReflectionProbeUsage: 0
- m_RayTracingMode: 0
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 6af0f423a2567be43b16d152d2b60e0c, type: 2}
- - {fileID: 2100000, guid: 555ada90c0f01654a9387483bd95a688, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_RenderMode: 5
- m_SortMode: 0
- m_MinParticleSize: 0
- m_MaxParticleSize: 0.5
- m_CameraVelocityScale: 0
- m_VelocityScale: 0
- m_LengthScale: 2
- m_SortingFudge: 0
- m_NormalDirection: 1
- m_ShadowBias: 0
- m_RenderAlignment: 0
- m_Pivot: {x: 0, y: 0, z: 0}
- m_Flip: {x: 0, y: 0, z: 0}
- m_UseCustomVertexStreams: 1
- m_EnableGPUInstancing: 1
- m_ApplyActiveColorSpace: 1
- m_AllowRoll: 1
- m_FreeformStretching: 0
- m_RotateWithStretchDirection: 1
- m_VertexStreams: 0001030420
- m_Mesh: {fileID: 0}
- m_Mesh1: {fileID: 0}
- m_Mesh2: {fileID: 0}
- m_Mesh3: {fileID: 0}
- m_MaskInteraction: 0
diff --git a/Assets/Content/Prefabs/Tractor Beam.prefab b/Assets/Content/Prefabs/Tractor Beam.prefab
index 9ce0d7760..c98d252a3 100644
--- a/Assets/Content/Prefabs/Tractor Beam.prefab
+++ b/Assets/Content/Prefabs/Tractor Beam.prefab
@@ -4818,6 +4818,3 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
ParticleSystem: {fileID: 5087162364086924483}
- Radius: 25
- Traction: 25
- Distance: 75
diff --git a/Assets/Editor/AetheriaBuild.cs b/Assets/Editor/AetheriaBuild.cs
new file mode 100644
index 000000000..7d3c891d2
--- /dev/null
+++ b/Assets/Editor/AetheriaBuild.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+using UnityEditor;
+using UnityEditor.AddressableAssets.Settings;
+using UnityEditor.Build.Reporting;
+using Debug = UnityEngine.Debug;
+
+// The one way to make a Win64 player directory. Owns what the directory contains: Aetheria.exe and its data,
+// GameData/Aetheria.cc, GameData/Narrative/**, GameData/Mods/** and ModTools/AetherDb. Manual builds, smokes and
+// release cuts all call this and stage nothing themselves.
+//
+// Unity -batchmode -quit -projectPath -executeMethod AetheriaBuild.Build
+// -aetheriaVersion -aetheriaOut -logFile
+//
+// AetherDb is published from tools/AetherDb, so the headless build's CULTLIB_ROOT / CULTMATH_ROOT (Directory.Build.props)
+// must be set for dotnet when the defaults do not hold the pinned revisions.
+// Any failure logs "AetheriaBuild FAILED at " and exits 1.
+public static class AetheriaBuild
+{
+ private static readonly Regex SemVer = new Regex(@"^\d+\.\d+\.\d+([-+][0-9A-Za-z.-]+)?$");
+
+ public static void Build()
+ {
+ var step = "arguments";
+ try
+ {
+ var version = Argument("-aetheriaVersion");
+ if (!SemVer.IsMatch(version)) throw new InvalidOperationException("-aetheriaVersion is not a semver");
+ var output = Path.GetFullPath(Argument("-aetheriaOut"));
+ var repoRoot = Directory.GetParent(UnityEngine.Application.dataPath).FullName;
+
+ step = "version";
+ UnityEditor.PlayerSettings.bundleVersion = version; // the game has its own global PlayerSettings
+
+ step = "addressables";
+ AddressableAssetSettings.BuildPlayerContent(out var content);
+ if (!string.IsNullOrEmpty(content.Error)) throw new InvalidOperationException("Addressables build reported an error: " + content.Error);
+
+ step = "player";
+ Directory.CreateDirectory(output);
+ var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(scene => scene.path).ToArray();
+ if (scenes.Length == 0) throw new InvalidOperationException("EditorBuildSettings has no enabled scene");
+ var report = BuildPipeline.BuildPlayer(new BuildPlayerOptions
+ {
+ scenes = scenes,
+ locationPathName = Path.Combine(output, "Aetheria.exe"),
+ target = BuildTarget.StandaloneWindows64,
+ options = BuildOptions.None,
+ });
+ if (report.summary.result != BuildResult.Succeeded || report.summary.totalErrors != 0)
+ throw new InvalidOperationException($"BuildPlayer ended {report.summary.result} with {report.summary.totalErrors} errors");
+
+ step = "gamedata";
+ PlayerStaging.Stage(repoRoot, output);
+
+ step = "aetherdb";
+ Publish(repoRoot, Path.Combine(output, "ModTools"));
+
+ step = "burst";
+ var burst = Path.Combine(output, "Aetheria_BurstDebugInformation_DoNotShip");
+ if (Directory.Exists(burst)) Directory.Delete(burst, true);
+
+ Debug.Log($"AetheriaBuild OK {version} {output}");
+ }
+ catch (Exception error)
+ {
+ Debug.LogError($"AetheriaBuild FAILED at {step}: {error.GetType().Name}: {error.Message}");
+ EditorApplication.Exit(1);
+ return;
+ }
+ EditorApplication.Exit(0);
+ }
+
+ private static void Publish(string repoRoot, string modTools)
+ {
+ var info = new ProcessStartInfo("dotnet")
+ {
+ Arguments = $"publish tools/AetherDb -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o \"{modTools}\"",
+ WorkingDirectory = repoRoot,
+ UseShellExecute = false,
+ RedirectStandardOutput = true,
+ RedirectStandardError = true,
+ };
+ using (var process = Process.Start(info))
+ {
+ var errors = process.StandardError.ReadToEndAsync();
+ var text = process.StandardOutput.ReadToEnd();
+ process.WaitForExit();
+ if (process.ExitCode != 0)
+ throw new InvalidOperationException($"dotnet publish exited {process.ExitCode}:\n{text}\n{errors.Result}");
+ }
+ if (!File.Exists(Path.Combine(modTools, "AetherDb.exe")))
+ throw new InvalidOperationException("dotnet publish produced no ModTools/AetherDb.exe");
+ }
+
+ private static string Argument(string name)
+ {
+ var args = Environment.GetCommandLineArgs();
+ var at = Array.IndexOf(args, name);
+ if (at < 0 || at + 1 >= args.Length) throw new InvalidOperationException(name + " is required");
+ return args[at + 1];
+ }
+}
diff --git a/Assets/Editor/AetheriaBuild.cs.meta b/Assets/Editor/AetheriaBuild.cs.meta
new file mode 100644
index 000000000..833ad46ac
--- /dev/null
+++ b/Assets/Editor/AetheriaBuild.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: d38caad223051494ba36c734ce79950d
\ No newline at end of file
diff --git a/Assets/Editor/PlayerStaging.cs b/Assets/Editor/PlayerStaging.cs
new file mode 100644
index 000000000..6f48daaa0
--- /dev/null
+++ b/Assets/Editor/PlayerStaging.cs
@@ -0,0 +1,41 @@
+using System;
+using System.IO;
+
+// What a player directory holds beside the executable's data: GameData/Aetheria.cc, GameData/Narrative/** and, when
+// the repo has one, GameData/Mods/**. Nothing else under GameData ships (run.cc and player.cc are the player's own).
+// Unity-free so the headless suite can prove the rules; AetheriaBuild is the only caller.
+internal static class PlayerStaging
+{
+ public const string Catalog = "Aetheria.cc";
+ public const string Narrative = "Narrative";
+ public const string Mods = "Mods";
+
+ // Replaces /GameData with a copy of the three shipped entries of /GameData.
+ // Throws InvalidOperationException naming the entry when the catalog or Narrative is absent.
+ public static void Stage(string repoRoot, string playerDir)
+ {
+ var source = Path.Combine(repoRoot, "GameData");
+ var destination = Path.Combine(playerDir, "GameData");
+ var catalog = Path.Combine(source, Catalog);
+ var narrative = Path.Combine(source, Narrative);
+ var mods = Path.Combine(source, Mods);
+
+ if (!File.Exists(catalog)) throw new InvalidOperationException($"GameData/{Catalog} is missing; a player never ships without its catalog.");
+ if (!Directory.Exists(narrative)) throw new InvalidOperationException($"GameData/{Narrative} is missing.");
+
+ if (Directory.Exists(destination)) Directory.Delete(destination, true);
+ Directory.CreateDirectory(destination);
+ File.Copy(catalog, Path.Combine(destination, Catalog));
+ CopyTree(narrative, Path.Combine(destination, Narrative));
+ if (Directory.Exists(mods)) CopyTree(mods, Path.Combine(destination, Mods));
+ }
+
+ private static void CopyTree(string from, string to)
+ {
+ Directory.CreateDirectory(to);
+ foreach (var directory in Directory.GetDirectories(from, "*", SearchOption.AllDirectories))
+ Directory.CreateDirectory(Path.Combine(to, directory.Substring(from.Length + 1)));
+ foreach (var file in Directory.GetFiles(from, "*", SearchOption.AllDirectories))
+ File.Copy(file, Path.Combine(to, file.Substring(from.Length + 1)));
+ }
+}
diff --git a/Assets/Editor/PlayerStaging.cs.meta b/Assets/Editor/PlayerStaging.cs.meta
new file mode 100644
index 000000000..71743d471
--- /dev/null
+++ b/Assets/Editor/PlayerStaging.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 16dce8087f9149b44b6e294cb0851dd8
\ No newline at end of file
diff --git a/Assets/TextMesh Pro/Sprites.meta b/Assets/Fonts/Emoji.meta
similarity index 77%
rename from Assets/TextMesh Pro/Sprites.meta
rename to Assets/Fonts/Emoji.meta
index 8b699e5fc..442fb19cd 100644
--- a/Assets/TextMesh Pro/Sprites.meta
+++ b/Assets/Fonts/Emoji.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d0603b6d5186471b96c778c3949c7ce2
+guid: 5e0ef88f85924e146855ca7bb57bbdb6
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/Fonts/Emoji/Emoji.asset b/Assets/Fonts/Emoji/Emoji.asset
new file mode 100644
index 000000000..b37478ebd
--- /dev/null
+++ b/Assets/Fonts/Emoji/Emoji.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0da0ff045c78def703de64f1c79a0f6c0842985e21c261b165ada948dc726b1e
+size 5791
diff --git a/Assets/Fonts/Emoji/Emoji.asset.meta b/Assets/Fonts/Emoji/Emoji.asset.meta
new file mode 100644
index 000000000..f89bc04be
--- /dev/null
+++ b/Assets/Fonts/Emoji/Emoji.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4cbb1005dc560d54ba85c3d091dbe30b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fonts/Emoji/LICENSE.txt b/Assets/Fonts/Emoji/LICENSE.txt
new file mode 100644
index 000000000..db961e007
--- /dev/null
+++ b/Assets/Fonts/Emoji/LICENSE.txt
@@ -0,0 +1,410 @@
+Twemoji v17.0.3: https://github.com/jdecked/twemoji/archive/refs/tags/v17.0.3.tar.gz
+Copyright (c) 2022–present Jason Sofonia & Justine De Caires
+Copyright (c) 2014–2021 Twitter
+Graphics licensed under CC-BY 4.0:
+
+Change notice (CC BY 4.0 section 3(a)(1)(B)): the SVG graphics are converted to a COLRv0 colour
+font (Twemoji.ttf) by tools/emoji/fetch_emoji_font.py using nanoemoji. No artwork is edited.
+
+Attribution Requirements (upstream README)
+
+As an open source project, attribution is critical from a legal, practical and motivational perspective in our opinion. The graphics are licensed under the CC-BY 4.0 which has a pretty good guide on [best practices for attribution](https://wiki.creativecommons.org/Best_practices_for_attribution).
+
+However, we consider the guide a bit onerous and as a project, will accept a mention in a project README or an 'About' section or footer on a website. In mobile applications, a common place would be in the Settings/About section (for example, see the mobile Twitter application Settings->About->Legal section). We would consider a mention in the HTML/JS source sufficient also.
+
+LICENSE-GRAPHICS (upstream, verbatim)
+=======================================================================
+
+Attribution 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More_considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution 4.0 International Public License ("Public License"). To the
+extent this Public License may be interpreted as a contract, You are
+granted the Licensed Rights in consideration of Your acceptance of
+these terms and conditions, and the Licensor grants You such rights in
+consideration of benefits the Licensor receives from making the
+Licensed Material available under these terms and conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ d. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ e. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ f. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ g. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ h. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ i. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ j. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ k. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ 4. If You Share Adapted Material You produce, the Adapter's
+ License You apply must not prevent recipients of the Adapted
+ Material from complying with this Public License.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material; and
+
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public licenses.
+Notwithstanding, Creative Commons may elect to apply one of its public
+licenses to material it publishes and in those instances will be
+considered the "Licensor." Except for the limited purpose of indicating
+that material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the public
+licenses.
+
+Creative Commons may be contacted at creativecommons.org.
diff --git a/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta b/Assets/Fonts/Emoji/LICENSE.txt.meta
similarity index 75%
rename from Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta
rename to Assets/Fonts/Emoji/LICENSE.txt.meta
index 0d30e6532..8dabd4444 100644
--- a/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta
+++ b/Assets/Fonts/Emoji/LICENSE.txt.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 381dcb09d5029d14897e55f98031fca5
+guid: db23d2e6bc295794888af02d32cbae60
TextScriptImporter:
externalObjects: {}
userData:
diff --git a/Assets/Fonts/Emoji/Twemoji.ttf b/Assets/Fonts/Emoji/Twemoji.ttf
new file mode 100644
index 000000000..60d816cf2
--- /dev/null
+++ b/Assets/Fonts/Emoji/Twemoji.ttf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:283b775ce3715a84065212985ebbdecb8fa0c457b7ccf2c9c15c99b5a83ef702
+size 1805956
diff --git a/Assets/Fonts/Emoji/Twemoji.ttf.meta b/Assets/Fonts/Emoji/Twemoji.ttf.meta
new file mode 100644
index 000000000..5cc7ab440
--- /dev/null
+++ b/Assets/Fonts/Emoji/Twemoji.ttf.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: bde541f3fd3b82b4aa6aa068e4a205a7
+TrueTypeFontImporter:
+ externalObjects: {}
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - Aetheria Emoji
+ fallbackFontReferences: []
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ useLegacyBoundsCalculation: 0
+ shouldRoundAdvanceValue: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Fonts/Emoji/emoji-font.lock b/Assets/Fonts/Emoji/emoji-font.lock
new file mode 100644
index 000000000..cc54beafa
--- /dev/null
+++ b/Assets/Fonts/Emoji/emoji-font.lock
@@ -0,0 +1,25 @@
+source_url=https://github.com/jdecked/twemoji/archive/refs/tags/v17.0.3.tar.gz
+source_version=v17.0.3
+source_sha256=a0855654b633045ae2337537e77f1bb4361162f7fcd910e613eaab1d6d9c5fca
+emoji_test_version=17.0
+emoji_test_url=https://unicode.org/Public/17.0.0/emoji/emoji-test.txt
+emoji_test_sha256=1d8a944f88d7952f7ef7c5167fef3c67995bcae24543949710231b03a201acda
+svg_count=4009
+single_codepoint_count=1400
+unsupported_count=0
+sequence_count=2760
+tool_nanoemoji=0.16.0
+tool_fonttools=4.66.1
+tool_picosvg=0.23.0
+tool_ninja=1.13.2
+source_date_epoch=1780352497
+color_format=glyf_colr_0
+python_version=3.13.15
+platform=linux
+container_image=python:3.13-slim
+fe0f_less_twins=15
+font_file=Twemoji.ttf
+font_sha256=283b775ce3715a84065212985ebbdecb8fa0c457b7ccf2c9c15c99b5a83ef702
+singles_sha256=7ad887a16ef5386df040e1e8988e9bdc55ae5cab461ffc9df4613d0cb5770b4e
+unsupported_sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
+sequences_sha256=18529154b14f75f54db5dedd72910de35af9ca05aef284b7d121be249b3c3bb2
diff --git a/Assets/Materials/Fog Marching.mat.meta b/Assets/Fonts/Emoji/emoji-font.lock.meta
similarity index 54%
rename from Assets/Materials/Fog Marching.mat.meta
rename to Assets/Fonts/Emoji/emoji-font.lock.meta
index 04c6076f8..d59e8a3eb 100644
--- a/Assets/Materials/Fog Marching.mat.meta
+++ b/Assets/Fonts/Emoji/emoji-font.lock.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
-guid: 2ff39f5d101241043ba1dcde19d92f77
-NativeFormatImporter:
+guid: 6290b5397f6ae1d47a19c6886ebd87e2
+DefaultImporter:
externalObjects: {}
- mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Materials/Brushes/Gravity Well.mat b/Assets/Materials/Brushes/Gravity Field.mat
similarity index 92%
rename from Assets/Materials/Brushes/Gravity Well.mat
rename to Assets/Materials/Brushes/Gravity Field.mat
index e0bd9f79d..d912917c9 100644
--- a/Assets/Materials/Brushes/Gravity Well.mat
+++ b/Assets/Materials/Brushes/Gravity Field.mat
@@ -7,8 +7,8 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Gravity Well
- m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3}
+ m_Name: Gravity Field
+ m_Shader: {fileID: 4800000, guid: 08d8efa80af84065b54c9bfed784e435, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
@@ -57,8 +57,6 @@ Material:
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- - _Cutoff: 1
- - _Depth: 80
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
@@ -68,7 +66,6 @@ Material:
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _Power: 16
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
diff --git a/Assets/Materials/Brushes/Gravity Well.mat.meta b/Assets/Materials/Brushes/Gravity Field.mat.meta
similarity index 100%
rename from Assets/Materials/Brushes/Gravity Well.mat.meta
rename to Assets/Materials/Brushes/Gravity Field.mat.meta
diff --git a/Assets/Materials/Brushes/Sector Tint.mat b/Assets/Materials/Brushes/Sector Tint.mat
index 3e5e00f24..84e252ad3 100644
--- a/Assets/Materials/Brushes/Sector Tint.mat
+++ b/Assets/Materials/Brushes/Sector Tint.mat
@@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Sector Tint
- m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3}
+ m_Shader: {fileID: 4800000, guid: 782740c1a3d7455ea75dc87fafdc8432, type: 3}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
@@ -59,8 +59,8 @@ Material:
m_Ints: []
m_Floats:
- _BumpScale: 1
- - _Cutoff: 1
- _Depth: 0.025
+ - _EdgeBrightness: 0.12
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _Frequency: 6.2832
@@ -72,7 +72,6 @@ Material:
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Phase: 0
- - _Power: 2
- _SinePower: 1.25
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
diff --git a/Assets/Materials/Brushes/Wormhole Gravity.mat b/Assets/Materials/Brushes/Wormhole Gravity.mat
deleted file mode 100644
index fb6f52b20..000000000
--- a/Assets/Materials/Brushes/Wormhole Gravity.mat
+++ /dev/null
@@ -1,82 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 8
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Wormhole Gravity
- m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3}
- m_ValidKeywords: []
- m_InvalidKeywords: []
- m_LightmapFlags: 4
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
- stringTagMap: {}
- disabledShaderPasses: []
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _DetailAlbedoMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _DetailMask:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _DetailNormalMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MetallicGlossMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _OcclusionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _ParallaxMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
- m_Floats:
- - _BumpScale: 1
- - _Cutoff: 0.15
- - _Depth: 2000
- - _DetailNormalMapScale: 1
- - _DstBlend: 0
- - _GlossMapScale: 1
- - _Glossiness: 0.5
- - _GlossyReflections: 1
- - _Metallic: 0
- - _Mode: 0
- - _OcclusionStrength: 1
- - _Parallax: 0.02
- - _Power: 64
- - _SmoothnessTextureChannel: 0
- - _SpecularHighlights: 1
- - _SrcBlend: 1
- - _UVSec: 0
- - _ZWrite: 1
- m_Colors:
- - _Color: {r: 1, g: 1, b: 1, a: 1}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- m_BuildTextureStacks: []
diff --git a/Assets/Materials/Brushes/Wormhole Waves.mat.meta b/Assets/Materials/Brushes/Wormhole Waves.mat.meta
deleted file mode 100644
index 1e5f35dd3..000000000
--- a/Assets/Materials/Brushes/Wormhole Waves.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ef2f6090d5cc14a4e9ce38def3bed9ac
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Materials/Fog Marching 1.mat b/Assets/Materials/Fog Marching 1.mat
deleted file mode 100644
index 20290c785..000000000
--- a/Assets/Materials/Fog Marching 1.mat
+++ /dev/null
@@ -1,73 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Fog Marching 1
- m_Shader: {fileID: 4800000, guid: 7a890b6ceccf53c44bfc54b18b5daa58, type: 3}
- m_ShaderKeywords:
- m_LightmapFlags: 4
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
- stringTagMap: {}
- disabledShaderPasses: []
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _Displacement:
- m_Texture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Patch:
- m_Texture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Surface:
- m_Texture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _TintTexture:
- m_Texture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _AlphaFloor: 0.01
- - _DepthBlend: 512
- - _DepthCeiling: 4096
- - _FlowSpeed: 2
- - _Gamma: 0.5
- - _GridCeilingBlend: -300
- - _GridCeilingDensity: 0.01
- - _GridCeilingFollow: 0
- - _GridCeilingOffset: 0
- - _GridFillDensity: 0.001
- - _GridFloorBlend: 100
- - _GridFloorDensity: 2
- - _GridFloorOffset: 20
- - _GridPatchBlend: 50
- - _GridPatchDensity: 2
- - _NoiseExponent: 2.25
- - _NoiseFrequency: 0.015
- - _NoiseSpeed: 0
- - _NoiseStrength: 500
- - _SafetyDistance: 20
- - _Scattering: 0
- - _ScatteringDensityExponent: 0.5
- - _ScatteringDistExponent: 0.5
- - _ScatteringMinDist: 500
- - _StepExponent: 2
- - _TintExponent: 0.1
- - _TurbulenceAmplitude: 100
- - _TurbulenceScale: 100
- m_Colors:
- - _Tint: {r: 0.0627451, g: 0.0627451, b: 0.0627451, a: 1}
- m_BuildTextureStacks: []
diff --git a/Assets/Materials/Fog Marching 1.mat.meta b/Assets/Materials/Fog Marching 1.mat.meta
deleted file mode 100644
index 00e039020..000000000
--- a/Assets/Materials/Fog Marching 1.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a72896cb7097bfa46a1a8f4092e47c72
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 2100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Materials/Fog Marching Main Menu.mat b/Assets/Materials/Fog Marching Main Menu.mat
deleted file mode 100644
index b22522a2d..000000000
--- a/Assets/Materials/Fog Marching Main Menu.mat
+++ /dev/null
@@ -1,99 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Fog Marching Main Menu
- m_Shader: {fileID: 4800000, guid: 7a890b6ceccf53c44bfc54b18b5daa58, type: 3}
- m_ShaderKeywords:
- m_LightmapFlags: 4
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
- stringTagMap: {}
- disabledShaderPasses: []
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _Displacement:
- m_Texture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaPatch:
- m_Texture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaPatchHeight:
- m_Texture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaSurfaceHeight:
- m_Texture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaTint:
- m_Texture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Patch:
- m_Texture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Surface:
- m_Texture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _TintTexture:
- m_Texture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _AlphaFloor: 0
- - _DepthBlend: 512
- - _DepthCeiling: 1024
- - _Exposure: 100
- - _FlowAmplitude: 1
- - _FlowScale: 1
- - _FlowScroll: 1
- - _FlowSpeed: 5
- - _Gamma: 0.3
- - _GridCeilingBlend: -300
- - _GridCeilingDensity: 0.01
- - _GridCeilingFollow: 0
- - _GridCeilingOffset: 0
- - _GridFillDensity: 0.001
- - _GridFloorBlend: 50
- - _GridFloorDensity: 1
- - _GridFloorOffset: 100
- - _GridPatchBlend: 50
- - _GridPatchDensity: 1
- - _NebulaFillDensity: 0.00075
- - _NebulaFloorBlend: 50
- - _NebulaFloorDensity: 1
- - _NebulaFloorOffset: 80
- - _NebulaPatchBlend: 25
- - _NebulaPatchDensity: 0.1
- - _NoiseExponent: 2
- - _NoiseFrequency: 0.02
- - _NoiseSpeed: 0.00001
- - _NoiseStrength: 200
- - _SafetyDistance: 50
- - _Scattering: 0
- - _ScatteringDensityExponent: 8
- - _ScatteringDistExponent: 0.5
- - _ScatteringMinDist: 1
- - _StepExponent: 2
- - _TintExponent: 1.2
- - _TurbulenceAmplitude: 20
- - _TurbulenceScale: 30
- m_Colors:
- - _Tint: {r: 0.09411765, g: 0.09411765, b: 0.09411765, a: 1}
- m_BuildTextureStacks: []
diff --git a/Assets/Materials/Fog Marching Main Menu.mat.meta b/Assets/Materials/Fog Marching Main Menu.mat.meta
deleted file mode 100644
index 6a5cdb35e..000000000
--- a/Assets/Materials/Fog Marching Main Menu.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e21702a5e6e98b7409d6913663ceab7e
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 0
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Materials/Fog Marching Test.mat b/Assets/Materials/Fog Marching Test.mat
deleted file mode 100644
index 91b56761e..000000000
--- a/Assets/Materials/Fog Marching Test.mat
+++ /dev/null
@@ -1,65 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Fog Marching Test
- m_Shader: {fileID: 4800000, guid: 7a890b6ceccf53c44bfc54b18b5daa58, type: 3}
- m_ShaderKeywords:
- m_LightmapFlags: 4
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
- stringTagMap: {}
- disabledShaderPasses: []
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _Displacement:
- m_Texture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Patch:
- m_Texture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Surface:
- m_Texture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _TintTexture:
- m_Texture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _AlphaFloor: 0
- - _DepthBlend: 512
- - _DepthCeiling: 4096
- - _Gamma: 0.66
- - _GridCeilingBlend: -300
- - _GridCeilingDensity: 0.01
- - _GridCeilingFollow: 0
- - _GridCeilingOffset: 0
- - _GridFillDensity: 0.000025
- - _GridFloorBlend: 100
- - _GridFloorDensity: 4
- - _GridFloorOffset: 0
- - _GridPatchBlend: 5
- - _GridPatchDensity: 0.1
- - _NoiseFrequency: 0.01
- - _NoiseSpeed: 0.02
- - _NoiseStrength: 50
- - _SafetyDistance: 0
- - _StepExponent: 2
- - _TintExponent: 8
- m_Colors:
- - _Tint: {r: 2.0078435, g: 2.0078435, b: 2.0078435, a: 1}
- m_BuildTextureStacks: []
diff --git a/Assets/Materials/Fog Marching Test.mat.meta b/Assets/Materials/Fog Marching Test.mat.meta
deleted file mode 100644
index 9f0e3d586..000000000
--- a/Assets/Materials/Fog Marching Test.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ad63650ae6d6cc542a5aad16694b3c46
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 0
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Materials/Fog Marching.mat b/Assets/Materials/Fog Marching.mat
deleted file mode 100644
index 52dc13c19..000000000
--- a/Assets/Materials/Fog Marching.mat
+++ /dev/null
@@ -1,99 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Fog Marching
- m_Shader: {fileID: 4800000, guid: 7a890b6ceccf53c44bfc54b18b5daa58, type: 3}
- m_ShaderKeywords:
- m_LightmapFlags: 4
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
- stringTagMap: {}
- disabledShaderPasses: []
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _Displacement:
- m_Texture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaPatch:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaPatchHeight:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaSurfaceHeight:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _NebulaTint:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Patch:
- m_Texture: {fileID: 8400000, guid: c618a6b20b3c7394590c59a9fa467e86, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _Surface:
- m_Texture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _TintTexture:
- m_Texture: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _AlphaFloor: 0.01
- - _DepthBlend: 512
- - _DepthCeiling: 4096
- - _Exposure: 10
- - _FlowAmplitude: 512
- - _FlowScale: 1024
- - _FlowScroll: 0
- - _FlowSpeed: 1
- - _Gamma: 0.3
- - _GridCeilingBlend: -300
- - _GridCeilingDensity: 0.01
- - _GridCeilingFollow: 0
- - _GridCeilingOffset: 0
- - _GridFillDensity: 0.0005
- - _GridFloorBlend: 50
- - _GridFloorDensity: 1
- - _GridFloorOffset: 10
- - _GridPatchBlend: 150
- - _GridPatchDensity: 1
- - _NebulaFillDensity: 0.00075
- - _NebulaFloorBlend: 150
- - _NebulaFloorDensity: 1
- - _NebulaFloorOffset: 0
- - _NebulaPatchBlend: 51.47
- - _NebulaPatchDensity: 0.25
- - _NoiseExponent: 3
- - _NoiseFrequency: 0.005
- - _NoiseSpeed: 0
- - _NoiseStrength: -400
- - _SafetyDistance: 200
- - _Scattering: 50
- - _ScatteringDensityExponent: 1
- - _ScatteringDistExponent: 1.5
- - _ScatteringMinDist: 10
- - _StepExponent: 2
- - _TintExponent: 2
- - _TurbulenceAmplitude: 20
- - _TurbulenceScale: 60
- m_Colors:
- - _Tint: {r: 0.01, g: 0.01, b: 0.01, a: 1}
- m_BuildTextureStacks: []
diff --git a/Assets/TextMesh Pro/Resources/Sprite Assets.meta b/Assets/Materials/PBR.meta
similarity index 58%
rename from Assets/TextMesh Pro/Resources/Sprite Assets.meta
rename to Assets/Materials/PBR.meta
index 5171f1b68..a534b0d5a 100644
--- a/Assets/TextMesh Pro/Resources/Sprite Assets.meta
+++ b/Assets/Materials/PBR.meta
@@ -1,9 +1,8 @@
fileFormatVersion: 2
-guid: 512a49d95c0c4332bdd98131869c23c9
+guid: 5b293e272c024dc999b28fe49925e1d5
folderAsset: yes
-timeCreated: 1441876896
-licenseType: Pro
DefaultImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Materials/PBR/Carbon_Fibre.meta b/Assets/Materials/PBR/Carbon_Fibre.meta
new file mode 100644
index 000000000..c4c6f51e4
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 636104c9ca48436da05c3f6003fd3eae
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Brushes/Gravity Waves.mat b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre.mat
similarity index 70%
rename from Assets/Materials/Brushes/Gravity Waves.mat
rename to Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre.mat
index a45dfed21..b7f244b60 100644
--- a/Assets/Materials/Brushes/Gravity Waves.mat
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre.mat
@@ -7,9 +7,9 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Gravity Waves
- m_Shader: {fileID: 4800000, guid: 8a8e593b17063b54ea02f7ea5363b59d, type: 3}
- m_ShaderKeywords:
+ m_Name: Carbon_Fibre
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -20,7 +20,7 @@ Material:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 5723eb533deb4d73a2b015bb75b523b4, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
@@ -39,12 +39,16 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 32fc9d1c4304495da5350f8a8b52e14b, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 15a9bba7a82740718ad2d3913f7297af, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
@@ -58,20 +62,18 @@ Material:
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- - _Depth: 3.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _Frequency: 27.43
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
- _GlossMapScale: 1
- - _Glossiness: 0.5
+ - _Glossiness: 1
- _GlossyReflections: 1
- - _Metallic: 0
+ - _Metallic: 1
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _Phase: 0
- - _Power: 8
- - _SinePower: 1.25
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
@@ -79,5 +81,6 @@ Material:
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
diff --git a/Assets/Materials/Brushes/Wormhole Gravity 1.mat.meta b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre.mat.meta
similarity index 79%
rename from Assets/Materials/Brushes/Wormhole Gravity 1.mat.meta
rename to Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre.mat.meta
index 7d40d0332..b0f1c3097 100644
--- a/Assets/Materials/Brushes/Wormhole Gravity 1.mat.meta
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 244f3e4c0c030a24b8d7aa944895bdcf
+guid: 8e5a779dec614c80a12925ba063bb99f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Color.jpg b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Color.jpg
new file mode 100644
index 000000000..4e3c4a374
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:327e42b2dfc859efd9b4f122cf1adbdb611c75e80dd3cb8a18bc69e83eef9585
+size 566952
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Color.jpg.meta b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Color.jpg.meta
new file mode 100644
index 000000000..614f43088
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 32fc9d1c4304495da5350f8a8b52e14b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_MetallicSmoothness.png b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_MetallicSmoothness.png
new file mode 100644
index 000000000..31131f1a7
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd50d0187fdf8c05eba5ef982da5217c6adf9f03720a2c8041ef4bebd5a2658d
+size 1944562
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..19a8fae68
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 15a9bba7a82740718ad2d3913f7297af
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_NormalGL.jpg b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_NormalGL.jpg
new file mode 100644
index 000000000..c0e1c9aa8
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e76a53fce87086a2346756ef1ef25f6db6153bda3433611a192ac71b32b2ebdc
+size 1356999
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_NormalGL.jpg.meta b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_NormalGL.jpg.meta
new file mode 100644
index 000000000..072cf13c3
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 5723eb533deb4d73a2b015bb75b523b4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Roughness.jpg b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Roughness.jpg
new file mode 100644
index 000000000..fd7a1f7f1
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8005027078e974df48351781ce90885bd6325ac63d0a16b41938fca8fd35a634
+size 1189710
diff --git a/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Roughness.jpg.meta b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Roughness.jpg.meta
new file mode 100644
index 000000000..503d1d154
--- /dev/null
+++ b/Assets/Materials/PBR/Carbon_Fibre/Carbon_Fibre_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: b8e5cd91353441ebb42296a830fef845
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Gunmetal_Dark.meta b/Assets/Materials/PBR/Gunmetal_Dark.meta
new file mode 100644
index 000000000..7680bfe76
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22e47659e8e14482b3466711751b01b8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Brushes/Wormhole Gravity 1.mat b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark.mat
similarity index 69%
rename from Assets/Materials/Brushes/Wormhole Gravity 1.mat
rename to Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark.mat
index 3ae24d6ee..150f0f72c 100644
--- a/Assets/Materials/Brushes/Wormhole Gravity 1.mat
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark.mat
@@ -7,9 +7,9 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Wormhole Gravity 1
- m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3}
- m_ShaderKeywords:
+ m_Name: Gunmetal_Dark
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -20,7 +20,7 @@ Material:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: dc71e34b4a1f4de7aa826d18b67b5852, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
@@ -39,12 +39,16 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 1ed06708491744fe944217d19e450157, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 31e7d642ff8a49a28390c82626c4b6b9, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
@@ -57,18 +61,19 @@ Material:
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- - _Cutoff: 1
- - _Depth: 54
+ - _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
- _GlossMapScale: 1
- - _Glossiness: 0.5
+ - _Glossiness: 1
- _GlossyReflections: 1
- - _Metallic: 0
+ - _Metallic: 1
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _Power: 4
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
@@ -76,5 +81,6 @@ Material:
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
diff --git a/Assets/Materials/Brushes/Wormhole Gravity.mat.meta b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark.mat.meta
similarity index 79%
rename from Assets/Materials/Brushes/Wormhole Gravity.mat.meta
rename to Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark.mat.meta
index 30ec9b01d..24a52eab3 100644
--- a/Assets/Materials/Brushes/Wormhole Gravity.mat.meta
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a9ef17c902709ce41a837c54b809184b
+guid: 32199fedf9ce473191d8a734a74f3d5f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Color.jpg b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Color.jpg
new file mode 100644
index 000000000..4a0118922
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:28845bf0cc6a1edeed7e9f10f5db4034cae4ba7377bc53633f413de0dbcae5b7
+size 1451112
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Color.jpg.meta b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Color.jpg.meta
new file mode 100644
index 000000000..848791f40
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 1ed06708491744fe944217d19e450157
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_MetallicSmoothness.png b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_MetallicSmoothness.png
new file mode 100644
index 000000000..f3cca5c7f
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c101b3b9d7b3ff0636b6539cc65908dc5cac76e31e951a6a375918bb681076c
+size 2899231
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..598a3c189
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 31e7d642ff8a49a28390c82626c4b6b9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Metalness.jpg b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Metalness.jpg
new file mode 100644
index 000000000..afd0fe3a6
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b65d6b9091747bd81ee58adedcb6209d8ee21b2bde9298d7216989ada85ef622
+size 16545
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Metalness.jpg.meta b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Metalness.jpg.meta
new file mode 100644
index 000000000..2eb33ad5e
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 51e45f19716b43128ce5d2aac5b5aed4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_NormalGL.jpg b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_NormalGL.jpg
new file mode 100644
index 000000000..37f403c32
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7b4437dca1fe52addbb21e145d3ccc43e8c1780b7930cc9dad1e2b73cb7455b
+size 2260227
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_NormalGL.jpg.meta b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_NormalGL.jpg.meta
new file mode 100644
index 000000000..e3fed3ebc
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: dc71e34b4a1f4de7aa826d18b67b5852
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Roughness.jpg b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Roughness.jpg
new file mode 100644
index 000000000..1e6edb81f
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0f466bcf997694d56cb7bc93526a881a195e2ee63b1e0c8a19da88289596b9f4
+size 1228992
diff --git a/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Roughness.jpg.meta b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Roughness.jpg.meta
new file mode 100644
index 000000000..d09d43872
--- /dev/null
+++ b/Assets/Materials/PBR/Gunmetal_Dark/Gunmetal_Dark_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 5677a8acff8f49358627841b9be8e2dd
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Metal_Scratched.meta b/Assets/Materials/PBR/Metal_Scratched.meta
new file mode 100644
index 000000000..a53ff5c65
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3e9d00e0b2454cc08632c972d2ee499b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched.mat b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched.mat
new file mode 100644
index 000000000..fe6463397
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Metal_Scratched
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 3a10044baac4438f9fc0930783eccdf7, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 5a9cee903a2d48718aaf6b224126f279, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: 8b24d7ea11c341408a146fa39f59b7b0, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Brushes/Wormhole Gravity 2.mat.meta b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched.mat.meta
similarity index 79%
rename from Assets/Materials/Brushes/Wormhole Gravity 2.mat.meta
rename to Assets/Materials/PBR/Metal_Scratched/Metal_Scratched.mat.meta
index fb6f1270d..1d5895d52 100644
--- a/Assets/Materials/Brushes/Wormhole Gravity 2.mat.meta
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0ec0689c58b99c64297b3e429e1d9112
+guid: a5874fba9e2242c79aea6b21ddb63af0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Color.jpg b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Color.jpg
new file mode 100644
index 000000000..cb09761f3
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:934e3f0e21b71cb534442f398b287f70158ba7cc3e11ab829f873ddce9cea7fb
+size 4314757
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Color.jpg.meta b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Color.jpg.meta
new file mode 100644
index 000000000..7b34b1c8f
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 5a9cee903a2d48718aaf6b224126f279
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_MetallicSmoothness.png b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_MetallicSmoothness.png
new file mode 100644
index 000000000..7b1578437
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ce0400bc23c44f54aa018b195472b99b7c7007bf93166017bfaf05d68bca38d
+size 4647897
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..b6b4c4b0e
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 8b24d7ea11c341408a146fa39f59b7b0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Metalness.jpg b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Metalness.jpg
new file mode 100644
index 000000000..687e06af5
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a4f1124670270e69c5fae2537f2493ab55d6f6264310fa344414eb75026cfde
+size 564910
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Metalness.jpg.meta b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Metalness.jpg.meta
new file mode 100644
index 000000000..697296e8c
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 2eace05436f24d15944266ed3b841f21
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_NormalGL.jpg b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_NormalGL.jpg
new file mode 100644
index 000000000..e772289b2
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eb3d7953fb7867f7948b5d7a0dff6044f92a6bba56e6f4a48ad30a94c6096d98
+size 5038957
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_NormalGL.jpg.meta b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_NormalGL.jpg.meta
new file mode 100644
index 000000000..932d93b51
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 3a10044baac4438f9fc0930783eccdf7
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Roughness.jpg b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Roughness.jpg
new file mode 100644
index 000000000..9dab37dc6
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8fbd2281a995ab1185715dae4d7a657c10b338dfcb57a2f2245eac530d5bd7ed
+size 2140434
diff --git a/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Roughness.jpg.meta b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Roughness.jpg.meta
new file mode 100644
index 000000000..393e3bd91
--- /dev/null
+++ b/Assets/Materials/PBR/Metal_Scratched/Metal_Scratched_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 986a2475c1e248d7be5208d88ee17a15
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Clean_Light.meta b/Assets/Materials/PBR/Paint_Clean_Light.meta
new file mode 100644
index 000000000..c72ff31ca
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c2497e59922c471b935a06c396acb73e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light.mat b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light.mat
new file mode 100644
index 000000000..f76052e2d
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Paint_Clean_Light
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: f548cd63b5734e04a284018fefc81b30, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 2c82a94e33b64fd481cbfeb7df9516bd, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: ad8a50784ce04f5d9b3bab2115eeea34, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Brushes/Gravity Waves.mat.meta b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light.mat.meta
similarity index 79%
rename from Assets/Materials/Brushes/Gravity Waves.mat.meta
rename to Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light.mat.meta
index f4e2f41d4..519f702b0 100644
--- a/Assets/Materials/Brushes/Gravity Waves.mat.meta
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 11fbaa87dcc7a3743a6bd3aa5c86e5ae
+guid: 132cb2f99d9f42fe9b05db1c0d653897
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Color.jpg b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Color.jpg
new file mode 100644
index 000000000..222b441ba
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e966978debc85c05e1e4834e1ac8406d863f9267c396d1580ec2d94fdce9738
+size 638778
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Color.jpg.meta b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Color.jpg.meta
new file mode 100644
index 000000000..029f71505
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 2c82a94e33b64fd481cbfeb7df9516bd
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_MetallicSmoothness.png b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_MetallicSmoothness.png
new file mode 100644
index 000000000..a61363526
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:412547b698a0968ba6f7c4f31e888bd88afb9f24e049f5811ca51c7490510998
+size 3692433
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..41ba9a3be
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: ad8a50784ce04f5d9b3bab2115eeea34
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_NormalGL.jpg b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_NormalGL.jpg
new file mode 100644
index 000000000..0c74319d3
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:70e36c645d2d6bc9ddc79b86d1275147c52947613fed8ed75dc6aec5d9282187
+size 3220864
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_NormalGL.jpg.meta b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_NormalGL.jpg.meta
new file mode 100644
index 000000000..d0c0e745e
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: f548cd63b5734e04a284018fefc81b30
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Roughness.jpg b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Roughness.jpg
new file mode 100644
index 000000000..499f33718
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44a1a3eb43252db6c242cd3e777a2e41819e872058e032e3cf8285cc578f35bb
+size 2011305
diff --git a/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Roughness.jpg.meta b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Roughness.jpg.meta
new file mode 100644
index 000000000..117171aad
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Clean_Light/Paint_Clean_Light_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 21721bf50f1f407d8e0f2b5e06bf4ef5
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark.meta b/Assets/Materials/PBR/Paint_Worn_Dark.meta
new file mode 100644
index 000000000..f6af35502
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22c55f60ad784e7495f2ddbae1e2799e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark.mat b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark.mat
new file mode 100644
index 000000000..11deee75d
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Paint_Worn_Dark
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP _OCCLUSIONMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: b37cce6dfe8a45d0a7ba4e9a844c68b9, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 8f9bc4377cc4451aae71a877219e700f, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: b5158bc316ef42bead7fa70b7bc08a7a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 2800000, guid: e8713adbe3e74ac4a4f431581bb31a4b, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark.mat.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark.mat.meta
new file mode 100644
index 000000000..c70f30afd
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e081b7d98e6d424fa42a6876a8e0bab3
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_AO.jpg b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_AO.jpg
new file mode 100644
index 000000000..7c4f50094
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_AO.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d2e4af5867078208c00332af23bded29a4ac325b040f5980c2730ff8e551bc9d
+size 2924087
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_AO.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_AO.jpg.meta
new file mode 100644
index 000000000..e3c6ca27e
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_AO.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: e8713adbe3e74ac4a4f431581bb31a4b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Color.jpg b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Color.jpg
new file mode 100644
index 000000000..de88b6108
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c57d484d39db6704fbcf32184f73472e6a78cfc63027422426fa170d87bdfc4a
+size 5177435
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Color.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Color.jpg.meta
new file mode 100644
index 000000000..5cdcca076
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 8f9bc4377cc4451aae71a877219e700f
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_MetallicSmoothness.png b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_MetallicSmoothness.png
new file mode 100644
index 000000000..ca9d86708
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98cc6442c3952acba81f86ae0210e9e0b171522dec1a80d9177eb942dd295d73
+size 5117887
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..28b873752
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: b5158bc316ef42bead7fa70b7bc08a7a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Metalness.jpg b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Metalness.jpg
new file mode 100644
index 000000000..90096ce14
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3cdb47576c1085bea1bd3e90d055c7f45b66bda53d3ad03f825e5dc9665b93f
+size 1073864
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Metalness.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Metalness.jpg.meta
new file mode 100644
index 000000000..fb46b8a1a
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: c6d0917aab0d4442ad102a6088628f53
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_NormalGL.jpg b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_NormalGL.jpg
new file mode 100644
index 000000000..9c151b688
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60e7d12d4eefed9f9c763b3095b6db35542ee00c7f076b72bb2718a3ccd649c9
+size 7526970
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_NormalGL.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_NormalGL.jpg.meta
new file mode 100644
index 000000000..bcfcf9af3
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: b37cce6dfe8a45d0a7ba4e9a844c68b9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Roughness.jpg b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Roughness.jpg
new file mode 100644
index 000000000..918bb48c5
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:648bf332066975dad0fc618eda260571e8077a7d418587b8b55a68c7da797541
+size 2083327
diff --git a/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Roughness.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Roughness.jpg.meta
new file mode 100644
index 000000000..3607f105d
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Dark/Paint_Worn_Dark_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 46fe06d220b044d1a6bb1a716c6e8705
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light.meta b/Assets/Materials/PBR/Paint_Worn_Light.meta
new file mode 100644
index 000000000..34d26b097
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b660a03d95714359ac68aa01a52064b9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light.mat b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light.mat
new file mode 100644
index 000000000..9f6a4ff51
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Paint_Worn_Light
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP _OCCLUSIONMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 4ce3c2cc69304068b4a2ddc833b748b9, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 73568a0c02bd4184bcb398c9e3dd7ab6, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: d9cd336372c244e398532512e3f8f3be, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 2800000, guid: 73e117729c3447e5aa0eb1a30fad7c75, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light.mat.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light.mat.meta
new file mode 100644
index 000000000..1441ced17
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5eb890ad19d44af98f2710f3af280e3c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_AO.jpg b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_AO.jpg
new file mode 100644
index 000000000..a9989d282
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_AO.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e2560f1aa453ffd2f4374c9ba4d184e1c43456726d8971460062515acef83b76
+size 2764255
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_AO.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_AO.jpg.meta
new file mode 100644
index 000000000..be48781f6
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_AO.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 73e117729c3447e5aa0eb1a30fad7c75
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Color.jpg b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Color.jpg
new file mode 100644
index 000000000..d05a21ab2
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:401b7ee4394595110564bcb12a40c0b87ea50acfc3632b7e7237e2d0165d1ded
+size 4364255
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Color.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Color.jpg.meta
new file mode 100644
index 000000000..cc5b0e17b
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 73568a0c02bd4184bcb398c9e3dd7ab6
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_MetallicSmoothness.png b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_MetallicSmoothness.png
new file mode 100644
index 000000000..08375c3a3
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c59489103f8a5ef438f0f74484cdf5af90b1ee2985a180d690772d1325816bf
+size 6990606
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..13b040de5
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: d9cd336372c244e398532512e3f8f3be
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Metalness.jpg b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Metalness.jpg
new file mode 100644
index 000000000..10a0cd502
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8be2891eeff9e521ac8d672edb106830e878ee0b73852a5763c803a8088014f2
+size 2705735
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Metalness.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Metalness.jpg.meta
new file mode 100644
index 000000000..402c2f3f3
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 464aecd85593406aa2426215e07b988a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_NormalGL.jpg b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_NormalGL.jpg
new file mode 100644
index 000000000..549164ad2
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2ae51f315549a7d63c7f0290e9f6d35dfcd1bc42df422579ee407c30692599a
+size 6857447
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_NormalGL.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_NormalGL.jpg.meta
new file mode 100644
index 000000000..a9aa1c988
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 4ce3c2cc69304068b4a2ddc833b748b9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Roughness.jpg b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Roughness.jpg
new file mode 100644
index 000000000..d0ab06978
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1207c0c4716229b36290416e4af37ccaf5351a65c8d93237a7802a95f45dfbcf
+size 1929057
diff --git a/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Roughness.jpg.meta b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Roughness.jpg.meta
new file mode 100644
index 000000000..2b1eeabdb
--- /dev/null
+++ b/Assets/Materials/PBR/Paint_Worn_Light/Paint_Worn_Light_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 58cb097056b5431e819ca45954ee3b47
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plastic_Matte.meta b/Assets/Materials/PBR/Plastic_Matte.meta
new file mode 100644
index 000000000..91fd17d97
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1126ae7b5bcb4d6b8403e31233638b8d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Brushes/Wormhole Gravity 2.mat b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte.mat
similarity index 69%
rename from Assets/Materials/Brushes/Wormhole Gravity 2.mat
rename to Assets/Materials/PBR/Plastic_Matte/Plastic_Matte.mat
index 3ae24d6ee..f5845363d 100644
--- a/Assets/Materials/Brushes/Wormhole Gravity 2.mat
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte.mat
@@ -7,9 +7,9 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Wormhole Gravity 1
- m_Shader: {fileID: 4800000, guid: 268da230635cfb34ab4ed6ad39503fa0, type: 3}
- m_ShaderKeywords:
+ m_Name: Plastic_Matte
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -20,7 +20,7 @@ Material:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: d9e9439b6e9f43ed9c47015cafdcd5d3, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
@@ -39,12 +39,16 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 053c9b821bf649bab9c8f7b234803809, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: f405c1ca89914831a4366ac1e4d850ee, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
@@ -57,18 +61,19 @@ Material:
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- - _Cutoff: 1
- - _Depth: 54
+ - _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
- _GlossMapScale: 1
- - _Glossiness: 0.5
+ - _Glossiness: 1
- _GlossyReflections: 1
- - _Metallic: 0
+ - _Metallic: 1
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _Power: 4
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
@@ -76,5 +81,6 @@ Material:
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte.mat.meta b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte.mat.meta
new file mode 100644
index 000000000..f92b559c4
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 636667df941046e79d2417c6b062d995
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Color.jpg b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Color.jpg
new file mode 100644
index 000000000..00c2a444a
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5cb3a446755c2f868957807195d1e51ff989384da7878e8c0d9f93f391a5b755
+size 905715
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Color.jpg.meta b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Color.jpg.meta
new file mode 100644
index 000000000..e0947dee4
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 053c9b821bf649bab9c8f7b234803809
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_MetallicSmoothness.png b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_MetallicSmoothness.png
new file mode 100644
index 000000000..45e075a5b
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:811b05a5b78048c711f5129d14073bfa1983443553a2b75453f15e46ad6da998
+size 3782071
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..c641103a4
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: f405c1ca89914831a4366ac1e4d850ee
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_NormalGL.jpg b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_NormalGL.jpg
new file mode 100644
index 000000000..12b6ad1ff
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e177082ed5027b4bb533e39b0556c7f3ca4701d6ffa3761910dff678d7f43d07
+size 9096346
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_NormalGL.jpg.meta b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_NormalGL.jpg.meta
new file mode 100644
index 000000000..357ce2800
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: d9e9439b6e9f43ed9c47015cafdcd5d3
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Roughness.jpg b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Roughness.jpg
new file mode 100644
index 000000000..c1eb5f150
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:629c695383835080794b90174ae19a422cb7234870752642afa81f36a28cd9e7
+size 2095946
diff --git a/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Roughness.jpg.meta b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Roughness.jpg.meta
new file mode 100644
index 000000000..575bf2428
--- /dev/null
+++ b/Assets/Materials/PBR/Plastic_Matte/Plastic_Matte_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 142ed10762d242a9a4ecf63ee0e38b71
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels.meta b/Assets/Materials/PBR/Plates_Panels.meta
new file mode 100644
index 000000000..99eb09f70
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 086928e6583747e1b14c6767ced082b4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels.mat b/Assets/Materials/PBR/Plates_Panels/Plates_Panels.mat
new file mode 100644
index 000000000..babe13ca0
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Plates_Panels
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 8bc10cfce8a64defaf9f67d156003f09, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 2195885db9e846999fd10aa7f5c629b1, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: d91bff887b764847a484d0a9bedce9e9, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels.mat.meta b/Assets/Materials/PBR/Plates_Panels/Plates_Panels.mat.meta
new file mode 100644
index 000000000..a8a703cf0
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c508beb10bbe4c7f88fc9a7c003e51d5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Color.jpg b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Color.jpg
new file mode 100644
index 000000000..9945f16ae
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e69514467f58898537ecc6b3c47e618537406a00b7eb24099d3835ca4ae4c9a
+size 2132182
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Color.jpg.meta b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Color.jpg.meta
new file mode 100644
index 000000000..960e6e0e3
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 2195885db9e846999fd10aa7f5c629b1
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_MetallicSmoothness.png b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_MetallicSmoothness.png
new file mode 100644
index 000000000..de028ea73
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6b5ea65058b4792f97c7f9affd89930342b2306ab5dbd21f930ef153d4f4acf1
+size 3414650
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..6b036cb95
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: d91bff887b764847a484d0a9bedce9e9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Metalness.jpg b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Metalness.jpg
new file mode 100644
index 000000000..9edfab941
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:736a312c106a791672e1115df51ba0a08be7927f6cfc4aff97fcfb60311e002f
+size 171958
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Metalness.jpg.meta b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Metalness.jpg.meta
new file mode 100644
index 000000000..69399ee42
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 5df39678e5734f51a29940f2f6a43dda
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_NormalGL.jpg b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_NormalGL.jpg
new file mode 100644
index 000000000..127c7888d
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5f916040ca388073191224a515def08761a3e136a74f559feb5774ef50527d54
+size 3505435
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_NormalGL.jpg.meta b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_NormalGL.jpg.meta
new file mode 100644
index 000000000..da4e2137e
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 8bc10cfce8a64defaf9f67d156003f09
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Roughness.jpg b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Roughness.jpg
new file mode 100644
index 000000000..cf7a6709b
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f9fc8550cdb559c16cbd2d43196dcc271653e78c802519bc446684224048ff69
+size 1742286
diff --git a/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Roughness.jpg.meta b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Roughness.jpg.meta
new file mode 100644
index 000000000..9d51593f6
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Panels/Plates_Panels_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: e2f6e4f21fd14d6eb65e100b4f012349
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted.meta b/Assets/Materials/PBR/Plates_Riveted.meta
new file mode 100644
index 000000000..870fc938a
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 79fbea05234f4b53a53eab2f090d2005
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted.mat b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted.mat
new file mode 100644
index 000000000..e8088be9b
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Plates_Riveted
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 6fb688a276034675b895c2edeb1b538b, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: f07bacf217654b269eecfabbcc651b2b, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: 08b45a54ea8c4521b7c4e7b3974f0b42, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted.mat.meta b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted.mat.meta
new file mode 100644
index 000000000..62c10b5e6
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 538d82fdc2de48f4bcf4e93b17407f90
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Color.jpg b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Color.jpg
new file mode 100644
index 000000000..fe22d7428
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a72ee2d4e5e6c3d4154e9244ad57f7c6b644b40b356db162c9f2b01e80547eb
+size 1602784
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Color.jpg.meta b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Color.jpg.meta
new file mode 100644
index 000000000..dc74b1c54
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: f07bacf217654b269eecfabbcc651b2b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_MetallicSmoothness.png b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_MetallicSmoothness.png
new file mode 100644
index 000000000..527fe9f5f
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d678e8bff66b2d3bc703c5d355c47644f135544ac33afd517f1a542195b7e43d
+size 5021835
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..778892894
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 08b45a54ea8c4521b7c4e7b3974f0b42
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Metalness.jpg b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Metalness.jpg
new file mode 100644
index 000000000..05c05f99a
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:212258a43acddd1cb67203b3b263721022ae5f22bbf2213842a608fb09dc2b2f
+size 1396144
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Metalness.jpg.meta b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Metalness.jpg.meta
new file mode 100644
index 000000000..86f483ff4
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 24e3f6b76da9420592e2f21931defae7
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_NormalGL.jpg b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_NormalGL.jpg
new file mode 100644
index 000000000..4c272122c
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e49f90c003cf728de4892eec7d71f08abec1b2f9cb4780c875d005cb313498ac
+size 3616644
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_NormalGL.jpg.meta b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_NormalGL.jpg.meta
new file mode 100644
index 000000000..aa8d94dbe
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 6fb688a276034675b895c2edeb1b538b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Roughness.jpg b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Roughness.jpg
new file mode 100644
index 000000000..b96f7460a
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d48b683b55fd5e89c91a0c4bfde3a539fc892abc958387045e7d0786fe5c1fbd
+size 1889081
diff --git a/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Roughness.jpg.meta b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Roughness.jpg.meta
new file mode 100644
index 000000000..232a09cf3
--- /dev/null
+++ b/Assets/Materials/PBR/Plates_Riveted/Plates_Riveted_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 7b50b58679684fc8991f112974a62120
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Rubber.meta b/Assets/Materials/PBR/Rubber.meta
new file mode 100644
index 000000000..f4d39fafb
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 180d9a65c5784b618970824077421002
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Brushes/Wormhole Waves.mat b/Assets/Materials/PBR/Rubber/Rubber.mat
similarity index 70%
rename from Assets/Materials/Brushes/Wormhole Waves.mat
rename to Assets/Materials/PBR/Rubber/Rubber.mat
index 7902c5c36..2c10c3488 100644
--- a/Assets/Materials/Brushes/Wormhole Waves.mat
+++ b/Assets/Materials/PBR/Rubber/Rubber.mat
@@ -7,9 +7,9 @@ Material:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: Wormhole Waves
- m_Shader: {fileID: 4800000, guid: 8681ac064d59d15458d16cc9b884262c, type: 3}
- m_ShaderKeywords:
+ m_Name: Rubber
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -20,7 +20,7 @@ Material:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 42826f488ae243178be306ada5ee9f41, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
@@ -39,12 +39,16 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: 83e6c1768e014acfb494fbf007c40c80, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: f1d4409638e4452cb1412503ed8526de, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
@@ -58,27 +62,25 @@ Material:
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- - _Depth: 33.9
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _Frequency: 2
- - _FrequencyDist: 60
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
- _GlossMapScale: 1
- - _Glossiness: 0.5
+ - _Glossiness: 1
- _GlossyReflections: 1
- - _Metallic: 0
+ - _Metallic: 1
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _Power: 2
- - _SinePower: 1.25
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- - _Speed: 15
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Rubber/Rubber.mat.meta b/Assets/Materials/PBR/Rubber/Rubber.mat.meta
new file mode 100644
index 000000000..989c2cd22
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 257d49e9af154d6c9b5ea50a288db1fa
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Rubber/Rubber_Color.jpg b/Assets/Materials/PBR/Rubber/Rubber_Color.jpg
new file mode 100644
index 000000000..3a0e09062
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d712c25987d3e6f40e3f37fae1ce1a4a4155d5e27cff64dadf2bbe140979dd98
+size 4479634
diff --git a/Assets/Materials/PBR/Rubber/Rubber_Color.jpg.meta b/Assets/Materials/PBR/Rubber/Rubber_Color.jpg.meta
new file mode 100644
index 000000000..ff443d7b4
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 83e6c1768e014acfb494fbf007c40c80
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Rubber/Rubber_MetallicSmoothness.png b/Assets/Materials/PBR/Rubber/Rubber_MetallicSmoothness.png
new file mode 100644
index 000000000..d194ddc8f
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a5d2c567edceeeec37de50166d325a0b3d29bc6cd90ad891635bf4cf8334376
+size 5044494
diff --git a/Assets/Materials/PBR/Rubber/Rubber_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Rubber/Rubber_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..fe4234492
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: f1d4409638e4452cb1412503ed8526de
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Rubber/Rubber_NormalGL.jpg b/Assets/Materials/PBR/Rubber/Rubber_NormalGL.jpg
new file mode 100644
index 000000000..461b856ff
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61bf1b38eae723913275a1de5eb08d4ac543f11e28f4ac6f596a0644169010fc
+size 9238212
diff --git a/Assets/Materials/PBR/Rubber/Rubber_NormalGL.jpg.meta b/Assets/Materials/PBR/Rubber/Rubber_NormalGL.jpg.meta
new file mode 100644
index 000000000..16144739a
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 42826f488ae243178be306ada5ee9f41
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Rubber/Rubber_Roughness.jpg b/Assets/Materials/PBR/Rubber/Rubber_Roughness.jpg
new file mode 100644
index 000000000..7c59cbb40
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dc137f95179a4ae42d67819750d78c3fe878d438b789cf96b33947618305a275
+size 3042709
diff --git a/Assets/Materials/PBR/Rubber/Rubber_Roughness.jpg.meta b/Assets/Materials/PBR/Rubber/Rubber_Roughness.jpg.meta
new file mode 100644
index 000000000..feca8c0c2
--- /dev/null
+++ b/Assets/Materials/PBR/Rubber/Rubber_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 834b5a5e1e1a49559f9fdeffd947e0a0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/SOURCES.md b/Assets/Materials/PBR/SOURCES.md
new file mode 100644
index 000000000..baebd4022
--- /dev/null
+++ b/Assets/Materials/PBR/SOURCES.md
@@ -0,0 +1,22 @@
+# PBR material sources
+
+All texture sets are from ambientCG (https://ambientcg.com), licensed CC0 1.0 Universal (public domain, https://creativecommons.org/publicdomain/zero/1.0/). 2K-JPG downloads; displacement and NormalDX dropped; NormalGL kept (OpenGL convention, used by Blender and Unity).
+
+| Material | ambientCG id | URL | Metallic source |
+|---|---|---|---|
+| Paint_Clean_Light | Plastic010 | https://ambientcg.com/view?id=Plastic010 | none in set: constant 0 |
+| Paint_Worn_Light | PaintedMetal012 | https://ambientcg.com/view?id=PaintedMetal012 | ambientCG Metalness map |
+| Paint_Worn_Dark | PaintedMetal007 | https://ambientcg.com/view?id=PaintedMetal007 | ambientCG Metalness map |
+| Steel_Brushed | Metal009 | https://ambientcg.com/view?id=Metal009 | ambientCG Metalness map |
+| Metal_Scratched | Metal002 | https://ambientcg.com/view?id=Metal002 | ambientCG Metalness map |
+| Gunmetal_Dark | Metal030 | https://ambientcg.com/view?id=Metal030 | ambientCG Metalness map |
+| Plates_Riveted | MetalPlates002 | https://ambientcg.com/view?id=MetalPlates002 | ambientCG Metalness map |
+| Plates_Panels | MetalPlates006 | https://ambientcg.com/view?id=MetalPlates006 | ambientCG Metalness map |
+| Tread_Diamond | DiamondPlate001 | https://ambientcg.com/view?id=DiamondPlate001 | ambientCG Metalness map |
+| Rubber | Rubber001 | https://ambientcg.com/view?id=Rubber001 | none in set: constant 0 |
+| Plastic_Matte | Plastic004 | https://ambientcg.com/view?id=Plastic004 | none in set: constant 0 |
+| Carbon_Fibre | Fabric004 | https://ambientcg.com/view?id=Fabric004 | set map is all 1.0; dielectric, so constant 0 |
+
+Files per material: `_Color`, `_Roughness`, `_NormalGL`, `_Metalness` and `_AO` (where the set has them), plus `_MetallicSmoothness.png` generated here for Unity (Metallic in R, Smoothness = 1 - Roughness in A). AO exists only for Paint_Worn_Light and Paint_Worn_Dark.
+
+Blender library: `Asset Sources/PBR Materials.blend` (catalog Aetheria/PBR, images linked by relative path to this folder). Unity materials use Aetheria/GlowFade.
diff --git a/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta b/Assets/Materials/PBR/SOURCES.md.meta
similarity index 54%
rename from Assets/TextMesh Pro/Sprites/EmojiOne.json.meta
rename to Assets/Materials/PBR/SOURCES.md.meta
index 762cf15c9..4c16a4a62 100644
--- a/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta
+++ b/Assets/Materials/PBR/SOURCES.md.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
-guid: 8f05276190cf498a8153f6cbe761d4e6
-timeCreated: 1480316860
-licenseType: Pro
+guid: a29568b9a0cf46babc43fe6045d6e10a
TextScriptImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed.meta b/Assets/Materials/PBR/Steel_Brushed.meta
new file mode 100644
index 000000000..0a76b67a2
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 76edddc4bbd74a8d80e7cc29729b334e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed.mat b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed.mat
new file mode 100644
index 000000000..7147c9aa2
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Steel_Brushed
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: c3ef09438e3e46d18a4c267810aeb285, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: f70b6df0395b4752b4ec80cb7bfd8f42, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: 40f5e915d2734d43bc01f984772e9d29, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed.mat.meta b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed.mat.meta
new file mode 100644
index 000000000..6a17f81b3
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 65c607f056d64708bb493dd31b39e79e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Color.jpg b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Color.jpg
new file mode 100644
index 000000000..c3406774a
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:209d3bb050be9f58c5af179d9712fa7799567a4cd50afd338d37674bdcff765b
+size 2439272
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Color.jpg.meta b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Color.jpg.meta
new file mode 100644
index 000000000..d6973f061
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: f70b6df0395b4752b4ec80cb7bfd8f42
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_MetallicSmoothness.png b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_MetallicSmoothness.png
new file mode 100644
index 000000000..8142b06f2
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2b84e6acb67eb71fb263546ba5fe2ddd5f6e00517addb3c96c0f226becab3bb
+size 3309438
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..130146909
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 40f5e915d2734d43bc01f984772e9d29
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Metalness.jpg b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Metalness.jpg
new file mode 100644
index 000000000..afd0fe3a6
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b65d6b9091747bd81ee58adedcb6209d8ee21b2bde9298d7216989ada85ef622
+size 16545
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Metalness.jpg.meta b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Metalness.jpg.meta
new file mode 100644
index 000000000..1aa819912
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 415d2498454d4d419948b2aa11eac78c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_NormalGL.jpg b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_NormalGL.jpg
new file mode 100644
index 000000000..2c9942542
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8773d9e97a4b057ced3e538d8ecc6069d27c8948191d61daf79b9ad93d93e3b3
+size 4120356
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_NormalGL.jpg.meta b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_NormalGL.jpg.meta
new file mode 100644
index 000000000..e223398fa
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: c3ef09438e3e46d18a4c267810aeb285
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Roughness.jpg b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Roughness.jpg
new file mode 100644
index 000000000..a1d7edd1f
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e802f013b93cb1bd4b55cd91f02a1863233475a7f8bd0e6755cfaa447a729674
+size 1891607
diff --git a/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Roughness.jpg.meta b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Roughness.jpg.meta
new file mode 100644
index 000000000..726ff5549
--- /dev/null
+++ b/Assets/Materials/PBR/Steel_Brushed/Steel_Brushed_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 158c7794c28740d0a16fa2dc22e93d8c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond.meta b/Assets/Materials/PBR/Tread_Diamond.meta
new file mode 100644
index 000000000..6a3445907
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 78b78bf7d2f84a8d85daaf75d21fa56f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond.mat b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond.mat
new file mode 100644
index 000000000..5b9542d0f
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond.mat
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Tread_Diamond
+ m_Shader: {fileID: 4800000, guid: ddff0b48b92c991499817d2a0f5d5059, type: 3}
+ m_ShaderKeywords: _MAINTEX _METALLICGLOSSMAP _NORMALMAP
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 043636050ee1492697e5bebb7603bf12, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _FadeTex:
+ m_Texture: {fileID: 2800000, guid: df0632a08c5f1a1498fa325c755dc459, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: f04f0c584e824d81b7d7a91b969efef8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: 28456bc0a3c045e394e0937b6fe0231c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _Fade: 0
+ - _FadeEdge: 0.05
+ - _FadeSharpness: 16
+ - _GlossMapScale: 1
+ - _Glossiness: 1
+ - _GlossyReflections: 1
+ - _Metallic: 1
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EdgeColor: {r: 3.0117648, g: 3.0117648, b: 11.984314, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond.mat.meta b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond.mat.meta
new file mode 100644
index 000000000..dd3e8ee22
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bd8a08731d8c4a4d8961c92fe318f1bb
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Color.jpg b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Color.jpg
new file mode 100644
index 000000000..c4aae91a2
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Color.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a1de0119ef8592c3054949b6a9608a5a814156f661ed54541b390feb6fb87cd
+size 2675454
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Color.jpg.meta b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Color.jpg.meta
new file mode 100644
index 000000000..f02278e36
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Color.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: f04f0c584e824d81b7d7a91b969efef8
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_MetallicSmoothness.png b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_MetallicSmoothness.png
new file mode 100644
index 000000000..8c48d3028
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_MetallicSmoothness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b6131476bdbc8b6e910a5537a0aaadc977584f22c2a76d97f4cab4aa2b2b7ec0
+size 7151369
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_MetallicSmoothness.png.meta b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_MetallicSmoothness.png.meta
new file mode 100644
index 000000000..8804c2d58
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_MetallicSmoothness.png.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 28456bc0a3c045e394e0937b6fe0231c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Metalness.jpg b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Metalness.jpg
new file mode 100644
index 000000000..d65027465
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Metalness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6925202668aae7828b0a4765ca8854c539d94c4cd0f945b5195b5576272cdc7a
+size 2420905
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Metalness.jpg.meta b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Metalness.jpg.meta
new file mode 100644
index 000000000..c786edbd3
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Metalness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 5086225cf1bf485597fe191f1b9ca912
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_NormalGL.jpg b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_NormalGL.jpg
new file mode 100644
index 000000000..7411d45d0
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_NormalGL.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:317627265f2587cdfb00e06ea80415333b0ff2597321c79a77c2fd55448e5ec5
+size 7454546
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_NormalGL.jpg.meta b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_NormalGL.jpg.meta
new file mode 100644
index 000000000..747097254
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_NormalGL.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 043636050ee1492697e5bebb7603bf12
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 1
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Roughness.jpg b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Roughness.jpg
new file mode 100644
index 000000000..2a2b7c7f8
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Roughness.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6aa2c8bd6044829215771cb1c3d82fcd3845565ff1a9416f4a10403dc2dfbc1b
+size 2395648
diff --git a/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Roughness.jpg.meta b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Roughness.jpg.meta
new file mode 100644
index 000000000..cc15cc441
--- /dev/null
+++ b/Assets/Materials/PBR/Tread_Diamond/Tread_Diamond_Roughness.jpg.meta
@@ -0,0 +1,104 @@
+fileFormatVersion: 2
+guid: 1d942e92edc64885ae82ceb88af83104
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 4
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Particles/Dithered Particle Trail AetherDrive.mat b/Assets/Materials/Particles/Dithered Particle Trail AetherDrive.mat
deleted file mode 100644
index d4224d262..000000000
--- a/Assets/Materials/Particles/Dithered Particle Trail AetherDrive.mat
+++ /dev/null
@@ -1,78 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
- serializedVersion: 6
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Dithered Particle Trail AetherDrive
- m_Shader: {fileID: 4800000, guid: 46776b9fa35a437448f683f31b04d68d, type: 3}
- m_ShaderKeywords:
- m_LightmapFlags: 4
- m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
- stringTagMap: {}
- disabledShaderPasses: []
- m_SavedProperties:
- serializedVersion: 3
- m_TexEnvs:
- - _BumpMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _DetailAlbedoMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _DetailMask:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _DetailNormalMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _EmissionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _MainTex:
- m_Texture: {fileID: 2800000, guid: 1d6eba2a167939a468c00fda35723dd0, type: 3}
- m_Scale: {x: 0, y: 1}
- m_Offset: {x: 0.5, y: 0}
- - _MetallicGlossMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _OcclusionMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - _ParallaxMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Floats:
- - _BumpScale: 1
- - _Cutoff: 0.5
- - _DetailNormalMapScale: 1
- - _DstBlend: 0
- - _GlossMapScale: 1
- - _Glossiness: 0
- - _GlossyReflections: 1
- - _Metallic: 0
- - _Mode: 0
- - _OcclusionStrength: 1
- - _Parallax: 0.02
- - _SmoothnessTextureChannel: 0
- - _SpecularHighlights: 1
- - _SrcBlend: 1
- - _UVSec: 0
- - _ZWrite: 1
- m_Colors:
- - _Color: {r: 1.216786, g: 1.216786, b: 1.216786, a: 1}
- - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- m_BuildTextureStacks: []
diff --git a/Assets/Materials/Particles/Dithered Particle Trail AetherDrive.mat.meta b/Assets/Materials/Particles/Dithered Particle Trail AetherDrive.mat.meta
deleted file mode 100644
index 292027b73..000000000
--- a/Assets/Materials/Particles/Dithered Particle Trail AetherDrive.mat.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 555ada90c0f01654a9387483bd95a688
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 0
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Prefabs/RPG/Fog Patch.prefab b/Assets/Prefabs/RPG/Fog Patch.prefab
index 64769c721..52cdefc65 100644
--- a/Assets/Prefabs/RPG/Fog Patch.prefab
+++ b/Assets/Prefabs/RPG/Fog Patch.prefab
@@ -11,6 +11,7 @@ GameObject:
- component: {fileID: 3040023561780424834}
- component: {fileID: 8539532519029615782}
- component: {fileID: 4655154266675363797}
+ - component: {fileID: 2914522964471179774}
m_Layer: 11
m_Name: Fog Patch
m_TagString: Untagged
@@ -25,13 +26,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 791530951415938407}
+ serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: -3148.4, y: -253.6, z: -1108.1}
- m_LocalScale: {x: 1513.8295, y: 1513.8295, z: 1513.8295}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!33 &8539532519029615782
MeshFilter:
@@ -58,6 +59,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -79,7 +85,22 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &2914522964471179774
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 791530951415938407}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a792b8f456004d04997a26557b338d1c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::VapourCloudInstance
+ PatchHeight: -5
diff --git a/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab
index 431b3c1a2..7a65a0864 100644
--- a/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab
+++ b/Assets/Prefabs/RPG/Pickups/Dodecahedron.prefab
@@ -23,6 +23,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4094535758000554889}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
@@ -30,7 +31,6 @@ Transform:
m_Children:
- {fileID: 9133920759869389018}
m_Father: {fileID: 8489385781787202308}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &5284461483464579928
GameObject:
@@ -44,7 +44,6 @@ GameObject:
- component: {fileID: 2667259809042191123}
- component: {fileID: 2093307059618178533}
- component: {fileID: 8815906420840494942}
- - component: {fileID: 8842807112802394818}
- component: {fileID: 8689774408369415534}
- component: {fileID: 5705448000916375656}
- component: {fileID: -5496574226213385675}
@@ -62,6 +61,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5284461483464579928}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.76403, y: 0, z: 0}
m_LocalScale: {x: 3, y: 3, z: 3}
@@ -69,7 +69,6 @@ Transform:
m_Children:
- {fileID: 6463386671854692106}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2667259809042191123
MeshFilter:
@@ -96,6 +95,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -118,9 +122,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!135 &8815906420840494942
SphereCollider:
@@ -130,29 +136,19 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5284461483464579928}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 2
+ serializedVersion: 3
m_Radius: 0.91187096
m_Center: {x: 0, y: 0, z: 0}
---- !u!114 &8842807112802394818
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5284461483464579928}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- RotationSpeed: 1
- GridOffset: 0
- GridAttraction: 10
- Gravity: 1
- Drag: 0.05
- LaunchDrag: 0.2
--- !u!54 &8689774408369415534
Rigidbody:
m_ObjectHideFlags: 0
@@ -160,10 +156,21 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5284461483464579928}
- serializedVersion: 2
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
@@ -181,6 +188,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3}
m_Name:
m_EditorClassIdentifier:
+ RotationSpeed: 1
LabelFadeDuration: 0.5
LabelPersistDuration: 3
LabelDisplayAngle: 15
@@ -204,6 +212,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 6463386671854692106}
m_Modifications:
- target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b,
@@ -327,6 +336,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3}
--- !u!114 &3355762817961458026 stripped
MonoBehaviour:
diff --git a/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab
index fea9f67a9..f9a477cda 100644
--- a/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab
+++ b/Assets/Prefabs/RPG/Pickups/Hexahedron.prefab
@@ -23,6 +23,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3193517496555256095}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
@@ -30,7 +31,6 @@ Transform:
m_Children:
- {fileID: 7638477100053754924}
m_Father: {fileID: 3419130779256825702}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7643266616531142933
GameObject:
@@ -44,7 +44,6 @@ GameObject:
- component: {fileID: 3269639735116279291}
- component: {fileID: 7427774873968414741}
- component: {fileID: 674324171579366365}
- - component: {fileID: 7449398549621940518}
- component: {fileID: 4507103896627202189}
- component: {fileID: 648083621841515580}
- component: {fileID: -5443764149998352794}
@@ -62,6 +61,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7643266616531142933}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 3, y: 3, z: 3}
@@ -69,7 +69,6 @@ Transform:
m_Children:
- {fileID: 3601651121922051457}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &3269639735116279291
MeshFilter:
@@ -96,6 +95,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -118,9 +122,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!135 &674324171579366365
SphereCollider:
@@ -130,29 +136,19 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7643266616531142933}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 2
+ serializedVersion: 3
m_Radius: 0.8
m_Center: {x: 0, y: 0, z: 0}
---- !u!114 &7449398549621940518
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7643266616531142933}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- RotationSpeed: 1
- GridOffset: 0
- GridAttraction: 10
- Gravity: 1
- Drag: 0.05
- LaunchDrag: 0.2
--- !u!114 &4507103896627202189
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -165,6 +161,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3}
m_Name:
m_EditorClassIdentifier:
+ RotationSpeed: 1
LabelFadeDuration: 0.5
LabelPersistDuration: 3
LabelDisplayAngle: 15
@@ -178,10 +175,21 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7643266616531142933}
- serializedVersion: 2
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
@@ -204,6 +212,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 3601651121922051457}
m_Modifications:
- target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b,
@@ -327,6 +336,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3}
--- !u!114 &4202270197902620060 stripped
MonoBehaviour:
diff --git a/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab
index e99ae3392..4252e74cc 100644
--- a/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab
+++ b/Assets/Prefabs/RPG/Pickups/Icosahedron.prefab
@@ -23,6 +23,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6430764275721745537}
+ serializedVersion: 2
m_LocalRotation: {x: 0.7069834, y: -0, z: -0, w: 0.7072302}
m_LocalPosition: {x: 0, y: -0.9858858, z: 0.000344038}
m_LocalScale: {x: 1, y: 1, z: 1}
@@ -30,7 +31,6 @@ Transform:
m_Children:
- {fileID: 5373456011921669618}
m_Father: {fileID: 7548484292876150345}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7167547457198401877
GameObject:
@@ -44,7 +44,6 @@ GameObject:
- component: {fileID: 7390838957595368880}
- component: {fileID: 6960669510133879758}
- component: {fileID: 3507902894264904200}
- - component: {fileID: 8747099621875196907}
- component: {fileID: 1545255963217739444}
- component: {fileID: -5409019571952974707}
- component: {fileID: -2501508196100734606}
@@ -62,6 +61,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7167547457198401877}
+ serializedVersion: 2
m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302}
m_LocalPosition: {x: -0, y: 0, z: -2.9576573}
m_LocalScale: {x: 3, y: 3, z: 3}
@@ -69,7 +69,6 @@ Transform:
m_Children:
- {fileID: 4002800527770282731}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0}
--- !u!33 &7390838957595368880
MeshFilter:
@@ -96,6 +95,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -118,9 +122,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!135 &3507902894264904200
SphereCollider:
@@ -130,29 +136,19 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7167547457198401877}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 2
+ serializedVersion: 3
m_Radius: 0.8303433
m_Center: {x: 0, y: 0, z: 0}
---- !u!114 &8747099621875196907
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7167547457198401877}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- RotationSpeed: 1
- GridOffset: 0
- GridAttraction: 10
- Gravity: 1
- Drag: 0.05
- LaunchDrag: 0.2
--- !u!114 &1545255963217739444
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -165,6 +161,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3}
m_Name:
m_EditorClassIdentifier:
+ RotationSpeed: 1
LabelFadeDuration: 0.5
LabelPersistDuration: 3
LabelDisplayAngle: 15
@@ -178,10 +175,21 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7167547457198401877}
- serializedVersion: 2
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
@@ -204,6 +212,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 4002800527770282731}
m_Modifications:
- target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b,
@@ -327,6 +336,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3}
--- !u!114 &1928241908402748482 stripped
MonoBehaviour:
diff --git a/Assets/Prefabs/RPG/Pickups/Octahedron.prefab b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab
index 7ba7910d2..099083195 100644
--- a/Assets/Prefabs/RPG/Pickups/Octahedron.prefab
+++ b/Assets/Prefabs/RPG/Pickups/Octahedron.prefab
@@ -23,6 +23,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3932408193141279893}
+ serializedVersion: 2
m_LocalRotation: {x: 0.7069834, y: -0, z: -0, w: 0.7072302}
m_LocalPosition: {x: 0, y: 0.9264834, z: -0.0003232956}
m_LocalScale: {x: 1, y: 1, z: 1}
@@ -30,7 +31,6 @@ Transform:
m_Children:
- {fileID: 7372978312502119311}
m_Father: {fileID: 5807113421007930924}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &8555821447211356933
GameObject:
@@ -44,7 +44,6 @@ GameObject:
- component: {fileID: 4899765339662518078}
- component: {fileID: 1691511938472729356}
- component: {fileID: 3657818610818556929}
- - component: {fileID: 946329779588188460}
- component: {fileID: 7390748043139687254}
- component: {fileID: -4611973708976329780}
- component: {fileID: -8908388773057984787}
@@ -62,6 +61,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8555821447211356933}
+ serializedVersion: 2
m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302}
m_LocalPosition: {x: -0, y: 0, z: 2.7794502}
m_LocalScale: {x: 3, y: 3, z: 3}
@@ -69,7 +69,6 @@ Transform:
m_Children:
- {fileID: 2388751103296260666}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0}
--- !u!33 &4899765339662518078
MeshFilter:
@@ -96,6 +95,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -118,9 +122,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!135 &3657818610818556929
SphereCollider:
@@ -130,29 +136,19 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8555821447211356933}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 2
+ serializedVersion: 3
m_Radius: 0.75
m_Center: {x: 0, y: 0, z: 0}
---- !u!114 &946329779588188460
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8555821447211356933}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- RotationSpeed: 1
- GridOffset: 0
- GridAttraction: 10
- Gravity: 1
- Drag: 0.05
- LaunchDrag: 0.2
--- !u!114 &7390748043139687254
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -165,6 +161,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3}
m_Name:
m_EditorClassIdentifier:
+ RotationSpeed: 1
LabelFadeDuration: 0.5
LabelPersistDuration: 3
LabelDisplayAngle: 15
@@ -178,10 +175,21 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8555821447211356933}
- serializedVersion: 2
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
@@ -204,6 +212,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 2388751103296260666}
m_Modifications:
- target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b,
@@ -327,6 +336,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3}
--- !u!114 &3891726626588969535 stripped
MonoBehaviour:
diff --git a/Assets/Prefabs/RPG/Pickups/Scan Label.prefab b/Assets/Prefabs/RPG/Pickups/Scan Label.prefab
index dff141f55..62c129c2b 100644
--- a/Assets/Prefabs/RPG/Pickups/Scan Label.prefab
+++ b/Assets/Prefabs/RPG/Pickups/Scan Label.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -48,11 +48,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -74,9 +80,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &3085702413493447743
MonoBehaviour:
@@ -136,20 +144,23 @@ MonoBehaviour:
m_VerticalAlignment: 1024
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
@@ -164,8 +175,9 @@ MonoBehaviour:
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 2000937249754104238}
m_maskType: 0
- _SortingLayerID: 0
- _SortingOrder: 0
diff --git a/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab
index 26c2b96dd..6dad19967 100644
--- a/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab
+++ b/Assets/Prefabs/RPG/Pickups/Tetrahedron.prefab
@@ -23,6 +23,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2238948151922859802}
+ serializedVersion: 2
m_LocalRotation: {x: 0.7069834, y: -0, z: -0, w: 0.7072302}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
@@ -30,7 +31,6 @@ Transform:
m_Children:
- {fileID: 3300919539099916088}
m_Father: {fileID: 8414659055235772867}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7767746557817481743
GameObject:
@@ -44,7 +44,6 @@ GameObject:
- component: {fileID: 2868629223358676395}
- component: {fileID: 6959931328227918623}
- component: {fileID: 4540815661693075899}
- - component: {fileID: 4008709970769624704}
- component: {fileID: 7436534270673427838}
- component: {fileID: -6589342969031261525}
- component: {fileID: 5724758014884646323}
@@ -62,6 +61,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7767746557817481743}
+ serializedVersion: 2
m_LocalRotation: {x: -0.7069834, y: 0, z: 0, w: 0.7072302}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 3, y: 3, z: 3}
@@ -69,7 +69,6 @@ Transform:
m_Children:
- {fileID: 7682789761269032435}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: -89.98, y: 0, z: 0}
--- !u!33 &2868629223358676395
MeshFilter:
@@ -96,6 +95,11 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -118,9 +122,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!135 &4540815661693075899
SphereCollider:
@@ -130,29 +136,19 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7767746557817481743}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 2
+ serializedVersion: 3
m_Radius: 0.60371214
m_Center: {x: 0, y: 0, z: 0}
---- !u!114 &4008709970769624704
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7767746557817481743}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 737f47c158214f0995ba2835f040ed96, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- RotationSpeed: 1
- GridOffset: 0
- GridAttraction: 10
- Gravity: 1
- Drag: 0.05
- LaunchDrag: 0.2
--- !u!114 &7436534270673427838
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -165,6 +161,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0c18f67d85af44c2b5afc8ecd15ce960, type: 3}
m_Name:
m_EditorClassIdentifier:
+ RotationSpeed: 1
LabelFadeDuration: 0.5
LabelPersistDuration: 3
LabelDisplayAngle: 15
@@ -178,10 +175,21 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7767746557817481743}
- serializedVersion: 2
+ serializedVersion: 5
m_Mass: 1
- m_Drag: 0
- m_AngularDrag: 0.05
+ m_LinearDamping: 0
+ m_AngularDamping: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
@@ -204,6 +212,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 7682789761269032435}
m_Modifications:
- target: {fileID: 2945231343692618236, guid: e7877477dc889804ea9d04f7ffd08e9b,
@@ -327,6 +336,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e7877477dc889804ea9d04f7ffd08e9b, type: 3}
--- !u!224 &3300919539099916088 stripped
RectTransform:
diff --git a/Assets/Prefabs/RPG/Planets/Gas Giant.prefab b/Assets/Prefabs/RPG/Planets/Gas Giant.prefab
index 46ae7a3b1..de87b2a13 100644
--- a/Assets/Prefabs/RPG/Planets/Gas Giant.prefab
+++ b/Assets/Prefabs/RPG/Planets/Gas Giant.prefab
@@ -30,8 +30,6 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3973935122748960680}
- - {fileID: 3973935121058605868}
- - {fileID: 3973935122114073483}
- {fileID: 3973935121358855036}
m_Father: {fileID: 0}
m_RootOrder: 0
@@ -49,94 +47,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Body: {fileID: 3973935122748960683}
- GravityWell: {fileID: 3973935121058605871}
Icon: {fileID: 3973935121358855037}
Generator: {fileID: 0}
SunMaterial: {fileID: 3973935122748960685}
- GravityWaves: {fileID: 3973935122114073485}
---- !u!1 &3973935121058605867
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 3973935121058605868}
- - component: {fileID: 3973935121058605856}
- - component: {fileID: 3973935121058605871}
- m_Layer: 9
- m_Name: Gravity Well
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &3973935121058605868
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3973935121058605867}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 3973935120991099173}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &3973935121058605856
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3973935121058605867}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &3973935121058605871
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3973935121058605867}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 44a8bbb89acb4e34c9f41a9da5842bb4, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &3973935121358855035
GameObject:
m_ObjectHideFlags: 0
@@ -220,89 +133,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!1 &3973935122114073482
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 3973935122114073483}
- - component: {fileID: 3973935122114073486}
- - component: {fileID: 3973935122114073485}
- m_Layer: 10
- m_Name: Gravity Waves
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &3973935122114073483
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3973935122114073482}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 3973935120991099173}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &3973935122114073486
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3973935122114073482}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &3973935122114073485
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3973935122114073482}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 11fbaa87dcc7a3743a6bd3aa5c86e5ae, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &3973935122748960663
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/RPG/Planets/Planet.prefab b/Assets/Prefabs/RPG/Planets/Planet.prefab
index 336b3430b..afffe73c4 100644
--- a/Assets/Prefabs/RPG/Planets/Planet.prefab
+++ b/Assets/Prefabs/RPG/Planets/Planet.prefab
@@ -83,89 +83,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!1 &8859079004671924238
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 8859079004671924239}
- - component: {fileID: 8859079004671924339}
- - component: {fileID: 8859079004671924338}
- m_Layer: 9
- m_Name: Gravity Well
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &8859079004671924239
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8859079004671924238}
- m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 8859079004937162792}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &8859079004671924339
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8859079004671924238}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &8859079004671924338
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8859079004671924238}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 44a8bbb89acb4e34c9f41a9da5842bb4, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &8859079004937162791
GameObject:
m_ObjectHideFlags: 0
@@ -197,7 +114,6 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8859079005270853336}
- - {fileID: 8859079004671924239}
- {fileID: 8859079003226229097}
m_Father: {fileID: 0}
m_RootOrder: 0
@@ -215,7 +131,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Body: {fileID: 8859079005270853338}
- GravityWell: {fileID: 8859079004671924338}
Icon: {fileID: 8859079003226229098}
Generator: {fileID: -7153121627769399805}
--- !u!114 &-7153121627769399805
diff --git a/Assets/Prefabs/RPG/Planets/Sun.prefab b/Assets/Prefabs/RPG/Planets/Sun.prefab
index a7950f448..ebe0fa72f 100644
--- a/Assets/Prefabs/RPG/Planets/Sun.prefab
+++ b/Assets/Prefabs/RPG/Planets/Sun.prefab
@@ -30,8 +30,6 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7852221720971737233}
- - {fileID: 7852221720969441490}
- - {fileID: 7852221720741322892}
- {fileID: 7852221720816817928}
- {fileID: 7852221720964551245}
m_Father: {fileID: 0}
@@ -50,96 +48,11 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Body: {fileID: 7852221720971737229}
- GravityWell: {fileID: 7852221720969441484}
Icon: {fileID: 7852221720964551246}
Generator: {fileID: 0}
SunMaterial: {fileID: 7852221720971737234}
- GravityWaves: {fileID: 7852221720741322894}
FogTint: {fileID: 7852221720816817929}
Light: {fileID: 8064377225639657765}
---- !u!1 &7852221720741322899
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 7852221720741322892}
- - component: {fileID: 7852221720741322895}
- - component: {fileID: 7852221720741322894}
- m_Layer: 10
- m_Name: Gravity Waves
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &7852221720741322892
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7852221720741322899}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 7852221720480299767}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &7852221720741322895
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7852221720741322899}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &7852221720741322894
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7852221720741322899}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 11fbaa87dcc7a3743a6bd3aa5c86e5ae, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &7852221720816817935
GameObject:
m_ObjectHideFlags: 0
@@ -306,89 +219,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!1 &7852221720969441489
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 7852221720969441490}
- - component: {fileID: 7852221720969441485}
- - component: {fileID: 7852221720969441484}
- m_Layer: 9
- m_Name: Gravity Well
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &7852221720969441490
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7852221720969441489}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 7852221720480299767}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &7852221720969441485
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7852221720969441489}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &7852221720969441484
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7852221720969441489}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 44a8bbb89acb4e34c9f41a9da5842bb4, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &7852221720971737232
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/RPG/Wormhole 1.prefab b/Assets/Prefabs/RPG/Wormhole 1.prefab
index b03d01009..e1ca93be7 100644
--- a/Assets/Prefabs/RPG/Wormhole 1.prefab
+++ b/Assets/Prefabs/RPG/Wormhole 1.prefab
@@ -1,167 +1,5 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!1 &1826894967093516808
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1030590306481442051}
- - component: {fileID: 3216580199816124320}
- - component: {fileID: 3211969211988968959}
- m_Layer: 9
- m_Name: Gravity Well
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1030590306481442051
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1826894967093516808}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1024, y: 1024, z: 1024}
- m_Children: []
- m_Father: {fileID: 463084220523011477}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &3216580199816124320
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1826894967093516808}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &3211969211988968959
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1826894967093516808}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 244f3e4c0c030a24b8d7aa944895bdcf, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
---- !u!1 &3908760799087214860
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 581261949390603689}
- - component: {fileID: 987447324816385543}
- - component: {fileID: 3959510878930752720}
- m_Layer: 9
- m_Name: Gravity Waves
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &581261949390603689
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3908760799087214860}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 512, y: 512, z: 512}
- m_Children: []
- m_Father: {fileID: 463084220523011477}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &987447324816385543
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3908760799087214860}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &3959510878930752720
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3908760799087214860}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: ef2f6090d5cc14a4e9ce38def3bed9ac, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &4837153162502999620
GameObject:
m_ObjectHideFlags: 0
@@ -189,9 +27,6 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- - {fileID: 8222188360457572195}
- - {fileID: 1030590306481442051}
- - {fileID: 581261949390603689}
- {fileID: 8249320701965103923}
m_Father: {fileID: 0}
m_RootOrder: 0
@@ -277,84 +112,3 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!1 &7647029665738834910
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 8222188360457572195}
- - component: {fileID: 2468954688819198096}
- - component: {fileID: 8290522694236574882}
- m_Layer: 9
- m_Name: Gravity Pit
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &8222188360457572195
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7647029665738834910}
- m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 512, y: 512, z: 512}
- m_Children: []
- m_Father: {fileID: 463084220523011477}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
---- !u!33 &2468954688819198096
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7647029665738834910}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &8290522694236574882
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7647029665738834910}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: a9ef17c902709ce41a837c54b809184b, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
diff --git a/Assets/Prefabs/RTS/Entity.prefab b/Assets/Prefabs/RTS/Entity.prefab
index c981cb3fb..61a1a8eb7 100644
--- a/Assets/Prefabs/RTS/Entity.prefab
+++ b/Assets/Prefabs/RTS/Entity.prefab
@@ -10,7 +10,6 @@ GameObject:
m_Component:
- component: {fileID: 4644834953993757301}
- component: {fileID: 1859458984701215649}
- - component: {fileID: 3439515216706641237}
- component: {fileID: 3170441533209407059}
- component: {fileID: 3150651635148382191}
m_Layer: 0
@@ -30,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7667578565413050542}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -50,13 +49,21 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -64,6 +71,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -73,17 +81,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &3439515216706641237
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 235155884317602032}
- m_Mesh: {fileID: 0}
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!222 &3170441533209407059
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -107,16 +110,18 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Something just happened, now I''m telling you about it.
- Something just happened, now I''m telling you about it.'
+ Something
+ just happened, now I''m telling you about it.'
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad,
- type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -134,13 +139,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 2.5
m_fontSizeBase: 2.5
m_fontWeight: 400
@@ -148,62 +152,46 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 1026
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 1024
+ m_textAlignment: 65535
m_characterSpacing: 1.38
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 7.09
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 3150651635148382191}
- characterCount: 109
- spriteCount: 0
- spaceCount: 17
- wordCount: 18
- linkCount: 0
- lineCount: 2
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 1859458984701215649}
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_maskType: 0
--- !u!1 &7667578565016065614
GameObject:
@@ -232,12 +220,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7667578565016065614}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.05}
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7667578565413050542}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7667578565016065611
MeshFilter:
@@ -258,9 +247,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -272,6 +269,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -281,9 +279,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &7667578565016065609
MeshCollider:
m_ObjectHideFlags: 0
@@ -292,11 +293,19 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7667578565016065614}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 3
+ serializedVersion: 5
m_Convex: 0
- m_CookingOptions: 14
+ m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &7667578565016065610
MonoBehaviour:
@@ -334,15 +343,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7667578565413050543}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 5.38, y: 0.81, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7667578565016065613}
- {fileID: 7667578566386612334}
- {fileID: 4644834953993757301}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5800314421439145179
MonoBehaviour:
@@ -370,7 +380,6 @@ GameObject:
m_Component:
- component: {fileID: 7667578566386612334}
- component: {fileID: 7667578566386612330}
- - component: {fileID: 7667578566386612331}
- component: {fileID: 7667578566386612332}
- component: {fileID: 7667578566386612333}
m_Layer: 0
@@ -390,9 +399,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7667578565413050542}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -410,13 +419,21 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -424,6 +441,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -433,17 +451,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &7667578566386612331
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7667578566386612335}
- m_Mesh: {fileID: 0}
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!222 &7667578566386612332
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -467,6 +480,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -474,9 +489,8 @@ MonoBehaviour:
'
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad,
- type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -494,13 +508,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 2
m_fontSizeBase: 2
m_fontWeight: 400
@@ -508,60 +521,44 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 258
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 256
+ m_textAlignment: 65535
m_characterSpacing: 1.38
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 7667578566386612333}
- characterCount: 13
- spriteCount: 0
- spaceCount: 2
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 7667578566386612330}
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_maskType: 0
diff --git a/Assets/Prefabs/RTS/Planet.prefab b/Assets/Prefabs/RTS/Planet.prefab
index 09c80e995..b288f30c5 100644
--- a/Assets/Prefabs/RTS/Planet.prefab
+++ b/Assets/Prefabs/RTS/Planet.prefab
@@ -10,7 +10,6 @@ GameObject:
m_Component:
- component: {fileID: 1093865191529778971}
- component: {fileID: 956320758189013213}
- - component: {fileID: 6189203536709783203}
- component: {fileID: 688008198251117811}
- component: {fileID: 6196070888394201391}
m_Layer: 0
@@ -30,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5321404118521994135}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -50,13 +49,21 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -64,6 +71,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -73,17 +81,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &6189203536709783203
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4176311944753611310}
- m_Mesh: {fileID: 0}
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!222 &688008198251117811
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -107,16 +110,18 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Something just happened, now I''m telling you about it.
- Something just happened, now I''m telling you about it.'
+ Something
+ just happened, now I''m telling you about it.'
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad,
- type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -134,13 +139,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 2.5
m_fontSizeBase: 2.5
m_fontWeight: 400
@@ -148,62 +152,46 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 1026
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 1024
+ m_textAlignment: 65535
m_characterSpacing: 1.38
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 7.09
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 6196070888394201391}
- characterCount: 109
- spriteCount: 0
- spaceCount: 17
- wordCount: 18
- linkCount: 0
- lineCount: 2
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 956320758189013213}
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_maskType: 0
--- !u!1 &5321404118521994134
GameObject:
@@ -229,16 +217,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5321404118521994134}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 5.38, y: 0.81, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- - {fileID: 5321404120083801960}
- {fileID: 5321404118931821940}
- {fileID: 5321404119494867799}
- {fileID: 1093865191529778971}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5321404118521994133
MonoBehaviour:
@@ -256,7 +244,7 @@ MonoBehaviour:
Label: {fileID: 5321404119494867796}
Message: {fileID: 6196070888394201391}
Children: []
- GravityMesh: {fileID: 5321404120083801962}
+ GravityMesh: {fileID: 0}
--- !u!1 &5321404118931821943
GameObject:
m_ObjectHideFlags: 0
@@ -284,12 +272,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5321404118931821943}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.05}
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5321404118521994135}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5321404118931821938
MeshFilter:
@@ -310,9 +299,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -324,6 +321,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -333,9 +331,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &5321404118931821936
MeshCollider:
m_ObjectHideFlags: 0
@@ -344,11 +345,19 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5321404118931821943}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 3
+ serializedVersion: 5
m_Convex: 0
- m_CookingOptions: 14
+ m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &5321404118931821939
MonoBehaviour:
@@ -372,7 +381,6 @@ GameObject:
m_Component:
- component: {fileID: 5321404119494867799}
- component: {fileID: 5321404119494867795}
- - component: {fileID: 5321404119494867794}
- component: {fileID: 5321404119494867797}
- component: {fileID: 5321404119494867796}
m_Layer: 0
@@ -392,9 +400,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5321404118521994135}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -412,13 +420,21 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -426,6 +442,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -435,17 +452,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &5321404119494867794
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5321404119494867798}
- m_Mesh: {fileID: 0}
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!222 &5321404119494867797
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -469,6 +481,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -476,9 +490,8 @@ MonoBehaviour:
'
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad,
- type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -496,13 +509,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 2
m_fontSizeBase: 2
m_fontWeight: 400
@@ -510,137 +522,44 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 258
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 256
+ m_textAlignment: 65535
m_characterSpacing: 1.38
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 5321404119494867796}
- characterCount: 13
- spriteCount: 0
- spaceCount: 2
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 5321404119494867795}
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_maskType: 0
---- !u!1 &5321404120083801964
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 5321404120083801960}
- - component: {fileID: 5321404120083801963}
- - component: {fileID: 5321404120083801962}
- m_Layer: 8
- m_Name: Gravity Well
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &5321404120083801960
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5321404120083801964}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 10, y: 10, z: 1}
- m_Children: []
- m_Father: {fileID: 5321404118521994135}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!33 &5321404120083801963
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5321404120083801964}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &5321404120083801962
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5321404120083801964}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 44a8bbb89acb4e34c9f41a9da5842bb4, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 0
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
diff --git a/Assets/Prefabs/RTS/Ship.prefab b/Assets/Prefabs/RTS/Ship.prefab
index 34867f7bf..9bfde2c33 100644
--- a/Assets/Prefabs/RTS/Ship.prefab
+++ b/Assets/Prefabs/RTS/Ship.prefab
@@ -23,13 +23,14 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 717230718983664133}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: -0.396, z: 0.025000002}
m_LocalScale: {x: 1, y: 1.5, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6370514743660505460}
m_Father: {fileID: 752969731239391542}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &752969730562965460
GameObject:
@@ -55,15 +56,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 752969730562965460}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 5.38, y: 0.81, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 752969731239391542}
- {fileID: 752969731603226389}
- {fileID: 2376444423840420930}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &795352744099449573
MonoBehaviour:
@@ -109,13 +111,14 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 752969731239391541}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.05}
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6634195572313526987}
m_Father: {fileID: 752969730562965461}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &752969731239391536
MeshFilter:
@@ -136,9 +139,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -150,6 +161,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -159,9 +171,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!64 &752969731239391538
MeshCollider:
m_ObjectHideFlags: 0
@@ -170,11 +185,19 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 752969731239391541}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 3
+ serializedVersion: 5
m_Convex: 0
- m_CookingOptions: 14
+ m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &752969731239391537
MonoBehaviour:
@@ -198,7 +221,6 @@ GameObject:
m_Component:
- component: {fileID: 752969731603226389}
- component: {fileID: 752969731603226385}
- - component: {fileID: 752969731603226384}
- component: {fileID: 752969731603226391}
- component: {fileID: 752969731603226390}
m_Layer: 0
@@ -218,9 +240,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 752969730562965461}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -238,13 +260,21 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -252,6 +282,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -261,17 +292,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &752969731603226384
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 752969731603226388}
- m_Mesh: {fileID: 0}
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!222 &752969731603226391
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -295,6 +321,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -302,9 +330,8 @@ MonoBehaviour:
'
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad,
- type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -322,13 +349,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 2
m_fontSizeBase: 2
m_fontWeight: 400
@@ -336,62 +362,46 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 258
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 256
+ m_textAlignment: 65535
m_characterSpacing: 1.38
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 752969731603226390}
- characterCount: 13
- spriteCount: 0
- spaceCount: 2
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 752969731603226385}
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_maskType: 0
--- !u!1 &1383583254418650531
GameObject:
@@ -418,12 +428,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1383583254418650531}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.114, y: 0, z: 0}
m_LocalScale: {x: 0.3, y: 0.3, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6634195572313526987}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
--- !u!33 &2644584120131549798
MeshFilter:
@@ -444,9 +455,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -458,6 +477,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -467,9 +487,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &8284500064616352456
GameObject:
m_ObjectHideFlags: 0
@@ -480,7 +503,6 @@ GameObject:
m_Component:
- component: {fileID: 2376444423840420930}
- component: {fileID: 9122382316357193139}
- - component: {fileID: 2978801183465297864}
- component: {fileID: 7740350830631187417}
- component: {fileID: 2269191731601446379}
m_Layer: 0
@@ -500,9 +522,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 752969730562965461}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -520,13 +542,21 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- - {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
+ - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -534,6 +564,7 @@ MeshRenderer:
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
@@ -543,17 +574,12 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
---- !u!33 &2978801183465297864
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8284500064616352456}
- m_Mesh: {fileID: 0}
+ m_MaskInteraction: 0
+ m_AdditionalVertexStreams: {fileID: 0}
--- !u!222 &7740350830631187417
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -577,16 +603,18 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Something just happened, now I''m telling you about it.
- Something just happened, now I''m telling you about it.'
+ Something
+ just happened, now I''m telling you about it.'
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 21677577810600300, guid: ef74c4c30ca5ced4489f28b914006aad,
- type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -604,13 +632,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 2.5
m_fontSizeBase: 2.5
m_fontWeight: 400
@@ -618,60 +645,44 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 1026
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 1024
+ m_textAlignment: 65535
m_characterSpacing: 1.38
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 7.09
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 2269191731601446379}
- characterCount: 109
- spriteCount: 0
- spaceCount: 17
- wordCount: 18
- linkCount: 0
- lineCount: 2
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 9122382316357193139}
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_maskType: 0
diff --git a/Assets/Prefabs/UI/Action Slot.prefab b/Assets/Prefabs/UI/Action Slot.prefab
index 6ecf19406..acfc2f263 100644
--- a/Assets/Prefabs/UI/Action Slot.prefab
+++ b/Assets/Prefabs/UI/Action Slot.prefab
@@ -31,7 +31,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -105,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -181,7 +183,6 @@ RectTransform:
- {fileID: 8334150341178146430}
- {fileID: 8334150340826609675}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -350,7 +351,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -426,7 +426,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -502,7 +501,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -578,7 +576,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -654,7 +651,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -728,20 +724,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -790,7 +789,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -864,20 +862,23 @@ MonoBehaviour:
m_VerticalAlignment: 1024
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -926,7 +927,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8334150340270499360}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/Choice.prefab b/Assets/Prefabs/UI/Choice.prefab
index 7aff99027..5624bd6ff 100644
--- a/Assets/Prefabs/UI/Choice.prefab
+++ b/Assets/Prefabs/UI/Choice.prefab
@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 1388299342124750210}
- component: {fileID: 7958013063086106696}
m_Layer: 5
- m_Name: TMP SubMeshUI [UbuntuMono-R SDF + LiberationSans SDF Atlas]
+ m_Name: 'TMP SubMeshUI [UbuntuMono-R SDF + LiberationSans SDF Atlas]'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -27,9 +27,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3385051013345111086}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -76,10 +76,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1388299342124750210}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -152,20 +152,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Context Menu Option.prefab b/Assets/Prefabs/UI/Context Menu Option.prefab
index 77cbd95e0..ccaca26d5 100644
--- a/Assets/Prefabs/UI/Context Menu Option.prefab
+++ b/Assets/Prefabs/UI/Context Menu Option.prefab
@@ -32,11 +32,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2147126713793274338}
- {fileID: 1944744018361081348}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -202,9 +202,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2147126713262799480}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -278,20 +278,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -357,9 +360,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2147126713262799480}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
diff --git a/Assets/Prefabs/UI/Corporation Selection.prefab b/Assets/Prefabs/UI/Corporation Selection.prefab
index 0e983e9be..b9dda795c 100644
--- a/Assets/Prefabs/UI/Corporation Selection.prefab
+++ b/Assets/Prefabs/UI/Corporation Selection.prefab
@@ -29,10 +29,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3643881634033459408}
m_Father: {fileID: 3643881633437836137}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -62,6 +62,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -89,13 +91,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 12
m_fontSizeBase: 16
m_fontWeight: 400
@@ -103,61 +104,42 @@ MonoBehaviour:
m_fontSizeMin: 12
m_fontSizeMax: 20
m_fontStyle: 0
- m_textAlignment: 514
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 512
+ m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 3643881633221182914}
- characterCount: 212
- spriteCount: 0
- spaceCount: 31
- wordCount: 32
- linkCount: 0
- lineCount: 181
- pageCount: 1
- materialCount: 2
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 3643881634033459409}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &3643881633221182915
@@ -169,7 +151,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881633221182924}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
@@ -212,6 +194,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3643881633927103020}
- {fileID: 3643881634854544289}
@@ -219,7 +202,6 @@ RectTransform:
- {fileID: 3643881634695350169}
- {fileID: 3643881634325817956}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -235,7 +217,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881633437836136}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
@@ -255,7 +237,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881633437836136}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
@@ -269,6 +251,9 @@ MonoBehaviour:
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 1
+ m_ChildScaleWidth: 0
+ m_ChildScaleHeight: 0
+ m_ReverseArrangement: 0
--- !u!222 &3643881633437836141
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -286,12 +271,14 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881633437836136}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.29125005, b: 0.699, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -304,6 +291,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &6925424662664426412
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -313,11 +301,12 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881633437836136}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -327,17 +316,20 @@ MonoBehaviour:
m_NormalColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 1}
m_HighlightedColor: {r: 0.8018868, g: 0.8018868, b: 0.8018868, a: 1}
m_PressedColor: {r: 1, g: 1, b: 1, a: 1}
+ m_SelectedColor: {r: 0.8018868, g: 0.8018868, b: 0.8018868, a: 1}
m_DisabledColor: {r: 0.301, g: 0.301, b: 0.301, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3643881633437836140}
@@ -390,9 +382,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3643881633437836137}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -422,6 +414,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -447,13 +441,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 18
m_fontSizeBase: 48
m_fontWeight: 400
@@ -461,61 +454,42 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 514
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 512
+ m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 3643881633927103010}
- characterCount: 17
- spriteCount: 0
- spaceCount: 1
- wordCount: 2
- linkCount: 0
- lineCount: 16
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &3643881633927103021
@@ -527,7 +501,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881633927103023}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
@@ -548,9 +522,8 @@ GameObject:
m_Component:
- component: {fileID: 3643881634033459408}
- component: {fileID: 3643881634033459414}
- - component: {fileID: 3643881634033459409}
m_Layer: 5
- m_Name: TMP SubMeshUI [Ubuntu-R SDF Material + LiberationSans SDF Atlas]
+ m_Name: 'TMP SubMeshUI [Ubuntu-R SDF Material + LiberationSans SDF Atlas]'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -566,9 +539,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3643881633221182925}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -583,33 +556,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3643881634033459411}
m_CullTransparentMesh: 0
---- !u!114 &3643881634033459409
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3643881634033459411}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
- m_spriteAsset: {fileID: 0}
- m_material: {fileID: 0}
- m_sharedMaterial: {fileID: 0}
- m_isDefaultMaterial: 0
- m_padding: 8.5625
- m_canvasRenderer: {fileID: 3643881634033459414}
- m_TextComponent: {fileID: 3643881633221182914}
- m_materialReferenceIndex: 1
--- !u!1 &3643881634325817959
GameObject:
m_ObjectHideFlags: 0
@@ -639,9 +585,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3643881633437836137}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -665,12 +611,14 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634325817959}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -683,6 +631,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &3643881634325817957
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -692,7 +641,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634325817959}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
@@ -733,9 +682,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3643881634854544289}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -759,12 +708,14 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634576849061}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -777,6 +728,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &3643881634576849048
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -786,7 +738,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634576849061}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -1254083943, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3}
m_Name:
m_EditorClassIdentifier:
m_AspectMode: 1
@@ -800,7 +752,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634576849061}
m_Enabled: 0
m_EditorHideFlags: 0
- m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
@@ -834,9 +786,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3643881633437836137}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -860,12 +812,14 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634695350168}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -878,6 +832,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &3643881634695350174
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -887,7 +842,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634695350168}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
@@ -926,10 +881,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3643881634576849050}
m_Father: {fileID: 3643881633437836137}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -945,7 +900,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634854544288}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
@@ -965,7 +920,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3643881634854544288}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
@@ -979,3 +934,6 @@ MonoBehaviour:
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 0
+ m_ChildScaleWidth: 0
+ m_ChildScaleHeight: 0
+ m_ReverseArrangement: 0
diff --git a/Assets/Prefabs/UI/Dropdown Option.prefab b/Assets/Prefabs/UI/Dropdown Option.prefab
index 0f99f8b8a..a93c5f568 100644
--- a/Assets/Prefabs/UI/Dropdown Option.prefab
+++ b/Assets/Prefabs/UI/Dropdown Option.prefab
@@ -30,11 +30,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5288995275525413887}
- {fileID: 4420144871448733516}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -103,6 +103,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -161,9 +162,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4420144871272692262}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -237,20 +238,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -317,9 +321,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4420144871272692262}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/Flat InputField.prefab b/Assets/Prefabs/UI/Flat InputField.prefab
index f5748ed7b..9e59ba224 100644
--- a/Assets/Prefabs/UI/Flat InputField.prefab
+++ b/Assets/Prefabs/UI/Flat InputField.prefab
@@ -28,11 +28,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4451361955953725104}
- {fileID: 4451361956030022757}
m_Father: {fileID: 4451361956630297310}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -89,9 +89,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4451361954557856253}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -164,20 +164,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -223,9 +226,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4451361954557856253}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -298,20 +301,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 3
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -358,10 +364,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4451361954557856253}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -470,10 +476,13 @@ MonoBehaviour:
m_GlobalFontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
+ m_KeepTextSelectionVisible: 0
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
+ isAlert: 0
m_InputValidator: {fileID: 0}
+ m_ShouldActivateOnSelect: 1
--- !u!114 &3109909670730689337
MonoBehaviour:
m_ObjectHideFlags: 0
diff --git a/Assets/Prefabs/UI/Input Display Container.prefab b/Assets/Prefabs/UI/Input Display Container.prefab
index 20f1b6c1a..e0fe5c833 100644
--- a/Assets/Prefabs/UI/Input Display Container.prefab
+++ b/Assets/Prefabs/UI/Input Display Container.prefab
@@ -26,10 +26,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543201409287275}
m_Father: {fileID: 3575543199475698844}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -64,9 +64,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543201164511461}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -138,13 +138,13 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543199328406134}
- {fileID: 3575543201062286834}
- {fileID: 3575543199601288280}
- {fileID: 3575543201335647258}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.5}
@@ -217,9 +217,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200853098928}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -292,6 +292,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8, y: 0.8, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543201164511461}
- {fileID: 3575543200709404420}
@@ -299,7 +300,6 @@ RectTransform:
- {fileID: 3575543200853098928}
- {fileID: 3575543200736016708}
m_Father: {fileID: 3575543199475698844}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -373,11 +373,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543200370154277}
- {fileID: 3575543199949252307}
m_Father: {fileID: 3575543201062286834}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -465,9 +465,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543199809032539}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -534,9 +534,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200370154277}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -616,13 +616,13 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543200306509116}
- {fileID: 3575543201356857812}
- {fileID: 3575543201337423529}
- {fileID: 3575543200656285771}
m_Father: {fileID: 3575543199809032539}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -743,6 +743,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3575543200370154281
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -790,10 +791,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543200396461816}
m_Father: {fileID: 3575543199601288280}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -905,6 +906,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3575543200394488151
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -957,9 +959,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200394488147}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1032,9 +1034,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200978094812}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1108,20 +1110,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1167,9 +1172,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200370154277}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 1}
@@ -1243,20 +1248,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1302,9 +1310,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200736016708}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1384,10 +1392,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543201305645094}
m_Father: {fileID: 3575543199601288280}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1499,6 +1507,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3575543200709404424
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -1558,10 +1567,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543200691046844}
m_Father: {fileID: 3575543199601288280}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1673,6 +1682,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3575543200736016712
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -1732,10 +1742,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543199594005114}
m_Father: {fileID: 3575543199601288280}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1847,6 +1857,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3575543200853098932
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -1899,9 +1910,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543201062286834}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1967,10 +1978,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543200538069944}
m_Father: {fileID: 3575543201062286834}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -2031,12 +2042,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543200978094812}
- {fileID: 3575543199809032539}
- {fileID: 3575543200860056044}
m_Father: {fileID: 3575543199475698844}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -2117,9 +2128,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543201335647258}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -2221,20 +2232,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2338,10 +2352,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543199395697427}
m_Father: {fileID: 3575543199601288280}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -2453,6 +2467,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3575543201164511465
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -2505,9 +2520,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200709404420}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2578,10 +2593,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3575543201132091707}
m_Father: {fileID: 3575543199475698844}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2616,9 +2631,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200370154277}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.5}
@@ -2692,20 +2707,23 @@ MonoBehaviour:
m_VerticalAlignment: 1024
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2751,9 +2769,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543200370154277}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2827,9 +2845,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3575543199328406134}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/Inventory.prefab b/Assets/Prefabs/UI/Inventory.prefab
index 0addea4f8..dd6baefd6 100644
--- a/Assets/Prefabs/UI/Inventory.prefab
+++ b/Assets/Prefabs/UI/Inventory.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4075091371340814903}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -104,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -163,9 +166,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4075091371340814903}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -239,20 +242,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -300,9 +306,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6584545650613466935}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -376,20 +382,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -497,10 +506,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630452912159027}
m_Father: {fileID: 2279630453233804081}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -535,9 +544,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2279630452881931921}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -609,12 +618,12 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630452951644481}
- {fileID: 2279630453233804081}
- {fileID: 2279630454002795611}
m_Father: {fileID: 2279630453886260053}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -677,10 +686,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630452592903581}
m_Father: {fileID: 2279630454002795611}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -715,9 +724,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2279630452357787793}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -791,10 +800,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630453710142155}
m_Father: {fileID: 2279630452842594753}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -881,9 +890,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6584545650613466935}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -977,10 +986,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630452357787793}
m_Father: {fileID: 2279630452842594753}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1108,9 +1117,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2279630454000268454}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1203,6 +1212,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SuppressDisable: 0
--- !u!114 &3026868749259999386
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -1255,9 +1265,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6584545650613466935}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1331,20 +1341,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1390,11 +1403,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5904147203112258852}
- {fileID: 2279630454000268454}
m_Father: {fileID: 2279630452951644481}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1468,12 +1481,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6584545650613466935}
- {fileID: 2279630452842594753}
- {fileID: 4075091371340814903}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1493,6 +1506,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Dialog: {fileID: 0}
+ DragParent: {fileID: 0}
Flip: 0
Settings: {fileID: 0}
GameManager: {fileID: 0}
@@ -2312,6 +2326,7 @@ MonoBehaviour:
CellBackgroundColor: {r: 0, g: 0, b: 0, a: 0.9019608}
MinTempRange: 1
DoubleClickTime: 0.5
+ HitDamageThreshold: 1
EmptyCells: []
--- !u!222 &6932930312706461541
CanvasRenderer:
@@ -2379,11 +2394,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630453345861720}
- {fileID: 2862553520485687858}
m_Father: {fileID: 2279630453710142155}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -2451,10 +2466,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2279630452881931921}
m_Father: {fileID: 2279630452842594753}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -2574,13 +2589,13 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 25087979752144322}
- {fileID: 6451840322166179141}
- {fileID: 8682495930185187424}
- {fileID: 1941003311334506942}
m_Father: {fileID: 2279630453886260053}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -2616,10 +2631,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5788397503820000463}
m_Father: {fileID: 4075091371340814903}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2704,6 +2719,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4397116930423727094}
- {fileID: 2279630453679143107}
@@ -2712,7 +2728,6 @@ RectTransform:
- {fileID: 5683613523479270443}
- {fileID: 6462754505713931446}
m_Father: {fileID: 2279630453886260053}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -2773,9 +2788,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 25087979752144322}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2848,9 +2863,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2279630454000268454}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2926,9 +2941,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6584545650613466935}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3082,9 +3097,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3031152863755518086}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -3236,9 +3251,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2279630453710142155}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3327,10 +3342,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8871154407653395989}
m_Father: {fileID: 6584545650613466935}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -3385,9 +3400,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4075091371340814903}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -3462,9 +3477,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6584545650613466935}
- m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3540,20 +3555,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Main Menu Canvas.prefab b/Assets/Prefabs/UI/Main Menu Canvas.prefab
index 866d5fb33..e185d1911 100644
--- a/Assets/Prefabs/UI/Main Menu Canvas.prefab
+++ b/Assets/Prefabs/UI/Main Menu Canvas.prefab
@@ -29,10 +29,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 350889891057474423}
m_Father: {fileID: 350889891632477145}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -118,9 +118,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 350889892050671116}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -193,9 +193,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 350889890423887027}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -270,10 +270,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 350889892050671116}
m_Father: {fileID: 350889891632477145}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -366,11 +366,11 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 350889890423887027}
- {fileID: 350889891628991064}
m_Father: {fileID: 7329274282942065572}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -461,10 +461,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 350889890962861326}
m_Father: {fileID: 350889891628991064}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -500,9 +500,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8184616833802884024}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -596,11 +596,11 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 0.6666667}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2261466211211207212}
- {fileID: 7963881274223503427}
m_Father: {fileID: 4533226043457584179}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -695,12 +695,12 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 0.6666667}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4533226043526995714}
- {fileID: 4533226043829246279}
- {fileID: 4533226044611060154}
m_Father: {fileID: 4533226043457584179}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -788,8 +788,9 @@ MonoBehaviour:
type: 3}
StatSheet: {fileID: 0}
CurveField: {fileID: 0}
+ WeaponGroupAssignment: {fileID: 0}
Content: {fileID: 4533226043449861658}
- SelectedChild: {fileID: 0}
+ DragParent: {fileID: 0}
GameManager: {fileID: 0}
CancelClickCatcher: {fileID: 725430339668194415}
ButtonGroup: {fileID: 4533226044611060155}
@@ -827,13 +828,13 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8079387348638243065}
- {fileID: 7201272822408223301}
- {fileID: 4533226043449861658}
- {fileID: 8184616833802884024}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -857,7 +858,9 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
+ m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
@@ -913,6 +916,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3d7c7b928d043a3449b93bce9de03d1c, type: 3}
m_Name:
m_EditorClassIdentifier:
+ CloudRenderer: {fileID: 0}
Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2}
Dialog: {fileID: 4533226043449861657}
PanelPrototype: {fileID: 7329274282942065594}
@@ -949,9 +953,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4533226043449861658}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1044,9 +1048,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4533226043449861658}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1120,20 +1124,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1178,9 +1185,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4533226044611060154}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1234,12 +1241,12 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2381176780008325752}
- {fileID: 4533226043924106331}
- {fileID: 2381176779129949493}
m_Father: {fileID: 4533226043449861658}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1298,10 +1305,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7329274282942065572}
m_Father: {fileID: 4533226043457584179}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1337,9 +1344,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.6666667, y: 0.6666667, z: 0.6666667}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4533226043457584179}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1428,11 +1435,11 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7329274283166941234}
- {fileID: 350889891632477145}
m_Father: {fileID: 8079387348638243065}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -1481,8 +1488,9 @@ MonoBehaviour:
StatSheet: {fileID: 3416329628306957711, guid: 4f75723ed178a084e813965e84825bd4,
type: 3}
CurveField: {fileID: 0}
+ WeaponGroupAssignment: {fileID: 0}
Content: {fileID: 350889891057474423}
- SelectedChild: {fileID: 0}
+ DragParent: {fileID: 0}
GameManager: {fileID: 0}
--- !u!222 &7329274282942065577
CanvasRenderer:
@@ -1572,9 +1580,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7329274282942065572}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1650,20 +1658,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: -20
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -1744,9 +1755,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8184616833802884024}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1806,6 +1817,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 4533226044611060154}
m_Modifications:
- target: {fileID: 422905925398675622, guid: 2758dfa2744d7ad4d8877545189d116e,
@@ -1888,6 +1900,11 @@ PrefabInstance:
propertyPath: m_firstOverflowCharacterIndex
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e,
+ type: 3}
+ propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+ value: 1801810542
+ objectReference: {fileID: 0}
- target: {fileID: 2297648055057363568, guid: 2758dfa2744d7ad4d8877545189d116e,
type: 3}
propertyPath: m_Pivot.x
@@ -2079,25 +2096,10 @@ PrefabInstance:
value: Confirm Button
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3}
---- !u!114 &2967358985619754986 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e,
- type: 3}
- m_PrefabInstance: {fileID: 4533226044147941189}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!224 &2381176779129949493 stripped
-RectTransform:
- m_CorrespondingSourceObject: {fileID: 2297648055057363568, guid: 2758dfa2744d7ad4d8877545189d116e,
- type: 3}
- m_PrefabInstance: {fileID: 4533226044147941189}
- m_PrefabAsset: {fileID: 0}
--- !u!114 &1044359408896957406 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e,
@@ -2110,11 +2112,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!224 &2381176779129949493 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 2297648055057363568, guid: 2758dfa2744d7ad4d8877545189d116e,
+ type: 3}
+ m_PrefabInstance: {fileID: 4533226044147941189}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &2967358985619754986 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e,
+ type: 3}
+ m_PrefabInstance: {fileID: 4533226044147941189}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1001 &4533226044873879560
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 4533226044611060154}
m_Modifications:
- target: {fileID: 422905925398675622, guid: 2758dfa2744d7ad4d8877545189d116e,
@@ -2202,6 +2223,11 @@ PrefabInstance:
propertyPath: m_firstOverflowCharacterIndex
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 1713457305180270767, guid: 2758dfa2744d7ad4d8877545189d116e,
+ type: 3}
+ propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+ value: 1801810542
+ objectReference: {fileID: 0}
- target: {fileID: 2297648055057363568, guid: 2758dfa2744d7ad4d8877545189d116e,
type: 3}
propertyPath: m_Pivot.x
@@ -2393,7 +2419,22 @@ PrefabInstance:
value: Cancel Button
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3}
+--- !u!114 &1044359407629948051 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e,
+ type: 3}
+ m_PrefabInstance: {fileID: 4533226044873879560}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!224 &2381176780008325752 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2297648055057363568, guid: 2758dfa2744d7ad4d8877545189d116e,
@@ -2412,15 +2453,3 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
---- !u!114 &1044359407629948051 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 3501282941175030939, guid: 2758dfa2744d7ad4d8877545189d116e,
- type: 3}
- m_PrefabInstance: {fileID: 4533226044873879560}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
- m_Name:
- m_EditorClassIdentifier:
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab
index 84e750891..9fc83e309 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Bool Field.prefab
@@ -35,7 +35,6 @@ RectTransform:
- {fileID: 7661950295498381397}
- {fileID: 7661950294707789146}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -152,7 +151,6 @@ RectTransform:
m_Children:
- {fileID: 7661950295217243554}
m_Father: {fileID: 7661950294707789146}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -230,7 +228,6 @@ RectTransform:
m_Children:
- {fileID: 7661950294137596689}
m_Father: {fileID: 7661950293931311387}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -350,7 +347,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7661950294137596689}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.2, y: 0.2}
m_AnchorMax: {x: 0.8, y: 0.8}
@@ -427,7 +423,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7661950293931311387}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -501,20 +496,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab
index bc492fa08..2515f64a0 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Button Field.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 790814198576895811}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -104,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -165,10 +168,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 790814197411605233}
m_Father: {fileID: 6566784227922820063}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -307,11 +310,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6566784228232816309}
- {fileID: 790814198576895811}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -426,9 +429,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6566784227922820063}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -502,20 +505,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab
index ea233162a..5cbdc480d 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Curve Field.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5150349054046905327}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.25}
m_AnchorMax: {x: 0.5, y: 0.25}
@@ -103,9 +103,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5150349054046905327}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0.25}
@@ -179,9 +179,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4525093026741206958}
- m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -255,20 +255,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -335,9 +338,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4525093026741206958}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -411,20 +414,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -490,9 +496,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4525093026741206958}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -566,9 +572,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4525093026741206958}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
@@ -642,20 +648,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -722,9 +731,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4525093026741206958}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -798,20 +807,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -877,11 +889,11 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2039464565}
- {fileID: 2008487938}
m_Father: {fileID: 4525093026741206958}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -964,6 +976,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5150349054046905327}
- {fileID: 8457868409217303238}
@@ -972,7 +985,6 @@ RectTransform:
- {fileID: 5150349052900313153}
- {fileID: 7117984985042789648}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab
index 61980ca29..4634a2775 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Enum Field.prefab
@@ -31,7 +31,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1444953513611246322}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -105,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -171,7 +173,6 @@ RectTransform:
- {fileID: 1444953513591056483}
- {fileID: 1444953514355799430}
m_Father: {fileID: 1444953514731475974}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -312,7 +313,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1444953514731475974}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -386,20 +386,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -468,7 +471,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1444953513611246322}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -548,7 +550,6 @@ RectTransform:
- {fileID: 1444953513817938006}
- {fileID: 1444953513611246322}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab
index 112cd3b81..66fbba81a 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Increment Field.prefab
@@ -33,7 +33,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2544338102157427055}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -169,7 +168,6 @@ RectTransform:
- {fileID: 7863247503782211248}
- {fileID: 8483308900631515678}
m_Father: {fileID: 6770904480725292323}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -228,7 +226,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6770904480725292323}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -302,20 +299,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -388,7 +388,6 @@ RectTransform:
- {fileID: 6770904480229951561}
- {fileID: 2544338102157427055}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -508,7 +507,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2544338102157427055}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -642,7 +640,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2544338102157427055}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -716,20 +713,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab
index bdcedb118..afc077a82 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Input Field.prefab
@@ -35,7 +35,6 @@ RectTransform:
- {fileID: 23155009713813574}
- {fileID: 8734896053364945145}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -152,7 +151,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 23155009655760172}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -226,20 +224,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -308,7 +309,6 @@ RectTransform:
m_Children:
- {fileID: 5938949450847760329}
m_Father: {fileID: 23155009655760172}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -367,7 +367,6 @@ RectTransform:
- {fileID: 5938949451508194215}
- {fileID: 5938949451316023666}
m_Father: {fileID: 5938949450847760329}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -422,7 +421,6 @@ RectTransform:
m_Children:
- {fileID: 5938949450758544618}
m_Father: {fileID: 8734896053364945145}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -561,10 +559,13 @@ MonoBehaviour:
m_GlobalFontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
+ m_KeepTextSelectionVisible: 0
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
+ isAlert: 0
m_InputValidator: {fileID: 0}
+ m_ShouldActivateOnSelect: 1
--- !u!114 &1618696626055083017
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -616,7 +617,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5938949450758544618}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -690,20 +690,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 3
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -752,7 +755,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5938949450758544618}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -826,20 +828,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab
index c9200c393..18872559c 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Progress Field.prefab
@@ -31,7 +31,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8181761431199775037}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -107,7 +106,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8181761431199775037}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -187,7 +185,6 @@ RectTransform:
- {fileID: 3301729265189646952}
- {fileID: 8626591645481506733}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -304,7 +301,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3301729265155698787}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -378,20 +374,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -460,7 +459,6 @@ RectTransform:
- {fileID: 4052465884214141673}
- {fileID: 1684719062263664779}
m_Father: {fileID: 8626591645481506733}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -499,7 +497,6 @@ RectTransform:
m_Children:
- {fileID: 8181761431199775037}
m_Father: {fileID: 3301729265155698787}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab
index 6ec1c92cc..599a29f50 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Property Label.prefab
@@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2677123916507168719}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -106,20 +105,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -192,7 +194,6 @@ RectTransform:
- {fileID: 2677123916028371621}
- {fileID: 6602089867192183683}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -309,7 +310,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2677123916507168719}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -383,20 +383,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab
index fd7063dc1..6c64288ee 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Property.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9159917045172241900}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -107,20 +107,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -188,10 +191,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9159917045079857286}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab
index 5821edb01..f195ba08f 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Ranged Float Field.prefab
@@ -31,7 +31,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7146463267720429741}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -106,7 +105,6 @@ RectTransform:
m_Children:
- {fileID: 3436413162678517982}
m_Father: {fileID: 7146463267720429741}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -144,7 +142,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7282863425963355709}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -219,7 +216,6 @@ RectTransform:
m_Children:
- {fileID: 287045173602649995}
m_Father: {fileID: 7146463267720429741}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -258,7 +254,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3222204141728529077}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -353,7 +348,6 @@ RectTransform:
- {fileID: 4127690186274268520}
- {fileID: 7146463267720429741}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -490,7 +484,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4127690186169542499}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -564,20 +557,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -649,7 +645,6 @@ RectTransform:
- {fileID: 7282863425963355709}
- {fileID: 3222204141728529077}
m_Father: {fileID: 4127690186169542499}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab
index fcbe746fb..4e3669a40 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Stat.prefab
@@ -29,11 +29,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 215031283457978355}
- {fileID: 6087143909423189777}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -120,9 +120,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 169101331738242590}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.5}
@@ -196,20 +196,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -255,9 +258,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 169101331738242590}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 1}
@@ -331,20 +334,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab
index 95677030e..a27bdfb46 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7093141058661617964}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -105,20 +105,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -208,9 +211,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7093141058661617964}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -288,11 +291,11 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8854537499952373070}
- {fileID: 8854537499097178562}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab
index 77e704a12..c0ed5af9b 100644
--- a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7017012055636029233}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 1}
@@ -104,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -162,9 +165,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7017012055636029233}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -228,11 +231,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7044292112900681436}
- {fileID: 4617351576505394386}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab
index 29d281e03..d51addf62 100644
--- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 257019180622654292}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -103,9 +103,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 257019180101986795}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -181,10 +181,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 257019179596293679}
m_Father: {fileID: 257019181563268737}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -268,10 +268,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 257019179550429270}
m_Father: {fileID: 257019181577240320}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -306,11 +306,11 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 257019180101986795}
- {fileID: 257019181577240320}
m_Father: {fileID: 7131821417165215484}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -383,10 +383,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 257019180622654292}
m_Father: {fileID: 257019181563268737}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -479,9 +479,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7131821417165215484}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -575,9 +575,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7131821417165215484}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -651,20 +651,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -731,12 +734,12 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7131821417072393578}
- {fileID: 7131821415452796888}
- {fileID: 257019181563268737}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -786,10 +789,10 @@ MonoBehaviour:
type: 3}
CurveField: {fileID: 3018914896466881005, guid: 168887bbd3de8c74eb3f06d3d46dda4e,
type: 3}
- Content: {fileID: 257019179596293679}
WeaponGroupAssignment: {fileID: 8654742830357802168, guid: fbe6efeb205a68946af7a6f1cb8b9904,
type: 3}
- SelectedChild: {fileID: 0}
+ Content: {fileID: 257019179596293679}
+ DragParent: {fileID: 0}
GameManager: {fileID: 0}
--- !u!222 &7131821417165215473
CanvasRenderer:
diff --git a/Assets/Prefabs/UI/Properties Panel/Property Button.prefab b/Assets/Prefabs/UI/Properties Panel/Property Button.prefab
index 342160309..440b6cbc2 100644
--- a/Assets/Prefabs/UI/Properties Panel/Property Button.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Property Button.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1613450655389604793}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -106,20 +106,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -187,11 +190,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7085828711539161696}
- {fileID: 1613450655044732627}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -319,9 +322,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1613450655389604793}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab
index f776c2be8..e2c9744d6 100644
--- a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2088721703295321218}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -105,20 +105,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -186,12 +189,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6724740944390240338}
- {fileID: 2088721703192714102}
- {fileID: 2118837324186690404}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -283,8 +286,12 @@ MonoBehaviour:
type: 3}
IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082,
type: 3}
+ StatSheet: {fileID: 0}
+ CurveField: {fileID: 0}
+ WeaponGroupAssignment: {fileID: 0}
Content: {fileID: 0}
- SelectedChild: {fileID: 0}
+ DragParent: {fileID: 0}
+ GameManager: {fileID: 0}
FoldoutIcon: {fileID: 6485458701090981364}
FoldoutRotationDamping: 10
Button: {fileID: 2066200247}
@@ -364,9 +371,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2088721703295321218}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -460,9 +467,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2088721703295321218}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/Properties Panel/Property List.prefab b/Assets/Prefabs/UI/Properties Panel/Property List.prefab
index a9a55945f..d99bbf8c3 100644
--- a/Assets/Prefabs/UI/Properties Panel/Property List.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Property List.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2088721703295321218}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -105,20 +105,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -186,12 +189,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6724740944390240338}
- {fileID: 2088721703192714102}
- {fileID: 2118837324186690404}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -283,8 +286,12 @@ MonoBehaviour:
type: 3}
IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082,
type: 3}
+ StatSheet: {fileID: 0}
+ CurveField: {fileID: 0}
+ WeaponGroupAssignment: {fileID: 0}
Content: {fileID: 0}
- SelectedChild: {fileID: 0}
+ DragParent: {fileID: 0}
+ GameManager: {fileID: 0}
FoldoutIcon: {fileID: 6485458701090981364}
FoldoutRotationDamping: 10
Button: {fileID: 2066200247}
@@ -364,9 +371,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2088721703295321218}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -460,9 +467,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2088721703295321218}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/Properties Panel/Property Section.prefab b/Assets/Prefabs/UI/Properties Panel/Property Section.prefab
index f0629b763..2d2ccb36c 100644
--- a/Assets/Prefabs/UI/Properties Panel/Property Section.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Property Section.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1026668114703092140}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -104,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -162,10 +165,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1026668113805589148}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab
index dbad2c53d..c19b97642 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Attribute.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798766822876479}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -60,13 +60,15 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: efficient/organized
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 2100000, guid: 52bc194c171fd114e9a962923283262d, type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -84,13 +86,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 8
m_fontSizeBase: 8
m_fontWeight: 400
@@ -98,61 +99,42 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 1028
+ m_HorizontalAlignment: 4
+ m_VerticalAlignment: 1024
+ m_textAlignment: 65535
m_characterSpacing: 1.5
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 4958798766555897797}
- characterCount: 19
- spriteCount: 0
- spaceCount: 0
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4958798766635474175
@@ -183,9 +165,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: -1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798768237988480}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -209,12 +191,14 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798766635474175}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -227,6 +211,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!1 &4958798766822876478
GameObject:
m_ObjectHideFlags: 0
@@ -255,13 +240,13 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4958798767036921042}
- {fileID: 4958798767833643858}
- {fileID: 4958798767855898775}
- {fileID: 4958798766555897796}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -277,7 +262,7 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798766822876478}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
@@ -332,9 +317,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798766822876479}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -364,6 +349,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -389,13 +376,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 20
m_fontSizeBase: 20
m_fontWeight: 400
@@ -403,61 +389,42 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 258
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 256
+ m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 4958798767036921043}
- characterCount: 18
- spriteCount: 0
- spaceCount: 1
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4958798767101845646
@@ -488,9 +455,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798768306156651}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -514,12 +481,14 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798767101845646}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0.44583336, b: 0.050000012, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -532,6 +501,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!1 &4958798767393056018
GameObject:
m_ObjectHideFlags: 0
@@ -561,14 +531,14 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798767885421271}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.332, y: 0}
- m_AnchorMax: {x: 0.332, y: 1}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: -2}
- m_SizeDelta: {x: 0, y: 4}
+ m_SizeDelta: {x: 12.599999, y: 4}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4958798767393056030
CanvasRenderer:
@@ -587,12 +557,14 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798767393056018}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -605,6 +577,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &4958798767393056028
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -614,7 +587,7 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798767393056018}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -1254083943, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3}
m_Name:
m_EditorClassIdentifier:
m_AspectMode: 2
@@ -646,12 +619,12 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4958798768237988480}
- {fileID: 4958798768306156651}
- {fileID: 4958798767966920791}
m_Father: {fileID: 4958798766822876479}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -667,11 +640,12 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798767833643857}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -681,17 +655,20 @@ MonoBehaviour:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
+ m_SelectedTrigger: Highlighted
m_DisabledTrigger: Disabled
m_Interactable: 0
m_TargetGraphic: {fileID: 0}
@@ -733,9 +710,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798766822876479}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -765,13 +742,15 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: easy-going/careless
m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: ef74c4c30ca5ced4489f28b914006aad, type: 2}
- m_sharedMaterial: {fileID: 2100000, guid: 006954f79490ab54bbc51d74b44d6e1c, type: 2}
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
@@ -789,13 +768,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 8
m_fontSizeBase: 8
m_fontWeight: 400
@@ -803,61 +781,42 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
- m_textAlignment: 1025
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 1024
+ m_textAlignment: 65535
m_characterSpacing: 1.5
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 4958798767855898768}
- characterCount: 19
- spriteCount: 0
- spaceCount: 0
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4958798767885421270
@@ -886,10 +845,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4958798767393056019}
m_Father: {fileID: 4958798768237988480}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -924,9 +883,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798767833643858}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.35}
m_AnchorMax: {x: 1, y: 0.65}
@@ -950,12 +909,14 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798767966920790}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -968,6 +929,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!1 &4958798768237988487
GameObject:
m_ObjectHideFlags: 0
@@ -997,12 +959,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4958798768341589565}
- {fileID: 4958798766635474168}
- {fileID: 4958798767885421271}
m_Father: {fileID: 4958798767833643858}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.35}
m_AnchorMax: {x: 1, y: 0.65}
@@ -1026,12 +988,14 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798768237988487}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.06416668, b: 0.154, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -1044,6 +1008,7 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!114 &4958798768237988481
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -1053,7 +1018,7 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798768237988487}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 0
@@ -1083,10 +1048,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4958798767101845647}
m_Father: {fileID: 4958798767833643858}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
@@ -1121,9 +1086,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4958798768237988480}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1147,12 +1112,14 @@ MonoBehaviour:
m_GameObject: {fileID: 4958798768341589564}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.25294134, b: 0.6, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -1165,3 +1132,4 @@ MonoBehaviour:
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab
index d005cdba5..d5cefa04e 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Bool Field.prefab
@@ -29,11 +29,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7661950295498381397}
- {fileID: 7661950294707789146}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -116,10 +116,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7661950295217243554}
m_Father: {fileID: 7661950294707789146}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -193,10 +193,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7661950294137596689}
m_Father: {fileID: 7661950293931311387}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -313,9 +313,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7661950294137596689}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.2, y: 0.2}
m_AnchorMax: {x: 0.8, y: 0.8}
@@ -389,9 +389,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7661950293931311387}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -465,20 +465,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab
index 0d208cbde..39a19b9cc 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Button Field.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 790814198576895811}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -104,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -165,10 +168,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 790814197411605233}
m_Father: {fileID: 6566784227922820063}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -306,11 +309,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6566784228232816309}
- {fileID: 790814198576895811}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -395,9 +398,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6566784227922820063}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -471,20 +474,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab
index aded92530..a426e807a 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Enum Field.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1444953513611246322}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -104,20 +104,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -165,11 +168,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1444953513591056483}
- {fileID: 1444953514355799430}
m_Father: {fileID: 1444953514731475974}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -307,9 +310,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1444953514731475974}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -383,20 +386,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -462,9 +468,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1444953513611246322}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -538,11 +544,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1444953513817938006}
- {fileID: 1444953513611246322}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab
index db1ffa153..1009b9d25 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Increment Field.prefab
@@ -30,9 +30,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2544338102157427055}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -162,12 +162,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3841991687815987397}
- {fileID: 7863247503782211248}
- {fileID: 8483308900631515678}
m_Father: {fileID: 6770904480725292323}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -223,9 +223,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6770904480725292323}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -299,20 +299,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -379,11 +382,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6770904480229951561}
- {fileID: 2544338102157427055}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -470,9 +473,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2544338102157427055}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -603,9 +606,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2544338102157427055}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -679,20 +682,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab
index d5784a8cb..29050392e 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Input Field.prefab
@@ -29,11 +29,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 23155009713813574}
- {fileID: 8734896053364945145}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -117,9 +117,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 23155009655760172}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -193,20 +193,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -271,10 +274,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5938949450847760329}
m_Father: {fileID: 23155009655760172}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -328,11 +331,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5938949451508194215}
- {fileID: 5938949451316023666}
m_Father: {fileID: 5938949450847760329}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -383,10 +386,10 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5938949450758544618}
m_Father: {fileID: 8734896053364945145}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -525,10 +528,13 @@ MonoBehaviour:
m_GlobalFontAsset: {fileID: 11400000, guid: 9dcd07b95faae7641a3ff6fccab43c32, type: 2}
m_OnFocusSelectAll: 1
m_ResetOnDeActivation: 1
+ m_KeepTextSelectionVisible: 0
m_RestoreOriginalTextOnEscape: 1
m_isRichTextEditingAllowed: 0
m_LineLimit: 0
+ isAlert: 0
m_InputValidator: {fileID: 0}
+ m_ShouldActivateOnSelect: 1
--- !u!114 &1618696626055083017
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -577,9 +583,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5938949450758544618}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -653,20 +659,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 3
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -712,9 +721,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5938949450758544618}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -788,20 +797,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab
index 1360e00de..d57409ee5 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Progress Field.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8181761431199775037}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -103,9 +103,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8626591645481506733}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
@@ -179,11 +179,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3301729265189646952}
- {fileID: 8626591645481506733}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -267,9 +267,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3301729265155698787}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -343,20 +343,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -420,10 +423,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1684719062263664779}
m_Father: {fileID: 8626591645481506733}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -458,11 +461,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4052465884214141673}
- {fileID: 8181761431199775037}
m_Father: {fileID: 3301729265155698787}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab
index 77133101c..f7f4fa9e9 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Property Label.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2677123916507168719}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -105,20 +105,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -185,11 +188,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2677123916028371621}
- {fileID: 6602089867192183683}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -273,9 +276,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2677123916507168719}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -349,20 +352,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab
index 06e3eca26..f53bd6914 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Property.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9159917045172241900}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -107,20 +107,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -187,10 +190,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9159917045079857286}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab
index 3a13a994a..c2f68c328 100644
--- a/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Simple/Ranged Float Field.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7146463267720429741}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -101,10 +101,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3436413162678517982}
m_Father: {fileID: 7146463267720429741}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -139,9 +139,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7282863425963355709}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -212,10 +212,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 287045173602649995}
m_Father: {fileID: 7146463267720429741}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -251,9 +251,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3222204141728529077}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -342,11 +342,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4127690186274268520}
- {fileID: 7146463267720429741}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -450,9 +450,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4127690186169542499}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -526,20 +526,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -605,12 +608,12 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3217779461217105385}
- {fileID: 7282863425963355709}
- {fileID: 3222204141728529077}
m_Father: {fileID: 4127690186169542499}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Prefabs/UI/Properties Panel/Text Button.prefab b/Assets/Prefabs/UI/Properties Panel/Text Button.prefab
index 65d6df6d7..8f001bcfe 100644
--- a/Assets/Prefabs/UI/Properties Panel/Text Button.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Text Button.prefab
@@ -31,9 +31,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -107,20 +107,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 0
+ m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
diff --git a/Assets/Prefabs/UI/Tab Button Primary.prefab b/Assets/Prefabs/UI/Tab Button Primary.prefab
index fa0e184d4..1795e41df 100644
--- a/Assets/Prefabs/UI/Tab Button Primary.prefab
+++ b/Assets/Prefabs/UI/Tab Button Primary.prefab
@@ -29,9 +29,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7200536746924797989}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -105,20 +105,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -179,10 +182,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7200536746924797989}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -249,6 +252,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -307,10 +311,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6493174789768221420}
m_Father: {fileID: 5318229203699776728}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset
index 692fb08fe..4b17fe993 100644
--- a/Assets/Resources/Settings.asset
+++ b/Assets/Resources/Settings.asset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b2e346f533ccee5d2c655b3d8e0817e3f93e9234af06557ee9c6ec13cecb9acd
-size 13137
+oid sha256:248373994a9d0caf17b8dcddbedb7b8c1d36001c31ae0f1e695385e6589734e6
+size 12647
diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity
index d735258a9..a7940de8e 100644
--- a/Assets/Scenes/ARPG.unity
+++ b/Assets/Scenes/ARPG.unity
@@ -409,13 +409,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 23420356}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: -5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 1037490739}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!23 &23420359
MeshRenderer:
m_ObjectHideFlags: 0
@@ -1157,7 +1157,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -1618,7 +1618,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -1648,81 +1648,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 125165634}
m_CullTransparentMesh: 0
---- !u!1 &126433269
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 126433270}
- - component: {fileID: 126433272}
- - component: {fileID: 126433271}
- m_Layer: 5
- m_Name: Icon
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &126433270
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 126433269}
- m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 691045497}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 8, y: 0}
- m_SizeDelta: {x: 14, y: -2}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &126433271
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 126433269}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 0
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: 55bed7a5ff978bf4c8cbda9971585df0, type: 3}
- m_Type: 0
- m_PreserveAspect: 1
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &126433272
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 126433269}
- m_CullTransparentMesh: 0
--- !u!1 &134113270
GameObject:
m_ObjectHideFlags: 0
@@ -1843,7 +1768,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -2280,6 +2205,81 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
+--- !u!1001 &177891521
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 775333809}
+ m_Modifications:
+ - target: {fileID: 1337198075554910, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_Name
+ value: TinyExplosion
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -4.2346153
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 2.42
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -21.91896
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -90
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4, type: 3}
+--- !u!114 &177891522 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 8662091027736085435, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 177891521}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &177891523 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4441266138185142, guid: 25c7aa9ad705fe143a4d71c1c8deb7d4,
+ type: 3}
+ m_PrefabInstance: {fileID: 177891521}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &178733679
GameObject:
m_ObjectHideFlags: 0
@@ -2912,7 +2912,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -3864,7 +3864,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -5081,143 +5081,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!1 &383790463
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 383790464}
- - component: {fileID: 383790466}
- - component: {fileID: 383790465}
- m_Layer: 5
- m_Name: Strafe RPM
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &383790464
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 383790463}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 691045497}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 8, y: 0}
- m_SizeDelta: {x: -16, y: -4}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &383790465
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 383790463}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_text: 18,000
- m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2}
- m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2}
- m_fontSharedMaterials: []
- m_fontMaterial: {fileID: 0}
- m_fontMaterials: []
- m_fontColor32:
- serializedVersion: 2
- rgba: 4294967295
- m_fontColor: {r: 1, g: 1, b: 1, a: 1}
- m_enableVertexGradient: 0
- m_colorMode: 3
- m_fontColorGradient:
- topLeft: {r: 1, g: 1, b: 1, a: 1}
- topRight: {r: 1, g: 1, b: 1, a: 1}
- bottomLeft: {r: 1, g: 1, b: 1, a: 1}
- bottomRight: {r: 1, g: 1, b: 1, a: 1}
- m_fontColorGradientPreset: {fileID: 0}
- m_spriteAsset: {fileID: 0}
- m_tintAllSprites: 0
- m_StyleSheet: {fileID: 0}
- m_TextStyleHashCode: -1183493901
- m_overrideHtmlColors: 0
- m_faceColor:
- serializedVersion: 2
- rgba: 4294967295
- m_fontSize: 10
- m_fontSizeBase: 10
- m_fontWeight: 400
- m_enableAutoSizing: 1
- m_fontSizeMin: 6
- m_fontSizeMax: 16
- m_fontStyle: 0
- m_HorizontalAlignment: 1
- m_VerticalAlignment: 512
- m_textAlignment: 65535
- m_characterSpacing: 0
- m_characterHorizontalScale: 1
- m_wordSpacing: 0
- m_lineSpacing: 0
- m_lineSpacingMax: 0
- m_paragraphSpacing: 0
- m_charWidthMaxAdj: 0
- m_TextWrappingMode: 1
- m_wordWrappingRatios: 0.4
- m_overflowMode: 0
- m_linkedTextComponent: {fileID: 0}
- parentLinkedComponent: {fileID: 0}
- m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
- m_enableExtraPadding: 0
- checkPaddingRequired: 0
- m_isRichText: 1
- m_EmojiFallbackSupport: 1
- m_parseCtrlCharacters: 1
- m_isOrthographic: 1
- m_isCullingEnabled: 0
- m_horizontalMapping: 0
- m_verticalMapping: 0
- m_uvLineOffset: 0
- m_geometrySortingOrder: 0
- m_IsTextObjectScaleStatic: 0
- m_VertexBufferAutoSizeReduction: 1
- m_useMaxVisibleDescender: 1
- m_pageToDisplay: 1
- m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_isUsingLegacyAnimationComponent: 0
- m_isVolumetricText: 0
- m_hasFontAssetChanged: 0
- m_baseMaterial: {fileID: 0}
- m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
---- !u!222 &383790466
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 383790463}
- m_CullTransparentMesh: 0
--- !u!1 &388927454
GameObject:
m_ObjectHideFlags: 0
@@ -5325,7 +5188,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -5732,7 +5595,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -5979,7 +5842,6 @@ MonoBehaviour:
OverrideIconBlinkSpeed: 0
ShieldIcon: {fileID: 0}
HeatsinkBackground: {fileID: 0}
- AetherDriveUi: {fileID: 0}
EnergyLabel: {fileID: 0}
CockpitTemperatureLabel: {fileID: 0}
RadiatorTemperatureLabel: {fileID: 0}
@@ -5988,18 +5850,12 @@ MonoBehaviour:
VisibilityLabel: {fileID: 0}
HullDurabilityLabel: {fileID: 0}
DistanceLabel: {fileID: 0}
- ForwardRPMLabel: {fileID: 0}
- StrafeRPMLabel: {fileID: 0}
- TurnRPMLabel: {fileID: 0}
SensorCooldownFill: {fileID: 0}
EnergyFill: {fileID: 0}
HullDurabilityFill: {fileID: 0}
HeatstrokeMeterFill: {fileID: 0}
HypothermiaMeterFill: {fileID: 0}
HeatstrokeLimitFill: {fileID: 0}
- ForwardRPMFill: {fileID: 0}
- StrafeRPMFill: {fileID: 0}
- TurnRPMFill: {fileID: 0}
--- !u!114 &410701130
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -7752,7 +7608,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -8181,7 +8037,7 @@ Camera:
m_Depth: 0
m_CullingMask:
serializedVersion: 2
- m_Bits: 5632
+ m_Bits: 5120
m_RenderingPath: 1
m_TargetTexture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
m_TargetDisplay: 0
@@ -8397,7 +8253,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -11195,105 +11051,6 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 677960091}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
---- !u!1 &691045496
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 691045497}
- - component: {fileID: 691045500}
- - component: {fileID: 691045499}
- - component: {fileID: 691045498}
- m_Layer: 5
- m_Name: Strafe
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &691045497
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 691045496}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children:
- - {fileID: 1542388328}
- - {fileID: 126433270}
- - {fileID: 383790464}
- m_Father: {fileID: 1735948312}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 1}
---- !u!114 &691045498
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 691045496}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.011764706}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &691045499
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 691045496}
- m_CullTransparentMesh: 1
---- !u!114 &691045500
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 691045496}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: -1
- m_PreferredHeight: 16
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
--- !u!1 &693745763
GameObject:
m_ObjectHideFlags: 0
@@ -11510,7 +11267,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -11877,105 +11634,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 719842150}
m_CullTransparentMesh: 1
---- !u!1 &723697980
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 723697981}
- - component: {fileID: 723697984}
- - component: {fileID: 723697983}
- - component: {fileID: 723697982}
- m_Layer: 5
- m_Name: Forward
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &723697981
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 723697980}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children:
- - {fileID: 1946192591}
- - {fileID: 1463754850}
- - {fileID: 1558236436}
- m_Father: {fileID: 1735948312}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 1}
---- !u!114 &723697982
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 723697980}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.011764706}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &723697983
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 723697980}
- m_CullTransparentMesh: 1
---- !u!114 &723697984
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 723697980}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: -1
- m_PreferredHeight: 16
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
--- !u!1 &732687889
GameObject:
m_ObjectHideFlags: 0
@@ -12167,7 +11825,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -12226,7 +11884,6 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- - {fileID: 1735948312}
- {fileID: 232470597}
m_Father: {fileID: 60313920}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -12619,6 +12276,94 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
+--- !u!1 &775333807
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 775333809}
+ - component: {fileID: 775333808}
+ m_Layer: 0
+ m_Name: Impact Feedback
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &775333808
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 775333807}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: bfdc38a81d00b0347bb55ad6469535ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Assembly-CSharp::ImpactFeedback
+ HullEffect: {fileID: 177891522}
+ IntensityScale: 10
+ MinEffectScale: 0.3
+ Impulse:
+ m_ImpulseChannel: 1
+ m_ImpulseShape: 0
+ m_CustomImpulseShape:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_ImpulseDuration: 0.2
+ m_ImpulseType: 3
+ m_DissipationRate: 0
+ m_RawSignal: {fileID: 0}
+ m_AmplitudeGain: 1
+ m_FrequencyGain: 1
+ m_RepeatMode: 0
+ m_Randomize: 1
+ m_TimeEnvelope:
+ m_AttackShape:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_DecayShape:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_AttackTime: 0
+ m_SustainTime: 0.2
+ m_DecayTime: 0.7
+ m_ScaleWithImpact: 1
+ m_HoldForever: 0
+ m_ImpactRadius: 100
+ m_DirectionMode: 0
+ m_DissipationMode: 2
+ m_DissipationDistance: 100
+ m_PropagationSpeed: 343
+--- !u!4 &775333809
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 775333807}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 177891523}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &776416423
GameObject:
m_ObjectHideFlags: 0
@@ -13289,7 +13034,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -13557,7 +13302,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -13862,7 +13607,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -13912,81 +13657,6 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
---- !u!1 &853400335
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 853400336}
- - component: {fileID: 853400338}
- - component: {fileID: 853400337}
- m_Layer: 5
- m_Name: Icon
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &853400336
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 853400335}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: -1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1214607512}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 8, y: 0}
- m_SizeDelta: {x: 10, y: -4}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &853400337
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 853400335}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 0
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: 4b33557baae0da54a96c0aa97bf752ee, type: 3}
- m_Type: 0
- m_PreserveAspect: 1
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &853400338
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 853400335}
- m_CullTransparentMesh: 0
--- !u!1 &861158450
GameObject:
m_ObjectHideFlags: 0
@@ -14123,6 +13793,7 @@ GameObject:
m_Component:
- component: {fileID: 887677623}
- component: {fileID: 887677622}
+ - component: {fileID: 887677624}
m_Layer: 0
m_Name: Third Person Rig
m_TagString: Untagged
@@ -14185,6 +13856,29 @@ Transform:
- {fileID: 1319157835}
m_Father: {fileID: 1665127616}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &887677624
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 887677621}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00b2d199b96b516448144ab30fb26aed, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Cinemachine::Cinemachine.CinemachineImpulseListener
+ m_ApplyAfter: 2
+ m_ChannelMask: 1
+ m_Gain: 1
+ m_Use2DDistance: 0
+ m_UseCameraSpace: 1
+ m_ReactionSettings:
+ m_SecondaryNoise: {fileID: 0}
+ m_AmplitudeGain: 1
+ m_FrequencyGain: 1
+ m_Duration: 1
+ m_NoiseOffsets: {x: 0, y: 0, z: 0}
--- !u!1 &906767441
GameObject:
m_ObjectHideFlags: 0
@@ -14331,7 +14025,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -14469,7 +14163,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -14830,7 +14524,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -14952,143 +14646,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 56, y: 56}
m_Pivot: {x: 0, y: 0}
---- !u!1 &932757481
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 932757482}
- - component: {fileID: 932757484}
- - component: {fileID: 932757483}
- m_Layer: 5
- m_Name: Turn RPM
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &932757482
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 932757481}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1214607512}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 8, y: 0}
- m_SizeDelta: {x: -16, y: -4}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &932757483
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 932757481}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_text: 18,000
- m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2}
- m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2}
- m_fontSharedMaterials: []
- m_fontMaterial: {fileID: 0}
- m_fontMaterials: []
- m_fontColor32:
- serializedVersion: 2
- rgba: 4294967295
- m_fontColor: {r: 1, g: 1, b: 1, a: 1}
- m_enableVertexGradient: 0
- m_colorMode: 3
- m_fontColorGradient:
- topLeft: {r: 1, g: 1, b: 1, a: 1}
- topRight: {r: 1, g: 1, b: 1, a: 1}
- bottomLeft: {r: 1, g: 1, b: 1, a: 1}
- bottomRight: {r: 1, g: 1, b: 1, a: 1}
- m_fontColorGradientPreset: {fileID: 0}
- m_spriteAsset: {fileID: 0}
- m_tintAllSprites: 0
- m_StyleSheet: {fileID: 0}
- m_TextStyleHashCode: -1183493901
- m_overrideHtmlColors: 0
- m_faceColor:
- serializedVersion: 2
- rgba: 4294967295
- m_fontSize: 10
- m_fontSizeBase: 10
- m_fontWeight: 400
- m_enableAutoSizing: 1
- m_fontSizeMin: 6
- m_fontSizeMax: 16
- m_fontStyle: 0
- m_HorizontalAlignment: 1
- m_VerticalAlignment: 512
- m_textAlignment: 65535
- m_characterSpacing: 0
- m_characterHorizontalScale: 1
- m_wordSpacing: 0
- m_lineSpacing: 0
- m_lineSpacingMax: 0
- m_paragraphSpacing: 0
- m_charWidthMaxAdj: 0
- m_TextWrappingMode: 1
- m_wordWrappingRatios: 0.4
- m_overflowMode: 0
- m_linkedTextComponent: {fileID: 0}
- parentLinkedComponent: {fileID: 0}
- m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
- m_enableExtraPadding: 0
- checkPaddingRequired: 0
- m_isRichText: 1
- m_EmojiFallbackSupport: 1
- m_parseCtrlCharacters: 1
- m_isOrthographic: 1
- m_isCullingEnabled: 0
- m_horizontalMapping: 0
- m_verticalMapping: 0
- m_uvLineOffset: 0
- m_geometrySortingOrder: 0
- m_IsTextObjectScaleStatic: 0
- m_VertexBufferAutoSizeReduction: 1
- m_useMaxVisibleDescender: 1
- m_pageToDisplay: 1
- m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_isUsingLegacyAnimationComponent: 0
- m_isVolumetricText: 0
- m_hasFontAssetChanged: 0
- m_baseMaterial: {fileID: 0}
- m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
---- !u!222 &932757484
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 932757481}
- m_CullTransparentMesh: 0
--- !u!1 &933815652
GameObject:
m_ObjectHideFlags: 0
@@ -16674,8 +16231,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2}
- TargetSpottedBlinkFrequency: 20
- TargetSpottedBlinkOffset: -0.25
DeathPostTransitionTime: 1
DeathPost: {fileID: 803284856}
HeatstrokePost: {fileID: 1404901906}
@@ -16710,6 +16265,7 @@ MonoBehaviour:
FriendlyTargetIndicator: {fileID: 332734009}
ViewDot: {fileID: 146394778}
LockIndicator: {fileID: 1876420642}
+ IncomingLockIndicatorDistance: 30
Crosshairs:
- {fileID: 1914685583}
- {fileID: 1284802339}
@@ -16731,7 +16287,6 @@ MonoBehaviour:
NoShieldColor: {r: 0.6, g: 0.6, b: 0.6, a: 1}
ShieldIcon: {fileID: 21300000, guid: 2a61aee34fcf7e640a093cb4c4fa56bc, type: 3}
NoShieldIcon: {fileID: 21300000, guid: bc1017eafc2627f4aaa4e247f14347fd, type: 3}
- IntroDuration: 10
--- !u!4 &1009503730
Transform:
m_ObjectHideFlags: 0
@@ -16767,7 +16322,7 @@ MonoBehaviour:
Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2}
ZoneRoot: {fileID: 2095699057}
SectorBrushes: {fileID: 1037490739}
- SectorBoundaryBrush: {fileID: 1476765550}
+ AmbientLight: {fileID: 23420357}
SceneCamera: {fileID: 887677622}
FogCameras:
- {fileID: 559840917}
@@ -16778,8 +16333,6 @@ MonoBehaviour:
- {fileID: 488792362}
- {fileID: 970624071}
- {fileID: 2095741464}
- FogMaterial: {fileID: 2100000, guid: 2ff39f5d101241043ba1dcde19d92f77, type: 2}
- FogFarFadeFraction: 0.125
FarPlaneDistanceMultiplier: 1
AsteroidMeshes:
- Mesh: {fileID: 4300004, guid: bdb4c719a85f3f2419f6c573dd1daf15, type: 3}
@@ -16847,17 +16400,22 @@ MonoBehaviour:
LODHandler: {fileID: 1009503736}
SlimeRenderer: {fileID: 1254851254}
SlimeGravityCamera: {fileID: 1066823975}
- SimpleCommodityPickup: {fileID: 4008709970769624704, guid: 521bfeece7dd5fd4e8f166d38493f18c,
+ SimpleCommodityPickup: {fileID: 7436534270673427838, guid: 521bfeece7dd5fd4e8f166d38493f18c,
type: 3}
- CompoundCommodityPickup: {fileID: 7449398549621940518, guid: 366909b6a01d7254d8eef01c333f8e00,
+ CompoundCommodityPickup: {fileID: 4507103896627202189, guid: 366909b6a01d7254d8eef01c333f8e00,
type: 3}
- GearPickup: {fileID: 946329779588188460, guid: d2b7e9a9cd7733041b0553682e4b61af,
+ GearPickup: {fileID: 7390748043139687254, guid: d2b7e9a9cd7733041b0553682e4b61af,
type: 3}
- WeaponPickup: {fileID: 8842807112802394818, guid: d2cec1d8c3d94074e9d2e6088e1c02d7,
+ WeaponPickup: {fileID: 5705448000916375656, guid: d2cec1d8c3d94074e9d2e6088e1c02d7,
+ type: 3}
+ MinePrefab: {fileID: 7283754118921506074, guid: b04728b2b65e057429eb6e8529299c8a,
+ type: 3}
+ CloudPrefab: {fileID: 2914522964471179774, guid: 4084aa3d08e52e04f880ad13daa409b4,
type: 3}
MapGravityMaterials:
- {fileID: 2100000, guid: 841e4091d19548347bd59115047b4e49, type: 2}
- {fileID: 2100000, guid: a92fc6d958edb9f46b6e58134f609cc0, type: 2}
+ GravityField: {fileID: 2100000, guid: 44a8bbb89acb4e34c9f41a9da5842bb4, type: 2}
Tour: 0
TourSwitchTime: 10
TourFollowDistance: 100
@@ -16904,7 +16462,6 @@ MonoBehaviour:
NebulaTint: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
Heightmap: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
ParticleColors: {fileID: 2800000, guid: 56db63da398b2d04394ddbccedce943c, type: 3}
- GravityCamera: {fileID: 1537342003}
--- !u!114 &1009503736
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -17135,7 +16692,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -17165,81 +16722,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1012981707}
m_CullTransparentMesh: 0
---- !u!1 &1013676407
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1013676408}
- - component: {fileID: 1013676410}
- - component: {fileID: 1013676409}
- m_Layer: 5
- m_Name: Turn Fill
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1013676408
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1013676407}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1214607512}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0.8, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1013676409
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1013676407}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.101960786}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &1013676410
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1013676407}
- m_CullTransparentMesh: 0
--- !u!1 &1029396710
GameObject:
m_ObjectHideFlags: 0
@@ -17380,8 +16862,6 @@ Transform:
m_LocalScale: {x: 3000, y: 3000, z: 3000}
m_ConstrainProportionsScale: 0
m_Children:
- - {fileID: 1476765548}
- - {fileID: 23420357}
- {fileID: 1108843909}
- {fileID: 1647230682}
- {fileID: 1254851255}
@@ -17570,7 +17050,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -17707,7 +17187,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -18488,7 +17968,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -18901,7 +18381,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -19818,105 +19298,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
---- !u!1 &1214607511
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1214607512}
- - component: {fileID: 1214607515}
- - component: {fileID: 1214607514}
- - component: {fileID: 1214607513}
- m_Layer: 5
- m_Name: Turn
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1214607512
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1214607511}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children:
- - {fileID: 1013676408}
- - {fileID: 853400336}
- - {fileID: 932757482}
- m_Father: {fileID: 1735948312}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 1}
---- !u!114 &1214607513
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1214607511}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.011764706}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &1214607514
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1214607511}
- m_CullTransparentMesh: 1
---- !u!114 &1214607515
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1214607511}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: -1
- m_PreferredHeight: 16
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
--- !u!1 &1218822609
GameObject:
m_ObjectHideFlags: 0
@@ -21162,7 +20543,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -22007,7 +21388,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -22207,7 +21588,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -22394,7 +21775,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -22922,81 +22303,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1281fe44325f9b548aa42dc331b17266, type: 3}
m_Name:
m_EditorClassIdentifier:
---- !u!1 &1463754849
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1463754850}
- - component: {fileID: 1463754852}
- - component: {fileID: 1463754851}
- m_Layer: 5
- m_Name: Icon
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1463754850
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1463754849}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 723697981}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 8, y: 0}
- m_SizeDelta: {x: 14, y: -2}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1463754851
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1463754849}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 0
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 21300000, guid: 55bed7a5ff978bf4c8cbda9971585df0, type: 3}
- m_Type: 0
- m_PreserveAspect: 1
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &1463754852
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1463754849}
- m_CullTransparentMesh: 0
--- !u!1 &1464157084
GameObject:
m_ObjectHideFlags: 0
@@ -23167,7 +22473,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -23329,96 +22635,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!1 &1476765547
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1476765548}
- - component: {fileID: 1476765551}
- - component: {fileID: 1476765550}
- m_Layer: 9
- m_Name: Boundary
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1476765548
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1476765547}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1037490739}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!23 &1476765550
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1476765547}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 0
- m_StaticShadowCaster: 0
- m_MotionVectors: 2
- m_LightProbeUsage: 0
- m_ReflectionProbeUsage: 0
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RayTracingAccelStructBuildFlagsOverride: 0
- m_RayTracingAccelStructBuildFlags: 1
- m_SmallMeshCulling: 1
- m_ForceMeshLod: -1
- m_MeshLodSelectionBias: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 8f45fb3a0f420d5428f1528827d55fa2, type: 2}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_GlobalIlluminationMeshLod: 0
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_MaskInteraction: 0
- m_AdditionalVertexStreams: {fileID: 0}
---- !u!33 &1476765551
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1476765547}
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1485884351
GameObject:
m_ObjectHideFlags: 0
@@ -23589,7 +22805,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -23986,7 +23202,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -24255,7 +23471,7 @@ Camera:
m_Depth: 0
m_CullingMask:
serializedVersion: 2
- m_Bits: 1536
+ m_Bits: 512
m_RenderingPath: 1
m_TargetTexture: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
m_TargetDisplay: 0
@@ -24418,81 +23634,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1541341820}
m_CullTransparentMesh: 1
---- !u!1 &1542388327
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1542388328}
- - component: {fileID: 1542388330}
- - component: {fileID: 1542388329}
- m_Layer: 5
- m_Name: Strafe Fill
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1542388328
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1542388327}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 691045497}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0.8, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1542388329
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1542388327}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.101960786}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &1542388330
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1542388327}
- m_CullTransparentMesh: 0
--- !u!1 &1547889398
GameObject:
m_ObjectHideFlags: 0
@@ -24992,143 +24133,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1558182380}
m_CullTransparentMesh: 1
---- !u!1 &1558236435
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1558236436}
- - component: {fileID: 1558236438}
- - component: {fileID: 1558236437}
- m_Layer: 5
- m_Name: Forward RPM
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1558236436
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1558236435}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 723697981}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 8, y: 0}
- m_SizeDelta: {x: -16, y: -4}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1558236437
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1558236435}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 0
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_text: 18,000
- m_isRightToLeft: 0
- m_fontAsset: {fileID: 11400000, guid: 3fb7d873bb5a7944bb9a7c73c430c44b, type: 2}
- m_sharedMaterial: {fileID: 2100000, guid: b9d2f6c9804cec1489502dcc1c19ec54, type: 2}
- m_fontSharedMaterials: []
- m_fontMaterial: {fileID: 0}
- m_fontMaterials: []
- m_fontColor32:
- serializedVersion: 2
- rgba: 4294967295
- m_fontColor: {r: 1, g: 1, b: 1, a: 1}
- m_enableVertexGradient: 0
- m_colorMode: 3
- m_fontColorGradient:
- topLeft: {r: 1, g: 1, b: 1, a: 1}
- topRight: {r: 1, g: 1, b: 1, a: 1}
- bottomLeft: {r: 1, g: 1, b: 1, a: 1}
- bottomRight: {r: 1, g: 1, b: 1, a: 1}
- m_fontColorGradientPreset: {fileID: 0}
- m_spriteAsset: {fileID: 0}
- m_tintAllSprites: 0
- m_StyleSheet: {fileID: 0}
- m_TextStyleHashCode: -1183493901
- m_overrideHtmlColors: 0
- m_faceColor:
- serializedVersion: 2
- rgba: 4294967295
- m_fontSize: 10
- m_fontSizeBase: 10
- m_fontWeight: 400
- m_enableAutoSizing: 1
- m_fontSizeMin: 6
- m_fontSizeMax: 16
- m_fontStyle: 0
- m_HorizontalAlignment: 1
- m_VerticalAlignment: 512
- m_textAlignment: 65535
- m_characterSpacing: 0
- m_characterHorizontalScale: 1
- m_wordSpacing: 0
- m_lineSpacing: 0
- m_lineSpacingMax: 0
- m_paragraphSpacing: 0
- m_charWidthMaxAdj: 0
- m_TextWrappingMode: 1
- m_wordWrappingRatios: 0.4
- m_overflowMode: 0
- m_linkedTextComponent: {fileID: 0}
- parentLinkedComponent: {fileID: 0}
- m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
- m_enableExtraPadding: 0
- checkPaddingRequired: 0
- m_isRichText: 1
- m_EmojiFallbackSupport: 1
- m_parseCtrlCharacters: 1
- m_isOrthographic: 1
- m_isCullingEnabled: 0
- m_horizontalMapping: 0
- m_verticalMapping: 0
- m_uvLineOffset: 0
- m_geometrySortingOrder: 0
- m_IsTextObjectScaleStatic: 0
- m_VertexBufferAutoSizeReduction: 1
- m_useMaxVisibleDescender: 1
- m_pageToDisplay: 1
- m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_isUsingLegacyAnimationComponent: 0
- m_isVolumetricText: 0
- m_hasFontAssetChanged: 0
- m_baseMaterial: {fileID: 0}
- m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
---- !u!222 &1558236438
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1558236435}
- m_CullTransparentMesh: 0
--- !u!1 &1558520821
GameObject:
m_ObjectHideFlags: 0
@@ -25740,7 +24744,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -26383,7 +25387,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -26895,7 +25899,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -27761,7 +26765,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -27899,7 +26903,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -27929,92 +26933,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1733988258}
m_CullTransparentMesh: 1
---- !u!1 &1735948311
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1735948312}
- - component: {fileID: 1735948314}
- - component: {fileID: 1735948313}
- m_Layer: 5
- m_Name: RPM Display
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1735948312
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1735948311}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children:
- - {fileID: 723697981}
- - {fileID: 691045497}
- - {fileID: 1214607512}
- m_Father: {fileID: 746825913}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1735948313
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1735948311}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Padding:
- m_Left: 0
- m_Right: 0
- m_Top: 0
- m_Bottom: 0
- m_ChildAlignment: 0
- m_Spacing: 2
- m_ChildForceExpandWidth: 1
- m_ChildForceExpandHeight: 0
- m_ChildControlWidth: 1
- m_ChildControlHeight: 1
- m_ChildScaleWidth: 0
- m_ChildScaleHeight: 0
- m_ReverseArrangement: 0
---- !u!114 &1735948314
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1735948311}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_IgnoreLayout: 0
- m_MinWidth: -1
- m_MinHeight: -1
- m_PreferredWidth: -1
- m_PreferredHeight: 14
- m_FlexibleWidth: -1
- m_FlexibleHeight: -1
- m_LayoutPriority: 1
--- !u!1 &1741914909
GameObject:
m_ObjectHideFlags: 0
@@ -28259,7 +27177,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -30089,81 +29007,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1943948574}
m_CullTransparentMesh: 0
---- !u!1 &1946192590
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1946192591}
- - component: {fileID: 1946192593}
- - component: {fileID: 1946192592}
- m_Layer: 5
- m_Name: Forward Fill
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1946192591
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1946192590}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 723697981}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0.8, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1946192592
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1946192590}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 0.101960786}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_Sprite: {fileID: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &1946192593
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1946192590}
- m_CullTransparentMesh: 0
--- !u!1 &1952022815
GameObject:
m_ObjectHideFlags: 0
@@ -30416,7 +29259,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -31393,7 +30236,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -31710,7 +30553,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -32239,7 +31082,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -32376,7 +31219,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -33519,7 +32362,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -33620,7 +32463,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -33941,7 +32784,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -34071,7 +32914,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -34172,7 +33015,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -34384,7 +33227,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -34724,7 +33567,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -34862,7 +33705,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -34982,7 +33825,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -35138,7 +33981,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -35276,7 +34119,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -35582,7 +34425,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -35719,7 +34562,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -35819,7 +34662,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -35994,7 +34837,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -36151,7 +34994,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -37496,7 +36339,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -37943,7 +36786,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 00000000
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -38255,7 +37098,7 @@ MonoBehaviour:
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
- m_ActiveFontFeatures: 6e72656b
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
@@ -39366,7 +38209,6 @@ MonoBehaviour:
OverrideIconBlinkSpeed: 10
ShieldIcon: {fileID: 19222411}
HeatsinkBackground: {fileID: 661332569}
- AetherDriveUi: {fileID: 1735948311}
EnergyLabel: {fileID: 804489113}
CockpitTemperatureLabel: {fileID: 212527384}
RadiatorTemperatureLabel: {fileID: 1752418078}
@@ -39375,18 +38217,12 @@ MonoBehaviour:
VisibilityLabel: {fileID: 2122035461}
HullDurabilityLabel: {fileID: 697075017}
DistanceLabel: {fileID: 0}
- ForwardRPMLabel: {fileID: 1558236437}
- StrafeRPMLabel: {fileID: 383790465}
- TurnRPMLabel: {fileID: 932757483}
SensorCooldownFill: {fileID: 1943948575}
EnergyFill: {fileID: 271575215}
HullDurabilityFill: {fileID: 753112995}
HeatstrokeMeterFill: {fileID: 1029396711}
HypothermiaMeterFill: {fileID: 79341832}
HeatstrokeLimitFill: {fileID: 933815653}
- ForwardRPMFill: {fileID: 1946192591}
- StrafeRPMFill: {fileID: 1542388328}
- TurnRPMFill: {fileID: 1013676408}
--- !u!224 &7628189704657849088
RectTransform:
m_ObjectHideFlags: 0
@@ -39556,6 +38392,7 @@ SceneRoots:
- {fileID: 906767442}
- {fileID: 1009503730}
- {fileID: 1037490739}
+ - {fileID: 23420357}
- {fileID: 2095699057}
- {fileID: 134113271}
- {fileID: 666227432}
@@ -39565,3 +38402,4 @@ SceneRoots:
- {fileID: 990038542}
- {fileID: 2135526003}
- {fileID: 495677244}
+ - {fileID: 775333809}
diff --git a/Assets/Scenes/FieldShieldTest.unity b/Assets/Scenes/FieldShieldTest.unity
index 51c915b7f..b659bb95b 100644
--- a/Assets/Scenes/FieldShieldTest.unity
+++ b/Assets/Scenes/FieldShieldTest.unity
@@ -811,6 +811,9 @@ MonoBehaviour:
Camera: {fileID: 1153356615}
TestField: {fileID: 909026488}
Properties: {fileID: 401779935}
+ GrabExtendTime: 1.5
+ GrabEnvelopTime: 0.75
+ GrabPullTime: 1.5
--- !u!4 &699508827
Transform:
m_ObjectHideFlags: 0
@@ -1116,9 +1119,6 @@ MonoBehaviour:
TendrilBaseDamping: 2
TendrilTipRadiusAnimationExponent: 2
TendrilFadeExponent: 2
- GrabExtendTime: 1.5
- GrabEnvelopTime: 0.75
- GrabPullTime: 1.5
RefractionAxis: 1
--- !u!114 &909026489
MonoBehaviour:
diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity
index a37cfffba..4fafe8336 100644
--- a/Assets/Scenes/Main Menu.unity
+++ b/Assets/Scenes/Main Menu.unity
@@ -892,7 +892,6 @@ MonoBehaviour:
NebulaTint: {fileID: 8400000, guid: d196505464047f04a97f28689041209b, type: 2}
Heightmap: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2}
ParticleColors: {fileID: 2800000, guid: 56db63da398b2d04394ddbccedce943c, type: 3}
- GravityCamera: {fileID: 2103364771}
--- !u!114 &750375536
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -982,7 +981,7 @@ Camera:
m_Depth: 0
m_CullingMask:
serializedVersion: 2
- m_Bits: 5632
+ m_Bits: 5120
m_RenderingPath: 1
m_TargetTexture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
m_TargetDisplay: 0
@@ -1061,16 +1060,6 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 512
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 512
- objectReference: {fileID: 0}
- target: {fileID: 7852221720816817928, guid: 046dde0f4600bce41ad33c476f99b309,
type: 3}
propertyPath: m_LocalScale.x
@@ -1086,16 +1075,6 @@ PrefabInstance:
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: b9f52544f98f47146b486fb6e27179bb, type: 2}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 512
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 512
- objectReference: {fileID: 0}
- target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309,
type: 3}
propertyPath: m_LocalScale.x
diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity
index 933f4c4ca..45c73ee85 100644
--- a/Assets/Scenes/TestScene.unity
+++ b/Assets/Scenes/TestScene.unity
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
- serializedVersion: 9
+ serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
@@ -38,13 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
- m_IndirectSpecularColor: {r: 0.18113758, g: 0.20078251, b: 0.17357464, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
- serializedVersion: 12
- m_GIWorkflowMode: 1
+ serializedVersion: 13
+ m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@@ -67,9 +66,6 @@ LightmapSettings:
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
- m_FinalGather: 0
- m_FinalGatherFiltering: 1
- m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
@@ -105,7 +101,7 @@ NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
- serializedVersion: 2
+ serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@@ -118,7 +114,7 @@ NavMeshSettings:
cellSize: 0.16666666
manualTileSize: 0
tileSize: 256
- accuratePlacement: 0
+ buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
@@ -153,9 +149,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -1}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1124877095}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -220,20 +216,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
@@ -248,11 +247,12 @@ MonoBehaviour:
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 62236176}
m_maskType: 0
- _SortingLayerID: 0
- _SortingOrder: 0
--- !u!23 &62236176
MeshRenderer:
m_ObjectHideFlags: 0
@@ -264,11 +264,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -290,9 +296,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &62236177
MonoBehaviour:
@@ -335,11 +343,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 73838348}
- {fileID: 1538186655}
m_Father: {fileID: 1187011252}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -394,9 +402,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 67477253}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -470,9 +478,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 676739119}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -565,9 +573,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1928037890}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -638,12 +646,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 162042368}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.0125, z: 1}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1124877095}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &162042370
MeshCollider:
@@ -653,9 +662,17 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 162042368}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 4
+ serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
@@ -670,11 +687,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -696,9 +719,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &162042372
MeshFilter:
@@ -733,12 +758,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 215995290}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 789220865}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &215995292
MeshRenderer:
@@ -751,11 +777,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -777,9 +809,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &215995293
MeshFilter:
@@ -794,6 +828,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 1090070598}
m_Modifications:
- target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309,
@@ -876,32 +911,15 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 40
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 40
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 20
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 20
- objectReference: {fileID: 0}
- target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309,
type: 3}
propertyPath: m_LocalPosition.y
value: -4
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3}
--- !u!4 &229068763 stripped
Transform:
@@ -949,9 +967,17 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 240056260}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 4
+ serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
@@ -966,11 +992,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -992,9 +1024,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &240056264
MeshFilter:
@@ -1011,12 +1045,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 240056260}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 1}
m_LocalScale: {x: 0.044999998, y: 0.044999998, z: 3}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 820952285}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &302169896
GameObject:
@@ -1045,11 +1080,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2061863457}
- {fileID: 686739139}
m_Father: {fileID: 1187011252}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1152,7 +1187,9 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
+ m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
@@ -1166,10 +1203,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 676739119}
m_Father: {fileID: 0}
- m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1200,12 +1237,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 375851675}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
m_LocalPosition: {x: 0, y: 10, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1532567794}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
--- !u!20 &375851677
Camera:
@@ -1221,9 +1259,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -1255,6 +1301,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 8326552097884649274, guid: 897fa55d98f1f7f40b889f93ce9146f4,
@@ -1328,6 +1375,9 @@ PrefabInstance:
value: 90
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3}
--- !u!1 &441433737
GameObject:
@@ -1355,12 +1405,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 441433737}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 4}
m_LocalScale: {x: 2, y: 2, z: 2}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1124877095}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &441433739
MeshCollider:
@@ -1370,9 +1421,17 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 441433737}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 4
+ serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
@@ -1387,11 +1446,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -1413,9 +1478,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &441433741
MeshFilter:
@@ -1453,9 +1520,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2039345446}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1542,11 +1609,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -1568,9 +1641,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &507446969
MeshFilter:
@@ -1587,18 +1662,20 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 507446966}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 5}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1183010124}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &556481138
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 1090070598}
m_Modifications:
- target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309,
@@ -1681,32 +1758,15 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 40
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 40
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 20
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 20
- objectReference: {fileID: 0}
- target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309,
type: 3}
propertyPath: m_LocalPosition.y
value: -4
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3}
--- !u!1 &599096482 stripped
GameObject:
@@ -1769,11 +1829,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2039345446}
- {fileID: 1808942506}
m_Father: {fileID: 1236141028}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1856,9 +1916,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 676739119}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -1924,20 +1984,23 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2013,13 +2076,13 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 671490389}
- {fileID: 87390263}
- {fileID: 1187011252}
- {fileID: 1236141028}
m_Father: {fileID: 344649059}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -2132,9 +2195,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 302169897}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2200,20 +2263,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2266,11 +2332,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1691202846}
- {fileID: 840997727}
m_Father: {fileID: 1187011252}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -2326,9 +2392,11 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 753458616}
+ serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: -5, z: 0}
m_LocalScale: {x: 1024, y: 1024, z: 1024}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1807969627}
- {fileID: 1466792827}
@@ -2336,7 +2404,6 @@ Transform:
- {fileID: 1328848283}
- {fileID: 6977256487279145164}
m_Father: {fileID: 0}
- m_RootOrder: 11
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!1 &789220864
GameObject:
@@ -2361,15 +2428,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 789220864}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1489231075}
- {fileID: 1223346183}
- {fileID: 215995291}
m_Father: {fileID: 753458617}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &801092328
GameObject:
@@ -2397,12 +2465,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 801092328}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.015, y: 0.015, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 820952285}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &801092330
MonoBehaviour:
@@ -2427,11 +2496,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2453,9 +2528,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &801092332
MeshFilter:
@@ -2488,15 +2565,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 820952284}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1124877095}
- {fileID: 240056265}
- {fileID: 801092329}
m_Father: {fileID: 2067021207}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &840997726
GameObject:
@@ -2526,9 +2604,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 719378462}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2594,20 +2672,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -2658,12 +2739,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 855309154}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1328848283}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &855309156
MeshRenderer:
@@ -2676,11 +2758,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2702,9 +2790,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &855309157
MeshFilter:
@@ -2719,6 +2809,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 235077144, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3}
@@ -2791,6 +2882,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 897fa55d98f1f7f40b889f93ce9146f4, type: 3}
--- !u!1 &942014700
GameObject:
@@ -2816,12 +2910,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 942014700}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
m_LocalPosition: {x: 0, y: 10, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1532567794}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
--- !u!20 &942014702
Camera:
@@ -2837,9 +2932,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -2897,9 +3000,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -2933,12 +3044,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 983613690}
+ serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 10, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!1 &1073373262
GameObject:
@@ -2971,9 +3083,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -3007,12 +3127,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1073373262}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
m_LocalPosition: {x: 0, y: 10, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1532567794}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
--- !u!1 &1090070596
GameObject:
@@ -3051,15 +3172,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1090070596}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1647759374}
- {fileID: 229068763}
- {fileID: 734604127}
m_Father: {fileID: 0}
- m_RootOrder: 13
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1124877094
GameObject:
@@ -3086,9 +3208,11 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1124877094}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.25, y: 0.25, z: 0}
m_LocalScale: {x: 0.015, y: 0.015, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1520024706}
- {fileID: 441433738}
@@ -3096,7 +3220,6 @@ Transform:
- {fileID: 162042369}
- {fileID: 62236174}
m_Father: {fileID: 820952285}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1124877096
MonoBehaviour:
@@ -3126,6 +3249,8 @@ MonoBehaviour:
Secondary: {fileID: 441433740}
Influence: {fileID: 1190354611}
Label: {fileID: 62236175}
+ IconContainer: {fileID: 0}
+ Clickable: {fileID: 0}
--- !u!4 &1128149392 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309,
@@ -3156,15 +3281,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1183010123}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1940409868}
- {fileID: 507446970}
- {fileID: 2067021207}
m_Father: {fileID: 0}
- m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1183010125
MonoBehaviour:
@@ -3208,6 +3334,8 @@ MonoBehaviour:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
+ PlayerLocationLabelColor: {r: 0, g: 0, b: 0, a: 0}
+ PlayerLocationIconSize: 1.25
--- !u!1 &1187011251
GameObject:
m_ObjectHideFlags: 0
@@ -3236,13 +3364,13 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1928037890}
- {fileID: 302169897}
- {fileID: 719378462}
- {fileID: 67477253}
m_Father: {fileID: 676739119}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3315,12 +3443,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1190354608}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 15, y: 15, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1124877095}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &1190354610
MeshCollider:
@@ -3330,9 +3459,17 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1190354608}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 4
+ serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
@@ -3347,11 +3484,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -3373,9 +3516,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1190354612
MeshFilter:
@@ -3410,12 +3555,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1223346182}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 789220865}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1223346184
MeshRenderer:
@@ -3428,11 +3574,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -3454,9 +3606,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1223346185
MeshFilter:
@@ -3494,10 +3648,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 652433664}
m_Father: {fileID: 676739119}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3568,12 +3722,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1307174805}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0.7071068, z: -0.7071068, w: 0}
m_LocalPosition: {x: 0, y: 10, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1532567794}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 180, z: 0}
--- !u!20 &1307174807
Camera:
@@ -3589,9 +3744,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -3606,7 +3769,7 @@ Camera:
m_Depth: 0
m_CullingMask:
serializedVersion: 2
- m_Bits: 5632
+ m_Bits: 5120
m_RenderingPath: 1
m_TargetTexture: {fileID: 8400000, guid: 06ec5ef8a5830fc44b1ac1a6e123add5, type: 2}
m_TargetDisplay: 0
@@ -3684,8 +3847,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c03374f22d0a3d4882018de66894a84, type: 3}
m_Name:
m_EditorClassIdentifier:
- _volMaterial: {fileID: 2100000, guid: ad63650ae6d6cc542a5aad16694b3c46, type: 2}
- GridTransform: {fileID: 753458617}
+ GridMesh: {fileID: 0}
+ GridCamera: {fileID: 0}
+ Settings: {fileID: 0}
+ NebulaSurfaceHeight: {fileID: 0}
+ NebulaPatchHeight: {fileID: 0}
+ NebulaPatch: {fileID: 0}
+ NebulaTint: {fileID: 0}
--- !u!114 &1314993071
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -3744,7 +3912,9 @@ MonoBehaviour:
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
- m_BeforeStackBundles: []
+ m_BeforeStackBundles:
+ - assemblyQualifiedName: UnityEngine.Rendering.PostProcessing.DepthOfField, Assembly-CSharp,
+ Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_AfterStackBundles: []
--- !u!20 &1314993072
Camera:
@@ -3760,9 +3930,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -3796,12 +3974,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1314993065}
+ serializedVersion: 2
m_LocalRotation: {x: 0.2267062, y: 0.44560468, z: -0.11773936, w: 0.8580083}
m_LocalPosition: {x: -299.03247, y: -38.375748, z: -188.30061}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0}
--- !u!1 &1328848282
GameObject:
@@ -3826,15 +4005,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1328848282}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1563996706}
- {fileID: 1584275846}
- {fileID: 855309155}
m_Father: {fileID: 753458617}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1388747984
GameObject:
@@ -3859,13 +4039,14 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1388747984}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 3}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1955533727}
m_Father: {fileID: 2067021207}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1404197274
GameObject:
@@ -3960,9 +4141,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -3996,12 +4185,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1404197274}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -1}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1404197280
MonoBehaviour:
@@ -4051,9 +4241,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
+ m_Iso: 200
+ m_ShutterSpeed: 0.005
+ m_Aperture: 16
+ m_FocusDistance: 10
+ m_FocalLength: 50
+ m_BladeCount: 5
+ m_Curvature: {x: 2, y: 11}
+ m_BarrelClipping: 0.25
+ m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
- m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -4087,12 +4285,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1462895483}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -1}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1462895486
MonoBehaviour:
@@ -4155,12 +4354,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1466792826}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 753458617}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1466792829
MeshRenderer:
@@ -4173,11 +4373,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4199,9 +4405,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1466792830
MeshFilter:
@@ -4254,7 +4462,11 @@ MonoBehaviour:
NearClipPlane: 0.3
FarClipPlane: 4096
Dutch: 0
+ ModeOverride: 0
LensShift: {x: 0, y: 0}
+ GateFit: 2
+ FocusDistance: 10
+ m_SensorSize: {x: 1, y: 1}
m_Transitions:
m_BlendHint: 0
m_InheritPosition: 0
@@ -4270,13 +4482,14 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1479254159}
+ serializedVersion: 2
m_LocalRotation: {x: 0.2267062, y: 0.44560468, z: -0.11773936, w: 0.8580083}
m_LocalPosition: {x: -299.03247, y: -38.375748, z: -188.30061}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1547641803}
m_Father: {fileID: 0}
- m_RootOrder: 14
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1489231074
GameObject:
@@ -4303,12 +4516,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1489231074}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 789220865}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1489231076
MeshRenderer:
@@ -4321,11 +4535,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4347,9 +4567,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1489231077
MeshFilter:
@@ -4391,12 +4613,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1520024705}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 0.87800574, y: 0.87800574, z: 1.7560115}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1124877095}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &1520024707
MeshCollider:
@@ -4406,9 +4629,17 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1520024705}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 4
+ serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
@@ -4423,11 +4654,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4449,9 +4686,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1520024709
MeshFilter:
@@ -4484,16 +4723,17 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1532567792}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1073373264}
- {fileID: 1307174806}
- {fileID: 942014701}
- {fileID: 375851676}
m_Father: {fileID: 0}
- m_RootOrder: 12
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1538186654
GameObject:
@@ -4523,9 +4763,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 67477253}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4591,20 +4831,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -4656,12 +4899,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1547641802}
+ serializedVersion: 2
m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -58.728523, y: 4.327759, z: 429.1176}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1479254161}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1547641804
MonoBehaviour:
@@ -4770,12 +5014,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1563996705}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1328848283}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1563996707
MeshRenderer:
@@ -4788,11 +5033,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4814,9 +5065,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1563996708
MeshFilter:
@@ -4851,12 +5104,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1584275845}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1328848283}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1584275847
MeshRenderer:
@@ -4869,11 +5123,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4895,9 +5155,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1584275848
MeshFilter:
@@ -4912,6 +5174,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 1090070598}
m_Modifications:
- target: {fileID: 7852221720480299766, guid: 046dde0f4600bce41ad33c476f99b309,
@@ -4994,32 +5257,15 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 40
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720741322892, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 40
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.x
- value: 20
- objectReference: {fileID: 0}
- - target: {fileID: 7852221720969441490, guid: 046dde0f4600bce41ad33c476f99b309,
- type: 3}
- propertyPath: m_LocalScale.y
- value: 20
- objectReference: {fileID: 0}
- target: {fileID: 7852221720971737233, guid: 046dde0f4600bce41ad33c476f99b309,
type: 3}
propertyPath: m_LocalPosition.y
value: -4
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 046dde0f4600bce41ad33c476f99b309, type: 3}
--- !u!4 &1647759374 stripped
Transform:
@@ -5055,9 +5301,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 719378462}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -5127,12 +5373,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1807969626}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 753458617}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1807969629
MeshRenderer:
@@ -5145,11 +5392,17 @@ MeshRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
m_MotionVectors: 2
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5171,9 +5424,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1807969630
MeshFilter:
@@ -5211,9 +5466,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 652433664}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -5279,20 +5534,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -5359,12 +5617,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1812750579}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!850595691 &1821185769
LightingSettings:
@@ -5373,8 +5632,7 @@ LightingSettings:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Settings.lighting
- serializedVersion: 3
- m_GIWorkflowMode: 1
+ serializedVersion: 10
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
@@ -5382,11 +5640,19 @@ LightingSettings:
m_AlbedoBoost: 1
m_IndirectOutputScale: 1
m_UsingShadowmask: 0
- m_BakeBackend: 0
+ m_BakeBackend: 1
m_LightmapMaxSize: 1024
+ m_LightmapSizeFixed: 0
+ m_UseMipmapLimits: 1
m_BakeResolution: 50
m_Padding: 2
- m_TextureCompression: 0
+ m_LightmapCompression: 0
+ m_LightmapPackingMode: 1
+ m_LightmapPackingMethod: 0
+ m_XAtlasPackingAttempts: 16384
+ m_XAtlasBruteForce: 0
+ m_XAtlasBlockAlign: 0
+ m_XAtlasRepackUnderutilizedLightmaps: 1
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
@@ -5397,13 +5663,11 @@ LightingSettings:
m_FilterMode: 1
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
m_ExportTrainingData: 0
+ m_EnableWorkerProcessBaking: 1
m_TrainingDataDestination: TrainingData
m_RealtimeResolution: 1
m_ForceWhiteAlbedo: 0
m_ForceUpdates: 0
- m_FinalGather: 0
- m_FinalGatherRayCount: 1024
- m_FinalGatherFiltering: 1
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
@@ -5413,7 +5677,7 @@ LightingSettings:
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
- m_PVREnvironmentMIS: 0
+ m_PVREnvironmentImportanceSampling: 0
m_PVRFilteringMode: 0
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
@@ -5427,6 +5691,7 @@ LightingSettings:
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_RespectSceneVisibilityWhenBakingGI: 0
--- !u!1 &1928037889
GameObject:
m_ObjectHideFlags: 0
@@ -5454,11 +5719,11 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 115022189}
- {fileID: 2008674250}
m_Father: {fileID: 1187011252}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -5514,11 +5779,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5540,9 +5811,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1940409867
MeshFilter:
@@ -5559,12 +5832,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1940409864}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.5}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1183010124}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1955533722
GameObject:
@@ -5606,9 +5880,17 @@ MeshCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1955533722}
m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
m_IsTrigger: 0
+ m_ProvidesContacts: 0
m_Enabled: 1
- serializedVersion: 4
+ serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
@@ -5623,11 +5905,17 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_ForceMeshLod: -1
+ m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5649,9 +5937,11 @@ MeshRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
+ m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
+ m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1955533726
MeshFilter:
@@ -5668,12 +5958,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1955533722}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.25, y: 0.25, z: 0}
m_LocalScale: {x: 0.1, y: 0.002, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1388747985}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1988754119
GameObject:
@@ -5712,12 +6003,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1988754119}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2008674249
GameObject:
@@ -5747,9 +6039,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1928037890}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -5815,20 +6107,23 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
+ m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
- m_enableWordWrapping: 1
+ m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
+ m_ActiveFontFeatures: 6e72656b6167696c
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
+ m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
@@ -5882,10 +6177,10 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 453065208}
m_Father: {fileID: 652433664}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -5958,9 +6253,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 302169897}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -6028,20 +6323,22 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2067021206}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.5, y: -0.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 820952285}
- {fileID: 1388747985}
m_Father: {fileID: 1183010124}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &6977256487279145163
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 753458617}
m_Modifications:
- target: {fileID: 2784739443721397315, guid: efd1f097ce29ffa48bb0045d6502f55d,
@@ -6115,6 +6412,13 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 6977256487485077368, guid: efd1f097ce29ffa48bb0045d6502f55d,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 599096484}
m_SourcePrefab: {fileID: 100100000, guid: efd1f097ce29ffa48bb0045d6502f55d, type: 3}
--- !u!4 &6977256487279145164 stripped
Transform:
@@ -6127,6 +6431,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 7383646976225659329, guid: eb3a880755444d144a4d7f13ef11df77,
@@ -6200,4 +6505,26 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: eb3a880755444d144a4d7f13ef11df77, type: 3}
+--- !u!1660057539 &9223372036854775807
+SceneRoots:
+ m_ObjectHideFlags: 0
+ m_Roots:
+ - {fileID: 1988754121}
+ - {fileID: 1812750581}
+ - {fileID: 7383646976240752633}
+ - {fileID: 426221916}
+ - {fileID: 924112690}
+ - {fileID: 1404197278}
+ - {fileID: 1462895485}
+ - {fileID: 1183010124}
+ - {fileID: 344649059}
+ - {fileID: 1314993073}
+ - {fileID: 983613692}
+ - {fileID: 753458617}
+ - {fileID: 1532567794}
+ - {fileID: 1090070598}
+ - {fileID: 1479254161}
diff --git a/Assets/Scripts/Editor/AmbientEdgeVerify.cs b/Assets/Scripts/Editor/AmbientEdgeVerify.cs
new file mode 100644
index 000000000..4a56b6ea9
--- /dev/null
+++ b/Assets/Scripts/Editor/AmbientEdgeVerify.cs
@@ -0,0 +1,244 @@
+using System;
+using System.IO;
+using GameCult.Caching;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using UnityEngine.Experimental.Rendering;
+using UnityEngine.Rendering;
+
+namespace Aetheria.EditorTools
+{
+ ///
+ /// Batchmode check for campaign aetheria-gravity, cut ambient-follows-populated-area: the ambient tint falls softly to
+ /// dark and never hits an edge (ruling dark-beyond-populated-area). It opens ARPG.unity, takes the Ambient Fog Light the
+ /// scene wires into ZoneRenderer, sizes it for a generated zone with ZoneRenderer.FitAmbientLight (the call LoadZone
+ /// makes, not a copy), renders it through an orthographic camera that culls its layer into a target built from the descriptor of the production
+ /// Fog Tint render texture (B10G11R11_UFloatPack32, the format the Tint cameras write), and checks the
+ /// radial profile against exp(-(r/P)^2 ln(1/_EdgeBrightness)) times the centre, to within what that format stores (a
+ /// 5-bit mantissa) wherever the gaussian is at least a few ZoneRenderer.AmbientFloor (P is Zone.PopulatedRadius), that it
+ /// is lit at Pack.Radius, that the quad's rim and every lit texel beside a dark one are
+ /// at most two floors, and that no two lit texels are more than half a decade apart.
+ ///
+ /// Renders, so it needs a graphics device: run WITHOUT -nographics.
+ /// Unity -batchmode -projectPath <repo> -executeMethod Aetheria.EditorTools.AmbientEdgeVerify.Run -logFile <path>
+ /// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure.
+ ///
+ public static class AmbientEdgeVerify
+ {
+ const string Tag = "[AmbientEdgeVerify]";
+ const int Size = 512;
+ const int AmbientLayer = 13;
+ const string FogTintPath = "Assets/Resources/Fog Tint.renderTexture";
+ // A float with a 5-bit mantissa (Fog Tint's blue) steps by 2^-5 of its value, and the target truncates to a step.
+ const float FormatRelativeError = 1f / 32f;
+ // The profile is held to the gaussian where it is at least this many floors; below that the format's tail is measured, not held.
+ const float FaithfulFloors = 8f;
+ // The rim and every lit texel beside a dark one hold at most this many floors, 2^-14 (the smallest normal of the format's
+ // floats): the one step to dark is the format's last value. Measured on the Fog Tint format it is 1.5 floors at most.
+ const float StepToDarkFloors = 2f;
+ static bool _ok = true;
+
+ static void OnLog(string message, string stack, LogType type)
+ {
+ if ((type == LogType.Error || type == LogType.Exception || type == LogType.Assert) && !message.StartsWith(Tag))
+ Fail("logged-error", message.Split('\n')[0]);
+ }
+
+ static void Fail(string check, string detail)
+ {
+ Debug.LogError($"{Tag} FAIL {check}: {detail}");
+ _ok = false;
+ }
+
+ public static void Run()
+ {
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Null)
+ {
+ Debug.LogError($"{Tag} FAIL: no graphics device in this session; rerun batchmode without -nographics.");
+ EditorApplication.Exit(1);
+ return;
+ }
+ Application.logMessageReceived += OnLog;
+ var work = Path.Combine(Path.GetTempPath(), "ambient-edge-" + Guid.NewGuid().ToString("N"));
+ Directory.CreateDirectory(Path.Combine(work, "probe"));
+ try
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")
+ ?? throw new InvalidOperationException("No Settings.asset.");
+ // Generated zones have the populated radius at about .78 of the pack radius (p50 over 1500 zones): this one's
+ // pack radius is set so, which puts Pack.Radius where it sits in play, inside the quad's reach.
+ var probe = GravityFieldParityVerify.BuildZone(settings, Path.Combine(work, "probe"), out _);
+ var zone = GravityFieldParityVerify.BuildZone(settings, work, out _, probe.PopulatedRadius / .78f);
+ EditorSceneManager.OpenScene("Assets/Scenes/ARPG.unity", OpenSceneMode.Single);
+ try
+ {
+ var renderer = UnityEngine.Object.FindFirstObjectByType(FindObjectsInactive.Include);
+ if (renderer == null || renderer.AmbientLight == null) throw new InvalidOperationException("ARPG.unity wires no ZoneRenderer.AmbientLight.");
+ Check(renderer, zone);
+ }
+ finally
+ {
+ EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
+ }
+ Debug.Log(_ok ? $"{Tag} PASS" : $"{Tag} FAIL: see errors above");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"{Tag} FAIL exception: {e}");
+ _ok = false;
+ }
+ finally
+ {
+ Application.logMessageReceived -= OnLog;
+ try { Directory.Delete(work, true); } catch { }
+ }
+ EditorApplication.Exit(_ok ? 0 : 1);
+ }
+
+ // A bare ambient quad for the verifies that run LoadZone on a renderer built in code: the scene's material, no scene.
+ public static Transform NewAmbientLight()
+ {
+ var quad = new GameObject("Ambient Fog Light") { layer = AmbientLayer };
+ quad.AddComponent().sharedMesh = Resources.GetBuiltinResource("Quad.fbx");
+ quad.AddComponent().sharedMaterial = AssetDatabase.LoadAssetAtPath("Assets/Materials/Brushes/Sector Tint.mat");
+ return quad.transform;
+ }
+
+ static void Check(ZoneRenderer renderer, Zone zone)
+ {
+ var production = AssetDatabase.LoadAssetAtPath(FogTintPath);
+ if (production == null || production.graphicsFormat != GraphicsFormat.B10G11R11_UFloatPack32)
+ Fail("format", $"Fog Tint is {(production == null ? "missing" : production.graphicsFormat.ToString())}, not the B10G11R11_UFloatPack32 that AmbientFloor and FormatRelativeError describe");
+ var light = renderer.AmbientLight;
+ if (light.parent != null) Fail("wiring", $"the ambient quad sits under {light.parent.name}, whose scale is the pack radius's");
+ if (light.gameObject.layer != AmbientLayer) Fail("wiring", $"the ambient quad is on layer {light.gameObject.layer}, not {AmbientLayer}");
+
+ ZoneRenderer.FitAmbientLight(light, zone);
+ var meshRenderer = light.GetComponent();
+ var material = meshRenderer.sharedMaterial;
+ var edge = material.GetFloat("_EdgeBrightness");
+ var tint = material.GetColor("_Color").linear;
+ var centre = material.GetFloat("_Depth") * Mathf.Max(tint.r, Mathf.Max(tint.g, tint.b));
+ var populated = zone.PopulatedRadius;
+ var half = light.localScale.x / 2f;
+ Debug.Log($"{Tag} populated radius {populated:F1} u, pack radius {zone.Pack.Radius:F1} u, quad half-extent {half:F1} u, edge brightness {edge:G3}, centre {centre:G4}");
+ if (!(populated > 0f) || !(half > populated)) { Fail("sizing", $"the quad half-extent {half:F1} u does not reach beyond the populated radius {populated:F1} u"); return; }
+
+ Render(light, half * 1.05f, out var value, out var world);
+ var floor = ZoneRenderer.AmbientFloor;
+ Debug.Log($"{Tag} format floor {floor:E2} = {floor / centre:E2} of the centre; tail (drawn / floor): "
+ + string.Join(" ", System.Linq.Enumerable.Select(new[] { 1.5f, 1.75f, 1.9f, 2f, 2.05f, 2.1f, 2.15f, 2.2f },
+ k => $"{k}P:{Sample(value, world, new Vector2(k * populated, 0f)) / floor:G3}")));
+ var logFall = Mathf.Log(1f / edge);
+ foreach (var k in new[] { 0f, .5f, 1f, 1.5f, 2f })
+ {
+ var drawn = Sample(value, world, new Vector2(k * populated, 0f));
+ Debug.Log($"{Tag} r = {k} P: drawn {drawn:G5}, expected {centre * Mathf.Exp(-k * k * logFall):G5}");
+ }
+ var worstProfile = 0f;
+ var compared = 0;
+ var rim = 0f;
+ for (var i = 0; i < value.Length; i++)
+ {
+ if (float.IsNaN(value[i])) { Fail("texels", $"texel {i}: NaN"); return; }
+ var r = world[i].magnitude;
+ var expected = centre * Mathf.Exp(-(r / populated) * (r / populated) * logFall);
+ if (r <= half && expected >= FaithfulFloors * floor)
+ {
+ var error = Mathf.Abs(value[i] - expected) / (FormatRelativeError * expected);
+ worstProfile = Mathf.Max(worstProfile, error);
+ compared++;
+ if (error > 1f) { Fail("profile", $"at r = {r / populated:F3} P: expected {expected:G5}, drawn {value[i]:G5}, off by {error:F2} times the format's step"); return; }
+ }
+ // The rim: the texels in the quad's outermost ring (within two texels of its edge).
+ var edgeDistance = half - Mathf.Max(Mathf.Abs(world[i].x), Mathf.Abs(world[i].y));
+ if (edgeDistance >= 0f && edgeDistance < 2f * (half * 1.05f * 2f / Size)) rim = Mathf.Max(rim, value[i]);
+ }
+ Debug.Log($"{Tag} profile: {compared} texels held to the gaussian, worst error {worstProfile:F3} of the format's step; rim {rim / centre:E2} of the centre");
+ if (compared < Size * Size / 16) Fail("profile", $"only {compared} texels were held to the gaussian; the check is vacuous");
+ if (rim > floor * StepToDarkFloors) Fail("rim", $"the quad's rim is {rim / floor:G3} times the format floor");
+
+ var atPack = Sample(value, world, new Vector2(zone.Pack.Radius, 0f));
+ Debug.Log($"{Tag} at Pack.Radius: {atPack / centre:E2} of the centre");
+ if (!(atPack > 0f)) Fail("pack-radius", "the ambient is zero at Pack.Radius");
+
+ var worstJump = 0f;
+ for (var y = 0; y < Size; y++)
+ for (var x = 0; x < Size; x++)
+ {
+ var here = value[y * Size + x];
+ if (here <= 0f) continue;
+ foreach (var next in new[] { x + 1 < Size ? value[y * Size + x + 1] : 0f, y + 1 < Size ? value[(y + 1) * Size + x] : 0f })
+ {
+ if (next <= 0f) { if (here > floor * StepToDarkFloors) Fail("last-step", $"a lit texel of {here / floor:G3} floors sits beside a dark one"); continue; }
+ worstJump = Mathf.Max(worstJump, Mathf.Abs(Mathf.Log10(here / next)));
+ }
+ }
+ Debug.Log($"{Tag} largest jump between neighbouring lit texels: {worstJump:F3} decades (limit 0.5)");
+ if (worstJump > .5f) Fail("jump", $"neighbouring texels differ by {worstJump:F2} decades");
+ var lit = 0;
+ foreach (var v in value) if (v > 0f) lit++;
+ if (lit < Size * Size / 2) Fail("jump", $"only {lit} texels are lit; the check is vacuous");
+ }
+
+ static float Sample(float[] value, Vector2[] world, Vector2 at)
+ {
+ var best = 0;
+ for (var i = 1; i < world.Length; i++)
+ if ((world[i] - at).sqrMagnitude < (world[best] - at).sqrMagnitude) best = i;
+ return value[best];
+ }
+
+ // Renders the ambient layer through a downward orthographic camera centred on the origin, as the Tint cameras see it,
+ // and returns the brightest channel of every texel with the world xz of its centre, which is asked of the camera.
+ static void Render(Transform light, float half, out float[] value, out Vector2[] world)
+ {
+ var production = AssetDatabase.LoadAssetAtPath(FogTintPath) ?? throw new InvalidOperationException("No Fog Tint render texture.");
+ var rt = new RenderTexture(production.descriptor) { filterMode = FilterMode.Point };
+ var cameraObject = new GameObject("Ambient Edge Camera");
+ var read = new Texture2D(Size, Size, TextureFormat.RGBAFloat, false);
+ var previous = RenderTexture.active;
+ try
+ {
+ var camera = cameraObject.AddComponent();
+ camera.orthographic = true;
+ camera.orthographicSize = half;
+ camera.aspect = 1f;
+ camera.nearClipPlane = .3f;
+ camera.farClipPlane = 1000f;
+ camera.cullingMask = 1 << light.gameObject.layer;
+ camera.clearFlags = CameraClearFlags.SolidColor;
+ camera.backgroundColor = Color.black;
+ camera.allowHDR = false;
+ camera.allowMSAA = false;
+ camera.targetTexture = rt;
+ cameraObject.transform.SetPositionAndRotation(new Vector3(0f, 100f, 0f), Quaternion.Euler(90f, 0f, 0f));
+ camera.Render();
+
+ RenderTexture.active = rt;
+ read.ReadPixels(new Rect(0, 0, Size, Size), 0, 0);
+ read.Apply();
+ var pixels = read.GetPixelData(0);
+ value = new float[Size * Size];
+ for (var i = 0; i < value.Length; i++)
+ value[i] = Mathf.Max(pixels[4 * i], Mathf.Max(pixels[4 * i + 1], pixels[4 * i + 2]));
+ world = new Vector2[Size * Size];
+ for (var y = 0; y < Size; y++)
+ for (var x = 0; x < Size; x++)
+ {
+ var p = camera.ViewportToWorldPoint(new Vector3((x + .5f) / Size, (y + .5f) / Size, 100f));
+ world[y * Size + x] = new Vector2(p.x, p.z);
+ }
+ }
+ finally
+ {
+ RenderTexture.active = previous;
+ UnityEngine.Object.DestroyImmediate(cameraObject);
+ UnityEngine.Object.DestroyImmediate(read);
+ rt.Release();
+ UnityEngine.Object.DestroyImmediate(rt);
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/AmbientEdgeVerify.cs.meta b/Assets/Scripts/Editor/AmbientEdgeVerify.cs.meta
new file mode 100644
index 000000000..0962854de
--- /dev/null
+++ b/Assets/Scripts/Editor/AmbientEdgeVerify.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 63b03af05dfdae44c89e21ca7ebec892
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/CapabilityPresentationSmoke.cs b/Assets/Scripts/Editor/CapabilityPresentationSmoke.cs
new file mode 100644
index 000000000..75d97c63f
--- /dev/null
+++ b/Assets/Scripts/Editor/CapabilityPresentationSmoke.cs
@@ -0,0 +1,208 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using GameCult.Caching;
+using UnityEditor;
+using UnityEngine;
+using CultMath;
+using static CultMath.math;
+
+// Batch proof of the capability presenters' wiring, without a scene: a zone ship is bound to an EntityInstance through the
+// game's own SetEntity, and impacts and grabs are published on the ship's Capabilities exactly as the simulation does. A hull absorb spawns
+// one hull effect under the instance and, for the player's ship at ScreenShake 1, raises one camera impulse; ScreenShake 0
+// or another ship raises none; a shield absorb spawns no hull effect. The shield ripple itself (ShieldManager.ShowHit
+// needs a shield material and a rig) is looked at in the editor, not here. Grabs: a Tractor Beam prefab under the instance
+// is bound by the same SetEntity and presents a grab from events alone (emission at Power and the aim at the held point
+// from Started to Completed or Cancelled, nothing otherwise, nothing for another entity's grab).
+//
+// Unity -batchmode -nographics -projectPath -executeMethod CapabilityPresentationSmoke.Run -logFile
+//
+// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure.
+public static class CapabilityPresentationSmoke
+{
+ private const BindingFlags Any = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
+
+ public static void Run()
+ {
+ var work = Path.Combine(Path.GetTempPath(), $"capability-presentation-smoke-{Guid.NewGuid():N}");
+ GameObject[] objects = null;
+ try
+ {
+ Directory.CreateDirectory(work);
+ objects = Check(work);
+ Clean(objects, work);
+ EditorApplication.Exit(0);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ Clean(objects, work);
+ EditorApplication.Exit(1);
+ }
+ }
+
+ // Edit mode runs no Awake or Start; the smoke runs the ones the game's scene would have.
+ private static void Awaken(Component component) => component.GetType().GetMethod("Awake", Any)?.Invoke(component, null);
+
+ private static GameObject[] Check(string work)
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")?.GameplaySettings
+ ?? throw new InvalidOperationException("No Settings.asset.");
+
+ var shape = new Shape(5, 4);
+ foreach (var cell in shape.AllCoordinates) shape[cell] = true;
+ var hullData = new HullData
+ {
+ Name = "Smoke Hull", HullType = HullType.Ship, Shape = shape, Durability = 1000, Mass = 1000, Armor = 0
+ };
+ var cache = AetheriaStores.Open(Path.Combine(work, "smoke.cc"), catalogWritable: true);
+ cache.Upsert(new VerseGrammar { Revision = 1 });
+ cache.Upsert(hullData);
+ cache.FlushAsync().Wait();
+ var ledger = new ProvenanceLedger();
+ for (var i = 1; i <= 8; i++) ledger.Lots[i] = new Lot { Origin = new Attributed(), Quality = 1 };
+ var items = new ItemManager(cache, ledger, settings, _ => { });
+ var zone = new Zone(items, new PlanetSettings(), new ZonePack(), new GalaxyZone { Name = "Smoke", Owner = null }, null);
+ var hullRef = items.ItemData.RefOf(items.ItemData.GetByName("Smoke Hull"));
+ var ship = new Ship(items, zone, new EquippableItem { Data = hullRef, Durability = 1000, Lot = 1 }, new EntitySettings());
+ var other = new Ship(items, zone, new EquippableItem { Data = hullRef, Durability = 1000, Lot = 2 }, new EntitySettings());
+ zone.Admit(ship, piloted: false);
+ zone.Admit(other, piloted: false);
+
+ // The scene's side: the tuning object with a pooled effect, and the game manager that names the player's ship.
+ var feedbackObject = new GameObject("Smoke Impact Feedback");
+ var feedback = feedbackObject.AddComponent();
+ Awaken(feedback);
+ var effectObject = new GameObject("Smoke Hull Effect");
+ feedback.HullEffect = effectObject.AddComponent();
+ var managerObject = new GameObject("Smoke Game Manager");
+ var manager = managerObject.AddComponent();
+ typeof(ActionGameManager).GetProperty("Instance", Any).SetValue(null, manager);
+ manager.CurrentEntity = ship;
+
+ var beamPrefab = AssetDatabase.LoadAssetAtPath("Assets/Content/Prefabs/Tractor Beam.prefab")
+ ?? throw new InvalidOperationException("No Tractor Beam prefab.");
+ // An entity's instance as the game builds it: the beam is a child before SetEntity on both ship paths, so the
+ // binder finds it as the game does.
+ (GameObject Object, EntityInstance Instance, TractorBeam Beam) Bound(string name, Entity entity)
+ {
+ var go = new GameObject(name);
+ var bound = go.AddComponent();
+ Awaken(bound);
+ bound.HullColliders = new HullCollider[0];
+ bound.RadiatorHardpoints = new RadiatorHardpoint[0];
+ bound.ThrusterHardpoints = new ThrusterHardpoint[0];
+ bound.WeaponHardpoints = new WeaponHardpoint[0];
+ bound.ArticulationPoints = new ArticulationPoint[0];
+ var tractor = ((GameObject)PrefabUtility.InstantiatePrefab(beamPrefab, go.transform)).GetComponent();
+ tractor.Power = .8f;
+ tractor.Direction = Vector3.forward;
+ bound.SetEntity(null, entity);
+ return (go, bound, tractor);
+ }
+ var (instanceObject, instance, beam) = Bound("Smoke Entity Instance", ship);
+ var (otherObject, _, otherBeam) = Bound("Smoke Other Instance", other);
+
+ int Effects() => instance.GetComponentsInChildren(true).Count(p => p != null && !p.isOriginalPrototype);
+ void Expect(string what, int effects, int kicks)
+ {
+ if (Effects() != effects || feedback.KicksRaised != kicks)
+ throw new InvalidOperationException($"{what}: {Effects()} hull effects (want {effects}), {feedback.KicksRaised} impulses (want {kicks}).");
+ }
+ AbsorbEvent Hit(AbsorbLayer layer) => new AbsorbEvent(float3(1f, 0f, 2f), float3(0f, 0f, 1f), 100f, DamageType.Kinetic, layer);
+
+ ActionGameManager.PlayerSettings.GraphicsSettings.ScreenShake = 1f;
+ ship.Capabilities.PublishAbsorb(Hit(AbsorbLayer.Hull));
+ Expect("player's hull hit", 1, 1);
+ var effect = instance.GetComponentsInChildren(true).Single(p => !p.isOriginalPrototype);
+ var drawn = DrawAhead.Carried(ship, float3(1f, 0f, 2f), ActionGameManager.Clock.Lead);
+ if (abs(effect.transform.position.x - drawn.x) > 1e-3f || abs(effect.transform.position.z - drawn.z) > 1e-3f)
+ throw new InvalidOperationException("The hull effect is not at the drawn impact point.");
+
+ ActionGameManager.PlayerSettings.GraphicsSettings.ScreenShake = 0f;
+ ship.Capabilities.PublishAbsorb(Hit(AbsorbLayer.Hull));
+ Expect("hull hit at ScreenShake 0", 2, 1);
+
+ ActionGameManager.PlayerSettings.GraphicsSettings.ScreenShake = 1f;
+ manager.CurrentEntity = other;
+ ship.Capabilities.PublishAbsorb(Hit(AbsorbLayer.Hull));
+ // An untracked ship is not drawn at (ActionGameManager.DrawsAt, since contact-hud): no hull effect, no impulse.
+ Expect("hull hit on an untracked ship", 2, 1);
+
+ // Once the player's instruments track it, the same hit is drawn.
+ other.VisibleEntities.Add(ship);
+ ship.Capabilities.PublishAbsorb(Hit(AbsorbLayer.Hull));
+ Expect("hull hit on a tracked ship", 3, 1);
+ other.VisibleEntities.Remove(ship);
+
+ manager.CurrentEntity = ship;
+ ship.Capabilities.PublishAbsorb(Hit(AbsorbLayer.Shield));
+ Expect("player's shield hit", 3, 2);
+
+ // Grabs: the beam presents the simulation's events and nothing else.
+ float Emission() => beam.ParticleSystem.emission.rateOverTimeMultiplier;
+ void ExpectBeam(string what, float emission, bool towardHeld)
+ {
+ beam.Update();
+ var forward = beam.transform.forward;
+ var aimed = towardHeld ? forward.x > .999f : forward.z > .999f;
+ if (abs(Emission() - emission) > 1e-4f || !aimed)
+ throw new InvalidOperationException($"{what}: emission {Emission()} (want {emission}), forward {forward} (want {(towardHeld ? "+x" : "+z")}).");
+ }
+ GrabEvent Grab(GrabPhase phase, float3 at) => new GrabEvent(new FloatingBodyId(7), phase, at, 1f);
+
+ ExpectBeam("idle beam", 0f, false);
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Started, float3(20f, 0f, 0f)));
+ ExpectBeam("grab started", .8f, true);
+ foreach (var phase in new[] { GrabPhase.Extend, GrabPhase.Envelop, GrabPhase.Pull })
+ {
+ ship.Capabilities.PublishGrab(Grab(phase, float3(20f, 0f, 0f)));
+ ExpectBeam($"grab {phase}", .8f, true);
+ }
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Completed, float3(20f, 0f, 0f)));
+ ExpectBeam("grab completed", 0f, false);
+
+ // A grab cancelled after its item vanished carries no position: the beam goes dark and never turns toward it.
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Started, float3(20f, 0f, 0f)));
+ ExpectBeam("second grab started", .8f, true);
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Cancelled, float3(0f, 0f, 0f)));
+ ExpectBeam("grab cancelled", 0f, false);
+
+ // Aim is on the ground plane: a beam above the held point does not pitch toward it.
+ var beamHome = beam.transform.position;
+ beam.transform.position = beamHome + new Vector3(0f, 10f, 0f);
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Started, float3(20f, 7f, 0f)));
+ ExpectBeam("grab from above", .8f, true);
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Completed, float3(20f, 7f, 0f)));
+ beam.transform.position = beamHome;
+
+ // A grab held at the beam's own position has no direction to take: the beam keeps the aim it had.
+ beam.Direction = Vector3.right;
+ var atBeam = float3(beam.transform.position.x, 0f, beam.transform.position.z);
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Started, atBeam));
+ ExpectBeam("grab at the beam", .8f, true);
+ ship.Capabilities.PublishGrab(Grab(GrabPhase.Completed, atBeam));
+ beam.Direction = Vector3.forward;
+ ExpectBeam("after the grab at the beam", 0f, false);
+
+ // The beam belongs to the ship's entity: another entity's grab, with its own beam bound, moves only that beam.
+ other.Capabilities.PublishGrab(Grab(GrabPhase.Started, float3(20f, 0f, 0f)));
+ ExpectBeam("another entity's grab", 0f, false);
+ otherBeam.Update();
+ if (abs(otherBeam.ParticleSystem.emission.rateOverTimeMultiplier - .8f) > 1e-4f)
+ throw new InvalidOperationException("The other entity's own beam did not present its grab.");
+
+ Debug.Log("CAPABILITY_PRESENTATION_SMOKE ok effects=3 impulses=2 grabs=ok");
+ return new[] { feedbackObject, effectObject, managerObject, instanceObject, otherObject };
+ }
+
+ private static void Clean(GameObject[] objects, string work)
+ {
+ if (objects != null)
+ foreach (var go in objects)
+ if (go != null) UnityEngine.Object.DestroyImmediate(go);
+ try { if (Directory.Exists(work)) Directory.Delete(work, true); }
+ catch (Exception error) { Debug.LogWarning($"Impact presenter smoke left {work}: {error.Message}"); }
+ }
+}
diff --git a/Assets/Scripts/Editor/CapabilityPresentationSmoke.cs.meta b/Assets/Scripts/Editor/CapabilityPresentationSmoke.cs.meta
new file mode 100644
index 000000000..05df104cd
--- /dev/null
+++ b/Assets/Scripts/Editor/CapabilityPresentationSmoke.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: b1b27e4493b2cfe48805c786a5090cd3
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/DrawnPoseWiringVerify.cs b/Assets/Scripts/Editor/DrawnPoseWiringVerify.cs
new file mode 100644
index 000000000..8a170dbde
--- /dev/null
+++ b/Assets/Scripts/Editor/DrawnPoseWiringVerify.cs
@@ -0,0 +1,216 @@
+using System;
+using System.Collections;
+using System.IO;
+using System.Linq;
+using GameCult.Caching;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using float2 = CultMath.float2;
+using float3 = CultMath.float3;
+
+// Batch proof that the presenters read the drawn pose through the clock: DrawnPoseTests pins the pose maths headlessly,
+// and this is what pins that each presenter passes ActionGameManager.Clock.Lead into it. A zone is loaded into a fresh
+// ZoneRenderer with the pickup and mine prefabs ARPG.unity's ZoneRenderer names; a loose Projectile is launched on the
+// zone. The zone is stepped once, then the clock is set to leads 0, 0.008 and 0.015 s with no step, and each presenter's
+// own Update places its transform. A body is drawn at its last step plus its step velocity times the lead, spelled here
+// from the body's fields, so a presenter that reads lead 0 (or half the lead) sits on the step and fails.
+//
+// Reached: ItemPickup, MineInstance, Projectile.Draw. Not reached: ZoneRenderer.Update (Lower needs a ComputeBuffer, a
+// GPU device) and the ActionGameManager markers (they need the ARPG scene running); a Lower split so its record fill is
+// pure, or a run with a GPU and ARPG.unity in play mode, would reach them.
+//
+// Unity -batchmode -nographics -projectPath -executeMethod Aetheria.EditorTools.DrawnPoseWiringVerify.Run -logFile
+//
+// Do not pass -quit: Run enters play mode (a domain reload), the check runs there, and the Editor exits itself, 0 on
+// success and 1 on any failure.
+namespace Aetheria.EditorTools
+{
+ [InitializeOnLoad]
+ public static class DrawnPoseWiringVerify
+ {
+ private const string Tag = "[DrawnPoseWiringVerify]";
+ private const string Flag = "DrawnPoseWiringVerify.running";
+ private const string Wiring = "DrawnPoseWiringVerify.wiring";
+ private const double Budget = 300; // real seconds
+ private const float RoundSpeed = 100f, Tolerance = 1e-3f;
+ private static IEnumerator _check;
+ private static double _started;
+ private static string _work;
+
+ static DrawnPoseWiringVerify()
+ {
+ if (SessionState.GetBool(Flag, false)) EditorApplication.playModeStateChanged += OnPlayMode;
+ }
+
+ public static void Run()
+ {
+ try
+ {
+ SessionState.SetString(Wiring, ReadWiring());
+ SessionState.SetBool(Flag, true);
+ EditorApplication.EnterPlaymode();
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ EditorApplication.Exit(1);
+ }
+ }
+
+ private static void OnPlayMode(PlayModeStateChange change)
+ {
+ if (change != PlayModeStateChange.EnteredPlayMode) return;
+ _work = Path.Combine(Path.GetTempPath(), $"drawn-pose-wiring-{Guid.NewGuid():N}");
+ Directory.CreateDirectory(_work);
+ _started = Time.realtimeSinceStartupAsDouble;
+ _check = Check();
+ EditorApplication.update += Step;
+ }
+
+ private static void Step()
+ {
+ try
+ {
+ if (Time.realtimeSinceStartupAsDouble - _started > Budget) throw new InvalidOperationException($"The check did not finish in {Budget} seconds.");
+ if (_check.MoveNext()) return;
+ Finish(0);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ Finish(1);
+ }
+ }
+
+ private static void Finish(int code)
+ {
+ EditorApplication.update -= Step;
+ SessionState.SetBool(Flag, false);
+ try { if (Directory.Exists(_work)) Directory.Delete(_work, true); } catch (Exception) { /* a temp directory */ }
+ EditorApplication.Exit(code);
+ }
+
+ private static void Require(bool condition, string what)
+ {
+ if (!condition) throw new InvalidOperationException(what);
+ }
+
+ private static IEnumerator Check()
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")?.GameplaySettings
+ ?? throw new InvalidOperationException("No Settings.asset.");
+ settings.FloaterLayerHeight = -1.5f; // nonzero, so a presenter that drops the floater layer fails
+
+ var wired = SessionState.GetString(Wiring, "").Split('|').Select(entry => entry.Split('=')).ToDictionary(pair => pair[0], pair => pair[1]);
+ var pickupPrefab = AssetDatabase.LoadAssetAtPath(wired["SimpleCommodityPickup"])?.GetComponent();
+ var minePrefab = AssetDatabase.LoadAssetAtPath(wired["MinePrefab"])?.GetComponent();
+ Require(pickupPrefab != null, "ZoneRenderer.SimpleCommodityPickup is not an ItemPickup in ARPG.unity.");
+ Require(minePrefab != null, "ZoneRenderer.MinePrefab is not a MineInstance in ARPG.unity.");
+
+ var oneCell = new Shape(1, 1);
+ oneCell[new CultMath.int2(0, 0)] = true;
+ var cache = AetheriaStores.Open(Path.Combine(_work, "wiring.cc"), catalogWritable: true);
+ cache.Upsert(new VerseGrammar { Revision = 1 });
+ cache.Upsert(new SimpleCommodityData { Name = "Wiring Ore", Shape = oneCell, MaxStack = 100 });
+ cache.FlushAsync().Wait();
+ var ledger = new ProvenanceLedger();
+ var items = new ItemManager(cache, ledger, settings, _ => { });
+ var zone = new Zone(items, new PlanetSettings(), new ZonePack(), null, null);
+
+ var rootObject = new GameObject("Wiring Zone Root");
+ var rendererObject = new GameObject("Wiring Zone Renderer");
+ rendererObject.SetActive(false); // inactive: ZoneRenderer.Update needs a GPU and is not part of this check
+ var renderer = rendererObject.AddComponent();
+ renderer.ZoneRoot = rootObject.transform;
+ renderer.SimpleCommodityPickup = pickupPrefab;
+ renderer.MinePrefab = minePrefab;
+ renderer.ItemManager = items;
+ renderer.SectorBrushes = new GameObject("Wiring Brushes").transform;
+ renderer.AmbientLight = AmbientEdgeVerify.NewAmbientLight();
+ renderer.SlimeGravityCamera = new GameObject("Wiring Gravity Camera").AddComponent();
+ var slimeObject = new GameObject("Wiring Slime");
+ slimeObject.SetActive(false);
+ renderer.SlimeRenderer = slimeObject.AddComponent();
+ renderer.LoadZone(zone);
+
+ var ore = new SimpleCommodity { Data = items.ItemData.RefOf(items.ItemData.GetByName("Wiring Ore")), Quantity = 7 };
+ var floating = zone.Release(ore, new float2(3, 4), new float2(10, 0));
+ var mine = new Mine
+ {
+ Body = new KinematicBody { Position = new float2(-20, 8), Velocity = new float2(0, 14) },
+ ArmingDelay = 1e6f, FuseDelay = 1f, Lifetime = 1e6f, BlastRadius = 1f
+ };
+ zone.Lay(mine);
+
+ // A round on its frozen line, no target and no outcome known: drawn at FireOrigin + direction * speed * (T - FireTime).
+ var shot = new PendingShot
+ {
+ ShotId = 1, FireOrigin = new float3(0, 0, 0), FireTime = 0f, TravelDirection = new float2(1, 0), Speed = RoundSpeed,
+ MaxRange = 1e6f, FireRange = 1e6f, CommitTime = 1e5f, ArrivalTime = 2e5f
+ };
+ var projectile = new GameObject("Wiring Round").AddComponent();
+ projectile.Launch(zone, shot, new Vector3(0, 0, 0));
+ yield return null;
+
+ zone.Update(.5f);
+
+ var pickup = rootObject.GetComponentsInChildren(true).Single(p => p.Item == ore);
+ var mineInstance = UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None).Single();
+
+ var pickupVelocity = floating.Body.TotalVelocity;
+ var mineVelocity = mine.Body.TotalVelocity;
+ Require(Mathf.Abs(pickupVelocity.x) > 1f && Mathf.Abs(mineVelocity.y) > 1f, "The fixture's bodies stopped: a lead would not move them.");
+
+ Vector2 baseline = default;
+ foreach (var leadSeconds in new[] { 0f, .008f, .015f })
+ {
+ ActionGameManager.Clock.Reset();
+ if (leadSeconds > 0) ActionGameManager.Clock.Advance(leadSeconds, _ => throw new InvalidOperationException("a step ran"));
+ var lead = ActionGameManager.Clock.Lead;
+ Require(Mathf.Abs(lead - leadSeconds) < 1e-6f, $"The clock's lead is {lead}, not {leadSeconds}.");
+ yield return null;
+
+ var seen = pickup.transform.position;
+ var want = floating.Body.Position + pickupVelocity * lead;
+ Require(Mathf.Abs(seen.x - want.x) < Tolerance && Mathf.Abs(seen.z - want.y) < Tolerance,
+ $"ItemPickup at lead {lead}: drawn x/z {seen.x},{seen.z}, the step plus velocity times lead {want.x},{want.y}.");
+
+ seen = mineInstance.transform.position;
+ want = mine.Body.Position + mineVelocity * lead;
+ Require(Mathf.Abs(seen.x - want.x) < Tolerance && Mathf.Abs(seen.z - want.y) < Tolerance,
+ $"MineInstance at lead {lead}: drawn x/z {seen.x},{seen.z}, the step plus velocity times lead {want.x},{want.y}.");
+ Require(Mathf.Abs(seen.y - DrawAhead.FloaterHeight(zone, settings, new float2(want.x, want.y), lead)) < Tolerance,
+ $"MineInstance y {seen.y} is not on the floater layer.");
+
+ // The round's line is a function of the drawn time: it moves RoundSpeed * lead along its direction between leads.
+ seen = projectile.transform.position;
+ if (leadSeconds == 0f) baseline = new Vector2(seen.x, seen.z);
+ var moved = new Vector2(seen.x, seen.z) - baseline;
+ Require(Mathf.Abs(moved.x - RoundSpeed * lead) < Tolerance && Mathf.Abs(moved.y) < Tolerance,
+ $"Projectile at lead {lead}: drawn {moved.x},{moved.y} past its lead-0 pose, expected {RoundSpeed * lead},0.");
+ }
+ ActionGameManager.Clock.Reset();
+ Debug.Log($"{Tag} ok: ItemPickup, MineInstance and Projectile draw at the clock's lead (0, 0.008, 0.015 s)");
+ }
+
+ // What ARPG.unity's ZoneRenderer names in the pickup and mine fields, read from the saved scene before the play session
+ // (a scene cannot be opened inside one) and carried across the domain reload as asset paths.
+ private static string ReadWiring()
+ {
+ var scene = EditorSceneManager.OpenScene("Assets/Scenes/ARPG.unity", OpenSceneMode.Additive);
+ try
+ {
+ var found = UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None)
+ .Where(r => r.gameObject.scene == scene).ToArray();
+ Require(found.Length == 1, $"ARPG.unity has {found.Length} ZoneRenderers.");
+ var wired = found[0];
+ return string.Join("|", new (string, UnityEngine.Object)[]
+ {
+ ("SimpleCommodityPickup", wired.SimpleCommodityPickup), ("MinePrefab", wired.MinePrefab)
+ }.Select(f => f.Item1 + "=" + (f.Item2 == null ? "" : AssetDatabase.GetAssetPath(f.Item2))));
+ }
+ finally { EditorSceneManager.CloseScene(scene, true); }
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/DrawnPoseWiringVerify.cs.meta b/Assets/Scripts/Editor/DrawnPoseWiringVerify.cs.meta
new file mode 100644
index 000000000..534bebdb6
--- /dev/null
+++ b/Assets/Scripts/Editor/DrawnPoseWiringVerify.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: c2270cf68a4af384eb715c8b5a55f5e8
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/EmojiCheck.cs b/Assets/Scripts/Editor/EmojiCheck.cs
new file mode 100644
index 000000000..1f464fd9f
--- /dev/null
+++ b/Assets/Scripts/Editor/EmojiCheck.cs
@@ -0,0 +1,222 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using TMPro;
+using UnityEditor;
+using UnityEngine;
+
+// Every single-code-point emoji of the pinned Unicode Emoji version that Twemoji draws, and the Pirates product
+// names read from the shipped catalog, render through an ordinary TMP text on the game's body font with no
+// missing code point, no blank glyph, ink in the emoji atlas, and each glyph served by the emoji asset or by the
+// body font itself, never by a third font. TMP Settings must route emoji by two named routes (operator ruling
+// emoji-fallback-route): the global fallback names Emoji.asset and the emoji fallback list is exactly Emoji.asset,
+// so dropping either fails.
+// Run as -executeMethod EmojiCheck.Run (exit 1 on failure in batchmode, as EngineAssetCheck). Corpus:
+// tools/emoji/emoji-singles.txt (from emoji-test.txt); the emoji Twemoji lacks are listed in
+// tools/emoji/emoji-unsupported.txt and reported, not rendered; -emojiLimit N spreads N entries evenly for a spike.
+// Every fully-qualified multi-code-point sequence (tools/emoji/emoji-sequences.txt: ZWJ, skin tone, flag, keycap,
+// tag) must also render as exactly one visible character, which needs `liga` on the rendering component: every
+// TMP text in every prefab and scene must have it, and so must one added at runtime (as ActionGameManager's
+// FACE AIM mark is), or a family or flag would show as its pieces.
+public static class EmojiCheck
+{
+ const string BodyFontPath = "Assets/Fonts/Ubuntu/Ubuntu-L Small SDF.asset";
+ const string PiratesFaction = "Pirates";
+ const int Chunk = 64;
+
+ [MenuItem("Aetheria/Text/Check Emoji Rendering")]
+ public static void Run()
+ {
+ var failures = new List();
+ var summary = RunCheck(failures);
+ foreach (var failure in failures.Take(20)) Debug.LogError(failure);
+ Debug.Log($"EmojiCheck: {summary}; {failures.Count} failure(s).");
+ if (Application.isBatchMode) EditorApplication.Exit(failures.Count == 0 ? 0 : 1);
+ }
+
+ // Public so a scratch driver can mutate TMP Settings in memory and watch this fail; adds to failures.
+ public static string RunCheck(List failures)
+ {
+ var emoji = AssetDatabase.LoadAssetAtPath(EmojiFont.AssetPath);
+ var body = AssetDatabase.LoadAssetAtPath(BodyFontPath);
+ if (emoji == null || body == null)
+ {
+ failures.Add("EmojiCheck: Emoji.asset or the body font is missing; run EmojiFont.Build first.");
+ return "nothing checked";
+ }
+
+ // Two routes (operator ruling emoji-fallback-route): the emoji fallback list is exactly Emoji.asset, and the global list below names it.
+ if (TMP_Settings.emojiFallbackTextAssets == null || TMP_Settings.emojiFallbackTextAssets.Count != 1 || TMP_Settings.emojiFallbackTextAssets[0] != emoji)
+ failures.Add("TMP Settings' emoji fallback list is not exactly Emoji.asset: FE0F-followed bases the body font draws will not reach Twemoji.");
+ if (TMP_Settings.fallbackFontAssets == null || !TMP_Settings.fallbackFontAssets.Contains(emoji))
+ failures.Add("TMP Settings' global fallback list does not name Emoji.asset: the route for every single code point is gone.");
+
+ var unsupported = new HashSet(LoadCodePoints("emoji-unsupported.txt"));
+ var corpus = LoadSingles().Where(cp => !unsupported.Contains(cp)).ToList();
+ var sequences = LoadSequences();
+ var missing = new HashSet();
+ TMP_Text.MissingCharacterEventCallback onMissing = (unicode, index, source, asset, component) => missing.Add(unicode);
+ TMP_Text.OnMissingCharacter += onMissing;
+
+ var canvas = new GameObject("EmojiCheck", typeof(Canvas));
+ var text = new GameObject("Text", typeof(RectTransform)).AddComponent();
+ text.transform.SetParent(canvas.transform, false);
+ text.font = body;
+ text.textWrappingMode = TextWrappingModes.NoWrap;
+ text.rectTransform.sizeDelta = new Vector2(100000, 100000);
+
+ int viaEmoji = 0, viaBody = 0, blank = 0, pirateNames = 0, notOne = 0, runtimeLiga = 0;
+ var strays = new HashSet();
+ try
+ {
+ void Render(string content, string label)
+ {
+ text.text = content;
+ text.ForceMeshUpdate();
+ for (var i = 0; i < text.textInfo.characterCount; i++)
+ {
+ var info = text.textInfo.characterInfo[i];
+ if (info.character == ' ' || info.elementType != TMP_TextElementType.Character) continue;
+ if (info.fontAsset == emoji) viaEmoji++;
+ else if (info.fontAsset == body) viaBody++;
+ else if (strays.Add($"{info.fontAsset.name}:{(int)info.character:X}"))
+ failures.Add($"U+{(int)info.character:X4} in {label} was served by {info.fontAsset.name}, not Emoji.asset or the body font");
+ if (info.fontAsset == emoji && info.textElement.glyph.glyphRect.width <= 0)
+ {
+ blank++;
+ failures.Add($"blank glyph U+{(int)info.character:X4} in {label}");
+ }
+ }
+ }
+
+ for (var i = 0; i < corpus.Count; i += Chunk)
+ {
+ var slice = corpus.Skip(i).Take(Chunk).ToList();
+ Render(string.Join(" ", slice.Select(char.ConvertFromUtf32)), $"chunk {i}");
+ }
+
+ // A text created at runtime inherits liga from TMP Settings, with no wiring of its own.
+ var runtime = new GameObject("Runtime", typeof(RectTransform));
+ runtime.transform.SetParent(canvas.transform, false);
+ runtimeLiga = runtime.AddComponent().fontFeatures
+ .Contains(UnityEngine.TextCore.OTL_FeatureTag.liga) ? 1 : 0;
+ if (runtimeLiga == 0) failures.Add("a TextMeshProUGUI added at runtime does not have liga: TMP Settings' features are not inherited");
+
+ // Sequences: space-separated groups, each of which must end as one visible character.
+ for (var i = 0; i < sequences.Count; i += Chunk)
+ {
+ var slice = sequences.Skip(i).Take(Chunk).ToList();
+ text.text = string.Join(" ", slice.Select(ToText));
+ text.ForceMeshUpdate();
+ var visible = new List { 0 };
+ var shown = new List { "" };
+ for (var c = 0; c < text.textInfo.characterCount; c++)
+ {
+ var info = text.textInfo.characterInfo[c];
+ if (info.character == ' ') { visible.Add(0); shown.Add(""); }
+ else if (info.isVisible)
+ {
+ visible[visible.Count - 1]++;
+ shown[shown.Count - 1] += $" U+{(int)info.character:X}:{info.fontAsset.name}";
+ }
+ }
+ if (visible.Count != slice.Count) failures.Add($"sequence chunk {i}: {visible.Count} groups rendered for {slice.Count} sequences");
+ for (var g = 0; g < Math.Min(visible.Count, slice.Count); g++)
+ if (visible[g] != 1)
+ {
+ notOne++;
+ failures.Add($"sequence {slice[g]} rendered {visible[g]} visible characters, not one:{shown[g]}");
+ }
+ }
+
+ // The Pirates names as the shipped catalog stores them, through the game's own catalog reader.
+ var catalogPath = Path.Combine(Directory.GetParent(Application.dataPath).FullName, "GameData", "Aetheria.cc");
+ using (var catalog = AetheriaStores.Open(catalogPath))
+ {
+ var pirates = catalog.GetAll().SingleOrDefault(faction => faction.Name == PiratesFaction);
+ if (pirates == null) failures.Add($"the catalog has no {PiratesFaction} faction");
+ else
+ {
+ var key = catalog.RefOf(pirates);
+ foreach (var product in catalog.GetAll().Where(product => product.Manufacturer.Equals(key)))
+ {
+ pirateNames++;
+ Render(product.Name, $"Pirates product name \"{product.Name}\"");
+ }
+ if (pirateNames == 0) failures.Add($"the catalog has no {PiratesFaction} products");
+ }
+ }
+ }
+ finally
+ {
+ TMP_Text.OnMissingCharacter -= onMissing;
+ UnityEngine.Object.DestroyImmediate(canvas);
+ }
+
+ foreach (var cp in missing.OrderBy(c => c)) failures.Add($"missing code point U+{cp:X4}");
+
+ // Every serialized TMP text has liga (an instance inherits it from its prefab, so this reads the effective value).
+ int texts = 0, withoutLiga = 0;
+ EmojiFont.VisitSerializedTexts(component =>
+ {
+ texts++;
+ if (!component.fontFeatures.Contains(UnityEngine.TextCore.OTL_FeatureTag.liga))
+ {
+ withoutLiga++;
+ failures.Add($"TMP text {component.name} has no liga: {GetPath(component)}");
+ }
+ return false;
+ });
+
+ // TMP over-allocates atlasTextures by doubling its capacity when a page is added, so entries past
+ // atlasTextureCount are null by design (3 pages in a 4-slot array). Only the used pages count.
+ long ink = 0, colour = 0;
+ for (var i = 0; i < emoji.atlasTextureCount; i++)
+ {
+ var page = emoji.atlasTextures[i];
+ if (page == null) { failures.Add($"emoji atlas page {i} of {emoji.atlasTextureCount} is null"); continue; }
+ var pixels = page.GetPixels32();
+ ink += pixels.LongCount(p => p.a != 0);
+ colour += pixels.LongCount(p => p.a != 0 && (p.r != p.g || p.g != p.b));
+ }
+ if (ink == 0) failures.Add("the emoji atlas holds no ink after rendering");
+ else if (colour == 0) failures.Add("the emoji atlas holds no coloured pixel: the glyphs rendered monochrome");
+
+ var pages = emoji.atlasTextureCount;
+ // Dynamic atlas content is cache: drop it so this check leaves the asset as Build wrote it.
+ emoji.ClearFontAssetData(true);
+ if (unsupported.Count > 0)
+ Debug.LogWarning($"EmojiCheck: Twemoji lacks {unsupported.Count} single-code-point emoji of the Emoji version: " +
+ string.Join(" ", unsupported.OrderBy(c => c).Select(c => $"U+{c:X4}")));
+ return $"{sequences.Count} sequences ({notOne} not one visible character), {texts} serialized TMP texts ({withoutLiga} without liga), runtime text liga {runtimeLiga}; " +
+ $"checked {corpus.Count} single code points ({unsupported.Count} not drawn by Twemoji, listed in the warning) + {pirateNames} Pirates product names, " +
+ $"{missing.Count} missing, {viaEmoji} glyphs via the emoji asset, {viaBody} via the body font, {strays.Count} via other fonts, {blank} blank, " +
+ $"{ink} atlas ink pixels of which {colour} coloured, {pages} atlas pages";
+ }
+
+ static string GetPath(Component component) =>
+ component.gameObject.scene.IsValid() ? component.gameObject.scene.path : AssetDatabase.GetAssetPath(component);
+
+ static string ToText(string sequence) => string.Concat(sequence.Split(' ').Select(cp => char.ConvertFromUtf32(Convert.ToInt32(cp, 16))));
+
+ static List LoadSequences() =>
+ File.ReadAllLines(Path.Combine(Directory.GetParent(Application.dataPath).FullName, "tools", "emoji", "emoji-sequences.txt"))
+ .Where(l => l.Length > 0).ToList();
+
+ static List LoadSingles()
+ {
+ var all = LoadCodePoints("emoji-singles.txt");
+ var args = Environment.GetCommandLineArgs();
+ var at = Array.IndexOf(args, "-emojiLimit");
+ if (at < 0 || at + 1 >= args.Length) return all;
+ var limit = int.Parse(args[at + 1]);
+ return Enumerable.Range(0, limit).Select(i => all[i * all.Count / limit]).ToList();
+ }
+
+ static List LoadCodePoints(string file)
+ {
+ var path = Path.Combine(Directory.GetParent(Application.dataPath).FullName, "tools", "emoji", file);
+ return File.ReadAllLines(path).Where(l => l.Length > 0).Select(l => Convert.ToInt32(l, 16)).ToList();
+ }
+}
diff --git a/Assets/Scripts/Editor/EmojiCheck.cs.meta b/Assets/Scripts/Editor/EmojiCheck.cs.meta
new file mode 100644
index 000000000..945280e85
--- /dev/null
+++ b/Assets/Scripts/Editor/EmojiCheck.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: c6f940add256a754daac8460fc79480d
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/EmojiFont.cs b/Assets/Scripts/Editor/EmojiFont.cs
new file mode 100644
index 000000000..9d50b95c1
--- /dev/null
+++ b/Assets/Scripts/Editor/EmojiFont.cs
@@ -0,0 +1,167 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using TMPro;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using UnityEngine.TextCore;
+using UnityEngine.TextCore.LowLevel;
+
+// The one writer of the emoji font asset and of TMP Settings' emoji routing. The font file is the
+// output of tools/emoji/fetch_emoji_font.py; the asset is a dynamic COLOR font asset whose atlas pages
+// are cache, filled on first use at runtime and cleared here. Every TMP text reaches emoji through TMP
+// Settings alone (no component names an emoji font), by two routes that both name only Emoji.asset (operator ruling
+// emoji-fallback-route): the global fallback serves every code point, including the 200 text-presentation emoji the
+// emoji list alone leaves unresolved; the emoji fallback list is what TMP tries first when FE0F follows, so a keycap
+// or FE0F/ZWJ sequence whose first code point the body font also draws reaches Twemoji, whose ligatures collapse it.
+// Sequences (ZWJ, skin tone, flag, keycap) resolve only through the emoji font's GSUB ligatures, and TMP applies
+// them per component, gated by that component's font features: EnableLigatures writes `liga` into every
+// serialized TMP text and into TMP Settings (so a text created later inherits it); there is no global switch.
+public static class EmojiFont
+{
+ public const string FontPath = "Assets/Fonts/Emoji/Twemoji.ttf";
+ public const string AssetPath = "Assets/Fonts/Emoji/Emoji.asset";
+
+ // Colour outlines (COLRv0) are rasterised at one size; 109 is the strike size a CBDT set needs.
+ const int SamplingPointSize = 64;
+ const int AtlasPadding = 4;
+ const int AtlasSize = 2048;
+
+ // Menu entry for interactive use; -executeMethod EmojiFont.Build for batchmode, exit 1 on failure.
+ [MenuItem("Aetheria/Text/Build Emoji Font")]
+ public static void Build()
+ {
+ var ok = TryBuild(out var message);
+ if (ok) Debug.Log(message); else Debug.LogError(message);
+ if (Application.isBatchMode) EditorApplication.Exit(ok ? 0 : 1);
+ }
+
+ static bool TryBuild(out string message)
+ {
+ var font = AssetDatabase.LoadAssetAtPath(FontPath);
+ if (font == null)
+ {
+ message = $"EmojiFont: {FontPath} is missing; run tools/emoji/fetch_emoji_font.py.";
+ return false;
+ }
+
+ // An existing asset keeps its GUID, so a second Build changes nothing the settings point at.
+ var asset = AssetDatabase.LoadAssetAtPath(AssetPath);
+ if (asset == null)
+ {
+ asset = TMP_FontAsset.CreateFontAsset(font, SamplingPointSize, AtlasPadding, GlyphRenderMode.COLOR,
+ AtlasSize, AtlasSize, AtlasPopulationMode.Dynamic, enableMultiAtlasSupport: true);
+ if (asset == null)
+ {
+ message = $"EmojiFont: TMP could not create a font asset from {FontPath}.";
+ return false;
+ }
+ asset.name = "Emoji";
+ AssetDatabase.CreateAsset(asset, AssetPath);
+ foreach (var page in asset.atlasTextures)
+ {
+ page.name = "Emoji Atlas";
+ AssetDatabase.AddObjectToAsset(page, asset);
+ }
+ asset.material.name = "Emoji Atlas Material";
+ AssetDatabase.AddObjectToAsset(asset.material, asset);
+ }
+
+ // The atlas pages are cache: Build leaves them empty, the same state EmojiCheck restores.
+ asset.ClearFontAssetData(true);
+
+ // Two routes: the global fallback serves every code point (text-presentation emoji too, U+263A without FE0F);
+ // the emoji list is tried first when FE0F follows.
+ TMP_Settings.emojiFallbackTextAssets = new List { asset };
+ TMP_Settings.fallbackFontAssets = new List { asset };
+ TMP_Settings.defaultSpriteAsset = null;
+
+ EditorUtility.SetDirty(asset);
+ EditorUtility.SetDirty(TMP_Settings.instance);
+ AssetDatabase.SaveAssets();
+ message = "EmojiFont: built " + AssetPath + " and named it in both of TMP Settings' emoji routes (the global fallback and the emoji fallback list).";
+ return true;
+ }
+
+ // Menu entry for interactive use; -executeMethod EmojiFont.EnableLigatures for batchmode, exit 1 on failure.
+ // Idempotent: a second run changes nothing and saves nothing.
+ [MenuItem("Aetheria/Text/Enable Ligatures")]
+ public static void EnableLigatures()
+ {
+ try
+ {
+ var settings = TMP_Settings.fontFeatures;
+ var settingsChanged = Enable(settings);
+ if (settingsChanged) EditorUtility.SetDirty(TMP_Settings.instance);
+ var (files, components) = VisitSerializedTexts(text =>
+ {
+ var features = text.fontFeatures.ToList();
+ if (!Enable(features, new SerializedObject(text).FindProperty("m_enableKerning").boolValue)) return false;
+ text.fontFeatures = features;
+ EditorUtility.SetDirty(text);
+ return true;
+ });
+ AssetDatabase.SaveAssets();
+ Debug.Log($"EmojiFont: liga added to {components} TMP component(s) in {files} file(s)" +
+ (settingsChanged ? " and to TMP Settings." : "; TMP Settings already had it."));
+ if (Application.isBatchMode) EditorApplication.Exit(0);
+ }
+ catch (Exception e)
+ {
+ Debug.LogError("EmojiFont.EnableLigatures failed: " + e);
+ if (Application.isBatchMode) EditorApplication.Exit(1);
+ }
+ }
+
+ // A legacy list ([0], no feature serialized) is first converted to [kern] when kerning is on, as TMP does on load.
+ static bool Enable(List features, bool kerning = true)
+ {
+ if (features.Contains(OTL_FeatureTag.liga)) return false;
+ features.RemoveAll(tag => tag == 0);
+ if (kerning && !features.Contains(OTL_FeatureTag.kern)) features.Add(OTL_FeatureTag.kern);
+ features.Add(OTL_FeatureTag.liga);
+ return true;
+ }
+
+ // The one walk over every TMP text a serialized asset owns: each prefab and each scene under Assets/, skipping a
+ // component that belongs to a prefab instance unless that instance overrides its font features (otherwise it
+ // inherits from its source prefab, which is walked itself). `visit` returns whether it changed the component;
+ // an asset that changed is saved. Returns the files and components changed.
+ public static (int files, int components) VisitSerializedTexts(Func visit)
+ {
+ int files = 0, components = 0;
+ bool Owns(TMP_Text text) =>
+ !PrefabUtility.IsPartOfPrefabInstance(text) ||
+ new SerializedObject(text).FindProperty("m_ActiveFontFeatures")?.prefabOverride == true;
+ int Visit(IEnumerable texts) => texts.Where(Owns).Count(visit);
+
+ foreach (var path in AssetDatabase.FindAssets("t:Prefab", new[] { "Assets" }).Select(AssetDatabase.GUIDToAssetPath))
+ {
+ var root = PrefabUtility.LoadPrefabContents(path);
+ try
+ {
+ var changed = Visit(root.GetComponentsInChildren(true));
+ if (changed == 0) continue;
+ PrefabUtility.SaveAsPrefabAsset(root, path);
+ files++;
+ components += changed;
+ }
+ finally { PrefabUtility.UnloadPrefabContents(root); }
+ }
+ foreach (var path in AssetDatabase.FindAssets("t:Scene", new[] { "Assets" }).Select(AssetDatabase.GUIDToAssetPath))
+ {
+ var scene = EditorSceneManager.OpenScene(path, OpenSceneMode.Additive);
+ try
+ {
+ var changed = Visit(scene.GetRootGameObjects().SelectMany(root => root.GetComponentsInChildren(true)));
+ if (changed == 0) continue;
+ EditorSceneManager.SaveScene(scene);
+ files++;
+ components += changed;
+ }
+ finally { EditorSceneManager.CloseScene(scene, true); }
+ }
+ return (files, components);
+ }
+}
diff --git a/Assets/Scripts/Editor/EmojiFont.cs.meta b/Assets/Scripts/Editor/EmojiFont.cs.meta
new file mode 100644
index 000000000..5888665c0
--- /dev/null
+++ b/Assets/Scripts/Editor/EmojiFont.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: bd3a902defe23f14fbe821ca9fb26a08
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/FloatingItemsDrawnSmoke.cs b/Assets/Scripts/Editor/FloatingItemsDrawnSmoke.cs
new file mode 100644
index 000000000..1caf77b6c
--- /dev/null
+++ b/Assets/Scripts/Editor/FloatingItemsDrawnSmoke.cs
@@ -0,0 +1,262 @@
+using System;
+using System.Collections;
+using System.IO;
+using System.Linq;
+using GameCult.Caching;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using float2 = CultMath.float2;
+
+// Batch proof that ZoneRenderer draws Zone.FloatingItems and nothing else, in a play session with no scene of its own:
+// the pickup prefabs are the ones ARPG.unity's ZoneRenderer names (so the wiring is read here too), a zone is loaded
+// into a fresh ZoneRenderer, and the zone's own Release, step, expiry and TryPickUp are what move and remove the
+// pickups. Zone.Release adds exactly one ItemPickup, placed at the body's position; stepping the zone moves it with the
+// body; expiry and TryPickUp each destroy it; an item already in the zone when the renderer loads it is drawn too.
+//
+// Unity -batchmode -nographics -projectPath -executeMethod FloatingItemsDrawnSmoke.Run -logFile
+//
+// Do not pass -quit: Run enters play mode (a domain reload), the check runs there, and the Editor exits itself, 0 on
+// success and 1 on any failure. Destroy only takes effect in a play session, which is why this is not an edit-mode check.
+[InitializeOnLoad]
+public static class FloatingItemsDrawnSmoke
+{
+ private const string Flag = "FloatingItemsDrawnSmoke.running";
+ private const string Wiring = "FloatingItemsDrawnSmoke.wiring";
+ private static IEnumerator _check;
+ private const double Budget = 300; // real seconds: batch frames can be far shorter than a game second
+ private static double _started;
+ private static string _work;
+
+ static FloatingItemsDrawnSmoke()
+ {
+ if (SessionState.GetBool(Flag, false)) EditorApplication.playModeStateChanged += OnPlayMode;
+ }
+
+ public static void Run()
+ {
+ try
+ {
+ SessionState.SetString(Wiring, ReadWiring());
+ SessionState.SetBool(Flag, true);
+ EditorApplication.EnterPlaymode();
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ EditorApplication.Exit(1);
+ }
+ }
+
+ private static void OnPlayMode(PlayModeStateChange change)
+ {
+ if (change != PlayModeStateChange.EnteredPlayMode) return;
+ _work = Path.Combine(Path.GetTempPath(), $"floating-items-smoke-{Guid.NewGuid():N}");
+ Directory.CreateDirectory(_work);
+ _started = Time.realtimeSinceStartupAsDouble;
+ _check = Check();
+ EditorApplication.update += Step;
+ }
+
+ private static void Step()
+ {
+ try
+ {
+ if (Time.realtimeSinceStartupAsDouble - _started > Budget) throw new InvalidOperationException($"The check did not finish in {Budget} seconds.");
+ if (_check.MoveNext()) return;
+ Finish(0);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ Finish(1);
+ }
+ }
+
+ private static void Finish(int code)
+ {
+ EditorApplication.update -= Step;
+ SessionState.SetBool(Flag, false);
+ try { if (Directory.Exists(_work)) Directory.Delete(_work, true); } catch (Exception) { /* a temp directory */ }
+ EditorApplication.Exit(code);
+ }
+
+ private static void Require(bool condition, string what)
+ {
+ if (!condition) throw new InvalidOperationException(what);
+ }
+
+ private static IEnumerator Check()
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")?.GameplaySettings
+ ?? throw new InvalidOperationException("No Settings.asset.");
+ // A floater rides its own layer: a nonzero one (never saved back to the asset), so a presenter that drops it fails.
+ settings.FloaterLayerHeight = -1.5f;
+
+ // The wiring: the scene's ZoneRenderer names an ItemPickup prefab in each of the four fields, and none of those
+ // prefabs keeps a script that no longer exists.
+ var wired = SessionState.GetString(Wiring, "").Split('|').Select(entry => entry.Split('=')).Select(pair =>
+ (Field: pair[0], Pickup: pair[1] == "" ? null : AssetDatabase.LoadAssetAtPath(pair[1])?.GetComponent())).ToArray();
+ Require(wired.Length == 4, "The wiring was not carried into the play session.");
+ foreach (var (name, pickup) in wired)
+ {
+ Require(pickup != null, $"ZoneRenderer.{name} is not an ItemPickup in ARPG.unity.");
+ Require(pickup.ScanLabel != null && pickup.ScanLabelContainer != null, $"{name}'s prefab has no scan label.");
+ Require(!pickup.GetComponentsInChildren(true).Any(c => c == null), $"{name}'s prefab has a missing script.");
+ }
+
+ var shape = new Shape(5, 5);
+ foreach (var cell in shape.AllCoordinates) shape[cell] = true;
+ var cargoShape = new Shape(4, 4);
+ foreach (var cell in cargoShape.AllCoordinates) cargoShape[cell] = true;
+ var oneCell = new Shape(1, 1);
+ oneCell[new CultMath.int2(0, 0)] = true;
+ var cache = AetheriaStores.Open(Path.Combine(_work, "smoke.cc"), catalogWritable: true);
+ cache.Upsert(new VerseGrammar { Revision = 1 });
+ cache.Upsert(new HullData { Name = "Smoke Hub", HullType = HullType.Station, Shape = shape, Durability = 1000, Mass = 1000 });
+ cache.Upsert(new CargoBayData { Name = "Smoke Crate", Shape = new Shape(), InteriorShape = cargoShape, Durability = 4 });
+ cache.Upsert(new GearData
+ {
+ Name = "Smoke Spare", Hardpoint = HardpointType.Tool, Shape = oneCell, Durability = 1,
+ MinimumTemperature = -1000, MaximumTemperature = 1000, OptimalTemperature = 0, PlateauWidth = 2000
+ });
+ cache.Upsert(new SimpleCommodityData { Name = "Smoke Ore", Shape = oneCell, MaxStack = 100 });
+ cache.FlushAsync().Wait();
+ var ledger = new ProvenanceLedger();
+ for (var i = 1; i <= 8; i++) ledger.Lots[i] = new Lot { Origin = new Attributed(), Quality = 1 };
+ var items = new ItemManager(cache, ledger, settings, _ => { });
+ var zone = new Zone(items, new PlanetSettings(), new ZonePack(), null, null);
+ EquippableItem Make(string name, int lot) => new EquippableItem
+ {
+ Data = items.ItemData.RefOf(items.ItemData.GetByName(name)), Durability = 1, Lot = lot
+ };
+
+ // A station with a crate takes the picked-up stack. It is not admitted: the zone holds no entity for the renderer to draw.
+ var hubRef = items.ItemData.RefOf(items.ItemData.GetByName("Smoke Hub"));
+ var taker = new OrbitalEntity(items, zone, new EquippableItem { Data = hubRef, Durability = 1000, Lot = 1 }, default, new EntitySettings());
+ Require(taker.TryEquip(Make("Smoke Crate", 2), new CultMath.int2(1, 1)), "The smoke station took no crate.");
+
+ // An item already in the zone when the renderer loads it: drawn from the load, not only from the add.
+ var early = zone.Release(Make("Smoke Spare", 3), new float2(5, 6), float2.zero);
+
+ // The renderer's side. Inactive while it is configured, so it runs no Awake or Start of the scene's own.
+ var rootObject = new GameObject("Smoke Zone Root");
+ var rendererObject = new GameObject("Smoke Zone Renderer");
+ rendererObject.SetActive(false);
+ var renderer = rendererObject.AddComponent();
+ renderer.ZoneRoot = rootObject.transform;
+ foreach (var (name, pickup) in wired)
+ typeof(ZoneRenderer).GetField(name).SetValue(renderer, pickup);
+ renderer.ItemManager = items;
+ renderer.SectorBrushes = new GameObject("Smoke Brushes").transform;
+ renderer.AmbientLight = Aetheria.EditorTools.AmbientEdgeVerify.NewAmbientLight();
+ renderer.SlimeGravityCamera = new GameObject("Smoke Gravity Camera").AddComponent();
+ var slimeObject = new GameObject("Smoke Slime");
+ slimeObject.SetActive(false); // the real Slime needs its compute shader; LoadZone only sets its radius
+ renderer.SlimeRenderer = slimeObject.AddComponent();
+ renderer.LoadZone(zone);
+ yield return null;
+
+ ItemPickup[] Pickups() => rootObject.GetComponentsInChildren(true).Where(p => p != null).ToArray();
+ void At(ItemPickup pickup, FloatingItem floating, string what)
+ {
+ var lead = ActionGameManager.Clock.Lead;
+ var at = DrawAhead.Position(floating.Body, lead);
+ var want = new Vector3(at.x, DrawAhead.FloaterHeight(zone, settings, at, lead), at.y);
+ Require(Vector3.Distance(pickup.transform.position, want) < 1e-3f,
+ $"{what}: the pickup is at {pickup.transform.position}, the body at {want}.");
+ }
+
+ Require(Pickups().Length == 1, $"load: {Pickups().Length} pickups for one existing floating item.");
+ At(Pickups()[0], early, "load");
+
+ // Release adds exactly one pickup, at the body's position, bound to its item.
+ var ore = new SimpleCommodity { Data = items.ItemData.RefOf(items.ItemData.GetByName("Smoke Ore")), Quantity = 7 };
+ var released = zone.Release(ore, new float2(3, 4), new float2(10, 0));
+ yield return null;
+ Require(Pickups().Length == 2, $"release: {Pickups().Length} pickups for two floating items.");
+ var drawn = Pickups().Single(p => p.Item == ore);
+ At(drawn, released, "release");
+
+ // Stepping the zone moves the sim body; the pickup follows it on its next update, with nothing of its own.
+ var before = drawn.transform.position;
+ zone.Update(.5f);
+ yield return null;
+ Require(released.Body.Position.x > 3.5f, "the sim body did not drift.");
+ At(drawn, released, "step");
+ Require(drawn.transform.position != before, "the pickup did not move with the body.");
+
+ // A held item keeps its label lit, so a pull is read as it happens. The label is let go dark first (nothing views
+ // it), then the zone holds the item through its own TryHold and the label must come up.
+ var earlyPickup = Pickups().Single(p => p.Item == early.Item);
+ earlyPickup.LabelPersistDuration = 1;
+ earlyPickup.LabelFadeDuration = .2f;
+ // Game time, not frames: batch frames can be far shorter than a game second, so a frame count can run out before the fade.
+ var labelUntil = Time.time + earlyPickup.LabelPersistDuration + earlyPickup.LabelFadeDuration + 1f;
+ while (Time.time < labelUntil && earlyPickup.ScanLabel.color.a > .05f) yield return null;
+ Require(earlyPickup.ScanLabel.color.a <= .05f, "label: an unviewed, unheld label did not go dark.");
+ Require(zone.TryHold(taker, early.Id), "label: the zone refused to hold the item.");
+ labelUntil = Time.time + earlyPickup.LabelPersistDuration + earlyPickup.LabelFadeDuration + 1f;
+ while (Time.time < labelUntil && earlyPickup.ScanLabel.color.a < .95f) yield return null;
+ Require(earlyPickup.ScanLabel.color.a >= .95f, "label: a held item's label is not lit.");
+
+ // The test scene's stand-in sim and tendril ride the zone's own held-pose curve: its pose at each point of a grab
+ // is where the zone puts a held item at the same progress.
+ var (extend, envelop, pull) = (1.5f, .75f, 1.5f);
+ var holderAt = new CultMath.float3(taker.Position.x, 0f, taker.Position.z);
+ var claimedAt = new CultMath.float3(early.HeldFrom.x, 0f, early.HeldFrom.y);
+ foreach (var elapsed in new[] { 0f, extend + envelop - .01f, extend + envelop + .3f, extend + envelop + .75f, extend + envelop + pull })
+ {
+ zone.SetHeldProgress(early.Id, Mathf.Clamp01((elapsed - extend - envelop) / pull)); // the pull starts after Extend and Envelop
+ zone.Update(.01f);
+ var want = FieldTester.PulledPosition(claimedAt, holderAt, elapsed, extend, envelop, pull);
+ Require(Mathf.Abs(early.Body.Position.x - want.x) < 1e-3f && Mathf.Abs(early.Body.Position.y - want.z) < 1e-3f,
+ $"stand-in pose at {elapsed}s is {want}, the zone holds the item at {early.Body.Position}.");
+ }
+ zone.Free(early.Id);
+
+ // Pickup destroys exactly the picked-up item's pickup.
+ Require(zone.TryPickUp(taker, released.Id), "the station refused a one-cell stack.");
+ yield return null;
+ yield return null;
+ Require(drawn == null, "pickup: the pickup is still there.");
+ Require(Pickups().Length == 1 && Pickups()[0].Item == early.Item, "pickup: the wrong pickup went.");
+
+ // Expiry destroys the pickup of an item nobody took.
+ zone.Update(3600f); // far past any lifetime
+ yield return null;
+ yield return null;
+ Require(zone.FloatingItems.Count == 0, "expiry: the item did not expire.");
+ Require(Pickups().Length == 0, $"expiry: {Pickups().Length} pickups left.");
+
+ // A later release is drawn again, and clearing the renderer takes what is left.
+ zone.Release(Make("Smoke Spare", 4), new float2(1, 1), float2.zero);
+ yield return null;
+ Require(Pickups().Length == 1, "re-release: not drawn.");
+ renderer.ClearZone();
+ yield return null;
+ yield return null;
+ Require(Pickups().Length == 0, "clear: pickups left after ClearZone.");
+ Debug.Log("FLOATING_ITEMS_SMOKE ok");
+ }
+
+ // What ARPG.unity's ZoneRenderer names in each pickup field, read from the saved scene before the play session (a
+ // scene cannot be opened inside one) and carried across the domain reload as the prefabs' asset paths.
+ private static string ReadWiring()
+ {
+ var scene = EditorSceneManager.OpenScene("Assets/Scenes/ARPG.unity", OpenSceneMode.Additive);
+ try
+ {
+ var found = UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None)
+ .Where(r => r.gameObject.scene == scene).ToArray();
+ Require(found.Length == 1, $"ARPG.unity has {found.Length} ZoneRenderers.");
+ var wired = found[0];
+ return string.Join("|", new[]
+ {
+ ("SimpleCommodityPickup", wired.SimpleCommodityPickup), ("CompoundCommodityPickup", wired.CompoundCommodityPickup),
+ ("GearPickup", wired.GearPickup), ("WeaponPickup", wired.WeaponPickup)
+ }.Select(f => f.Item1 + "=" + (f.Item2 == null ? "" : AssetDatabase.GetAssetPath(f.Item2))));
+ }
+ finally { EditorSceneManager.CloseScene(scene, true); }
+ }
+}
diff --git a/Assets/Scripts/Editor/FloatingItemsDrawnSmoke.cs.meta b/Assets/Scripts/Editor/FloatingItemsDrawnSmoke.cs.meta
new file mode 100644
index 000000000..51e4b34a7
--- /dev/null
+++ b/Assets/Scripts/Editor/FloatingItemsDrawnSmoke.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 67544a932f794a2458741c731ef04d11
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/FlowFieldParityVerify.cs b/Assets/Scripts/Editor/FlowFieldParityVerify.cs
new file mode 100644
index 000000000..90979f7e8
--- /dev/null
+++ b/Assets/Scripts/Editor/FlowFieldParityVerify.cs
@@ -0,0 +1,302 @@
+using System;
+using System.IO;
+using GameCult.Caching;
+using UnityEditor;
+using UnityEngine;
+
+namespace Aetheria.EditorTools
+{
+ ///
+ /// Batchmode check for flow-shader-parity (campaign aetheria-fauna, cut fauna-flow-field): the HLSL globalFlow and
+ /// slopeFlow of Assets/Shaders/Volumetric.cginc give the values of FlowField (ServerShared) for the same position,
+ /// scroll, settings and gradient. It drives the real lowering: a Zone is stepped, VolumeSampling.LowerFlow sets the
+ /// shader globals from the zone's Settings.Flow and FlowScroll, FlowParity.compute reads those globals, and the
+ /// results are compared with FlowField. It also checks that Settings.asset carries the authored flow under
+ /// PlanetSettings and that the shader got the zone's scroll (speed times zone time).
+ ///
+ /// Dispatches a compute kernel, so it needs a graphics device: run WITHOUT -nographics (as ShieldPanelCut3Verify).
+ /// Unity -batchmode -projectPath <repo> -executeMethod Aetheria.EditorTools.FlowFieldParityVerify.Run -logFile <path>
+ /// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure.
+ ///
+ public static class FlowFieldParityVerify
+ {
+ const string Tag = "[FlowFieldParityVerify]";
+ // Measured disagreement between the HLSL and the C# on this tree (float32 on both sides, positions to 10000,
+ // scrolls to 100, through the keyword-gated flow()): max 2.9e-5 of amplitude (the "max error" line this run
+ // prints). The tolerance is 5x that noise, so constant errors of 0.05% (y factor .501, swirl or amplitude
+ // x1.0005: 4e-4 to 8e-4) fail; a 0.01% error is at the noise floor and unresolvable.
+ const float RelativeTolerance = 1.5e-4f;
+ static float _maxError;
+ static bool _ok = true;
+
+ static void OnLog(string message, string stack, LogType type)
+ {
+ if ((type == LogType.Error || type == LogType.Exception || type == LogType.Assert) && !message.StartsWith(Tag))
+ Fail("logged-error", message.Split('\n')[0]);
+ }
+
+ static void Fail(string check, string detail)
+ {
+ Debug.LogError($"{Tag} FAIL {check}: {detail}");
+ _ok = false;
+ }
+
+ public static void Run()
+ {
+ if (SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Null)
+ {
+ Debug.LogError($"{Tag} FAIL: no graphics device in this session; rerun batchmode without -nographics.");
+ EditorApplication.Exit(1);
+ return;
+ }
+
+ // The flow's error lines (a shader keyword that does not exist, a missing property) fail the check.
+ Application.logMessageReceived += OnLog;
+ var work = Path.Combine(Path.GetTempPath(), "flow-parity-" + Guid.NewGuid().ToString("N"));
+ Directory.CreateDirectory(work);
+ try
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")
+ ?? throw new InvalidOperationException("No Settings.asset.");
+ var compute = AssetDatabase.LoadAssetAtPath("Assets/Shaders/Compute/FlowParity.compute")
+ ?? throw new InvalidOperationException("No FlowParity.compute.");
+
+ CheckAuthoredFlow(settings.PlanetSettings.Flow);
+
+ // The authored flow (global term only: its slope amplitudes are authored zero), then a flow with every
+ // term live and a scroll speed that reaches scrolls up to 100.
+ var authored = settings.PlanetSettings.Flow;
+ CheckParity("authored", settings, work, compute, authored, new[] { 0.0, 3.1, 40.0, 100.0 });
+ var wide = new FlowSettings
+ {
+ GlobalScale = authored.GlobalScale, GlobalAmplitude = authored.GlobalAmplitude, Period = authored.Period,
+ GlobalScrollSpeed = 1f, SlopeAmplitude = 3f, SwirlAmplitude = 5f
+ };
+ CheckParity("wide", settings, work, compute, wide, new[] { 0.0, 1.0, 17.0, 60.0, 100.0 });
+ CheckNoiseClock(compute);
+
+ Debug.Log($"{Tag} max error {_maxError:G4} of amplitude (tolerance {RelativeTolerance:G4})");
+ Debug.Log(_ok ? $"{Tag} PASS" : $"{Tag} FAIL: see errors above");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"{Tag} FAIL exception: {e}");
+ _ok = false;
+ }
+ finally
+ {
+ Application.logMessageReceived -= OnLog;
+ try { Directory.Delete(work, true); } catch { }
+ }
+ EditorApplication.Exit(_ok ? 0 : 1);
+ }
+
+ // Settings.asset carries the authored flow under PlanetSettings (it moved from DefaultEnvironment unchanged).
+ static void CheckAuthoredFlow(FlowSettings flow)
+ {
+ if (flow == null) { Fail("authored-flow", "PlanetSettings.Flow is null"); return; }
+ if (flow.GlobalScale != 512f || flow.GlobalAmplitude != 15f || flow.GlobalScrollSpeed != .025f ||
+ flow.Period != 8f || flow.SlopeAmplitude != 0f || flow.SwirlAmplitude != 0f)
+ Fail("authored-flow", $"PlanetSettings.Flow is {flow.GlobalScale}/{flow.GlobalAmplitude}/{flow.GlobalScrollSpeed}/" +
+ $"{flow.Period}/{flow.SlopeAmplitude}/{flow.SwirlAmplitude}, authored 512/15/0.025/8/0/0");
+ }
+
+ internal static Zone BuildZone(GameSettings settings, string work, FlowSettings flow, double time = 0)
+ {
+ var cache = AetheriaStores.Open(Path.Combine(work, Guid.NewGuid().ToString("N") + ".cc"), catalogWritable: true);
+ cache.Upsert(new VerseGrammar { Revision = 1 });
+ cache.FlushAsync().Wait();
+ var items = new ItemManager(cache, new ProvenanceLedger(), settings.GameplaySettings, _ => { });
+ return new Zone(items, new PlanetSettings { Flow = flow }, new ZonePack { Time = time }, new GalaxyZone { Name = "Parity", Owner = null }, null);
+ }
+
+ static void CheckParity(string label, GameSettings settings, string work, ComputeShader compute, FlowSettings flow,
+ double[] zoneTimes)
+ {
+ var zone = BuildZone(settings, work, flow);
+ var kernel = compute.FindKernel("Evaluate");
+ var rng = new System.Random(label.Length * 7919);
+ const int positionCount = 256, gradientCount = 64;
+ const int count = positionCount;
+
+ var positions = new Vector3[count];
+ for (var i = 0; i < positionCount; i++)
+ positions[i] = new Vector3((float) (rng.NextDouble() * 20000 - 10000), (float) (rng.NextDouble() * 200 - 100),
+ (float) (rng.NextDouble() * 20000 - 10000));
+ // Gradients of any direction and magnitude, plus one zero gradient.
+ var gradients = new Vector2[count];
+ for (var i = 1; i < gradientCount; i++)
+ {
+ var angle = rng.NextDouble() * Math.PI * 2;
+ var magnitude = (float) Math.Exp(rng.NextDouble() * 8 - 4);
+ gradients[i] = new Vector2((float) Math.Cos(angle) * magnitude, (float) Math.Sin(angle) * magnitude);
+ }
+ gradients[0] = Vector2.zero;
+
+ var positionBuffer = new ComputeBuffer(count, 12);
+ var gradientBuffer = new ComputeBuffer(count, 8);
+ var globalBuffer = new ComputeBuffer(count, 12);
+ var slopeBuffer = new ComputeBuffer(count, 12);
+ var gatedBuffer = new ComputeBuffer(count, 12);
+ ComputeBuffer noiseBuffer = null;
+ // flow() reads the nebula's gravity height under FLOW_SLOPE. A ramp rising along the texture's x gives every
+ // position inside the grid the gradient direction (1, 0), so the slope term is live where a flat height
+ // would zero it (and the FLOW_SLOPE keyword and its pragma would not matter).
+ const int rampSize = 64;
+ var height = new Texture2D(rampSize, rampSize, TextureFormat.RFloat, false)
+ { filterMode = FilterMode.Point, wrapMode = TextureWrapMode.Clamp };
+ var ramp = new float[rampSize * rampSize];
+ for (var i = 0; i < ramp.Length; i++) ramp[i] = (i % rampSize) / (float) (rampSize - 1);
+ height.SetPixelData(ramp, 0);
+ height.Apply();
+ var rampGradient = new CultMath.float2(1f, 0f);
+ try
+ {
+ positionBuffer.SetData(positions);
+ gradientBuffer.SetData(gradients);
+ compute.SetBuffer(kernel, "positions", positionBuffer);
+ compute.SetBuffer(kernel, "gradients", gradientBuffer);
+ compute.SetBuffer(kernel, "globalOut", globalBuffer);
+ compute.SetBuffer(kernel, "slopeOut", slopeBuffer);
+ compute.SetBuffer(kernel, "gatedOut", gatedBuffer);
+ compute.SetTexture(kernel, "_NebulaSurfaceHeight", height);
+ compute.SetVector("_NebulaSurfaceHeight_TexelSize", new Vector4(1f / rampSize, 1f / rampSize, rampSize, rampSize));
+ // The grid spans 40000: every sampled position (|xz| to 10000) is inside the ramp's uv range.
+ Shader.SetGlobalVector("_GridTransform", new Vector4(0f, 0f, 40000f, 0f));
+ noiseBuffer = new ComputeBuffer(count, 4);
+ compute.SetBuffer(kernel, "noiseOut", noiseBuffer);
+ compute.SetInt("count", count);
+
+ var elapsed = 0.0;
+ foreach (var target in zoneTimes)
+ {
+ // Step the zone to the target by an awkward step; the sum is the zone's time.
+ while (elapsed < target - 1e-9)
+ {
+ var dt = (float) Math.Min(0.37, target - elapsed);
+ zone.Update(dt);
+ elapsed += dt;
+ }
+ VolumeSampling.LowerFlow(zone.Settings.Flow, zone.ExactTime);
+
+ // The shader got the zone's scroll and cycle: the same zone time Zone.Flow evaluates at.
+ var zoneScroll = zone.FlowScroll;
+ var lowered = Shader.GetGlobalVector("_FlowScroll");
+ if (Math.Abs(lowered.x - zoneScroll.x) > 1e-6 || Math.Abs(lowered.y - zoneScroll.y) > 1e-6)
+ Fail($"{label}-lowered-scroll", $"at zone time {elapsed:F3} the shader got _FlowScroll ({lowered.x}, {lowered.y}), the zone's is ({zoneScroll.x}, {zoneScroll.y})");
+ if (Math.Abs(Shader.GetGlobalFloat("_FlowCycle") - zone.CyclePhase(flow.Period)) > 1e-6)
+ Fail($"{label}-lowered-cycle", $"at zone time {elapsed:F3} the shader got _FlowCycle {Shader.GetGlobalFloat("_FlowCycle")}, the zone's phase is {zone.CyclePhase(flow.Period)}");
+ if (Shader.GetGlobalFloat("_FlowScale") != flow.GlobalScale || Shader.GetGlobalFloat("_FlowAmplitude") != flow.GlobalAmplitude ||
+ Shader.GetGlobalFloat("_FlowSlopeAmplitude") != flow.SlopeAmplitude ||
+ Shader.GetGlobalFloat("_FlowSwirlAmplitude") != flow.SwirlAmplitude || Shader.GetGlobalFloat("_FlowPeriod") != flow.Period)
+ Fail($"{label}-lowered-settings", "a flow uniform does not equal the zone's FlowSettings");
+
+ compute.Dispatch(kernel, (count + 63) / 64, 1, 1);
+ var globalOut = new Vector3[count];
+ var slopeOut = new Vector3[count];
+ var gatedOut = new Vector3[count];
+ globalBuffer.GetData(globalOut);
+ slopeBuffer.GetData(slopeOut);
+ gatedBuffer.GetData(gatedOut);
+
+ var at = $"{label} zone time {elapsed:F2} scroll {zoneScroll.x:F4}";
+ for (var i = 0; i < positionCount; i++)
+ {
+ var p = positions[i];
+ var expected = FlowField.Global(flow, new CultMath.float3(p.x, p.y, p.z), zoneScroll);
+ Compare($"{label}-global", at, i, new Vector3(expected.x, expected.y, expected.z), globalOut[i], flow.GlobalAmplitude);
+ }
+ // flow() is the keyword-gated function the nebula and stardust call: the global term plus, under
+ // FLOW_SLOPE, the slope term of the ramp's gradient. A flow that is live must not read zero.
+ var live = 0;
+ var gatedScale = Math.Max(Math.Abs(flow.GlobalAmplitude), Math.Max(Math.Abs(flow.SlopeAmplitude), Math.Abs(flow.SwirlAmplitude)));
+ for (var i = 0; i < positionCount; i++)
+ {
+ var p = positions[i];
+ var expected = FlowField.At(flow, new CultMath.float3(p.x, p.y, p.z), zoneScroll, rampGradient);
+ var e = new Vector3(expected.x, expected.y, expected.z);
+ if (e.magnitude > .1f * gatedScale) live++;
+ Compare($"{label}-flow-keywords", at, i, e, gatedOut[i], gatedScale);
+ }
+ if (gatedScale != 0f && live < positionCount / 4)
+ Fail($"{label}-flow-keywords", $"{at}: only {live} of {positionCount} zone flows are live; the check is vacuous");
+ var slopeScale = Math.Max(Math.Abs(flow.SlopeAmplitude), Math.Abs(flow.SwirlAmplitude));
+ for (var i = 0; i < gradientCount; i++)
+ {
+ var g = gradients[i];
+ var expected = FlowField.Slope(flow, new CultMath.float2(g.x, g.y));
+ Compare($"{label}-slope", at, i, new Vector3(expected.x, expected.y, expected.z), slopeOut[i], slopeScale);
+ }
+ }
+ }
+ finally
+ {
+ positionBuffer.Release(); gradientBuffer.Release(); globalBuffer.Release(); slopeBuffer.Release(); gatedBuffer.Release(); noiseBuffer?.Release(); UnityEngine.Object.DestroyImmediate(height);
+ }
+ }
+
+ // The nebula noise the flow advects evolves on the flow clock VolumeSampling lowers as _NebulaNoiseTime, never on
+ // _Time: with the speed non-zero, the noise changes when _NebulaNoiseTime does and not otherwise (a frame clock
+ // would not follow the global set here).
+ static void CheckNoiseClock(ComputeShader compute)
+ {
+ const int count = 64;
+ var kernel = compute.FindKernel("Evaluate");
+ var rng = new System.Random(4217);
+ var positions = new Vector3[count];
+ for (var i = 0; i < count; i++)
+ positions[i] = new Vector3((float) (rng.NextDouble() * 4000 - 2000), (float) (rng.NextDouble() * 100 - 50), (float) (rng.NextDouble() * 4000 - 2000));
+ var buffers = new[] { new ComputeBuffer(count, 12), new ComputeBuffer(count, 8), new ComputeBuffer(count, 12), new ComputeBuffer(count, 12), new ComputeBuffer(count, 12), new ComputeBuffer(count, 4) };
+ var height = new Texture2D(1, 1, TextureFormat.RFloat, false);
+ try
+ {
+ buffers[0].SetData(positions);
+ buffers[1].SetData(new Vector2[count]);
+ compute.SetBuffer(kernel, "positions", buffers[0]);
+ compute.SetBuffer(kernel, "gradients", buffers[1]);
+ compute.SetBuffer(kernel, "globalOut", buffers[2]);
+ compute.SetBuffer(kernel, "slopeOut", buffers[3]);
+ compute.SetBuffer(kernel, "gatedOut", buffers[4]);
+ compute.SetBuffer(kernel, "noiseOut", buffers[5]);
+ compute.SetTexture(kernel, "_NebulaSurfaceHeight", height);
+ compute.SetInt("count", count);
+ Shader.SetGlobalFloat("_NebulaNoiseSpeed", 1f);
+ float[] Noise(float noiseTime)
+ {
+ Shader.SetGlobalFloat("_NebulaNoiseTime", noiseTime);
+ compute.Dispatch(kernel, 1, 1, 1);
+ var result = new float[count];
+ buffers[5].GetData(result);
+ return result;
+ }
+ var a = Noise(0f);
+ var b = Noise(3f);
+ var again = Noise(3f);
+ int moved = 0, repeated = 0;
+ for (var i = 0; i < count; i++)
+ {
+ if (Math.Abs(a[i] - b[i]) > 1e-4f) moved++;
+ if (b[i] == again[i]) repeated++;
+ }
+ if (moved < count / 2) Fail("nebula-noise-clock", $"only {moved} of {count} noise samples follow _NebulaNoiseTime");
+ if (repeated != count) Fail("nebula-noise-clock", $"{count - repeated} of {count} noise samples changed with _NebulaNoiseTime held");
+ }
+ finally
+ {
+ foreach (var buffer in buffers) buffer.Release();
+ UnityEngine.Object.DestroyImmediate(height);
+ }
+ }
+
+ // Error is measured against the term's amplitude; a term with no amplitude must be exactly zero and never NaN.
+ static void Compare(string check, string at, int index, Vector3 expected, Vector3 actual, float amplitude)
+ {
+ var error = (expected - actual).magnitude;
+ if (float.IsNaN(error)) { Fail(check, $"{at} sample {index}: NaN (expected {expected}, shader {actual})"); return; }
+ if (amplitude != 0f) _maxError = Math.Max(_maxError, error / Math.Abs(amplitude));
+ var tolerance = RelativeTolerance * Math.Abs(amplitude);
+ if (error > tolerance)
+ Fail(check, $"{at} sample {index}: expected {expected}, shader {actual}, error {error:G4} > {tolerance:G4}");
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/FlowFieldParityVerify.cs.meta b/Assets/Scripts/Editor/FlowFieldParityVerify.cs.meta
new file mode 100644
index 000000000..50248c5f3
--- /dev/null
+++ b/Assets/Scripts/Editor/FlowFieldParityVerify.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 8fae18f5f32f10f43ba892a097f18caa
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/FlowFieldSceneVerify.cs b/Assets/Scripts/Editor/FlowFieldSceneVerify.cs
new file mode 100644
index 000000000..d39874f33
--- /dev/null
+++ b/Assets/Scripts/Editor/FlowFieldSceneVerify.cs
@@ -0,0 +1,392 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using UnityEngine.Rendering;
+
+namespace Aetheria.EditorTools
+{
+ ///
+ /// Batchmode check for the flow as the scene runs it (campaign aetheria-fauna, cut fauna-flow-field; target
+ /// invariants flow-one-owner and flow-shader-parity). FlowFieldParityVerify proves the HLSL against FlowField with
+ /// no scene loaded; this opens ARPG.unity, lets VolumeSampling and Stardust initialise as the game does, drives
+ /// their own Start and Update with a zone attached, and asserts what the presenters did:
+ /// - nothing threw and nothing logged an error (a type that cannot initialise in a scene, as VolumeSampling once
+ /// could when it created its keywords in a static field initializer, throws on its first use);
+ /// - FLOW_GLOBAL and FLOW_SLOPE are enabled, _FlowAmplitude is the zone's, and the nebula noise clock is the zone's;
+ /// - the stardust particle buffer changes with the flow and freezes when the zone pauses;
+ /// - CloudShader pass 0 carries the FLOW_* keywords.
+ /// The scene is opened before any Aetheria type is touched: run this method alone in its own Unity session, never
+ /// after FlowFieldParityVerify (which would initialise VolumeSampling outside a MonoBehaviour constructor).
+ /// Dispatches compute and renders, so it needs a graphics device: run WITHOUT -nographics.
+ /// Unity -batchmode -projectPath <repo> -executeMethod Aetheria.EditorTools.FlowFieldSceneVerify.Run -logFile <path>
+ /// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure.
+ ///
+ public static class FlowFieldSceneVerify
+ {
+ const string Tag = "[FlowFieldSceneVerify]";
+ static bool _ok = true;
+
+ static void OnLog(string message, string stack, LogType type)
+ {
+ if ((type == LogType.Error || type == LogType.Exception || type == LogType.Assert) && !message.StartsWith(Tag))
+ Fail("logged-error", message.Split('\n')[0]);
+ }
+
+ static void Fail(string check, string detail)
+ {
+ Debug.LogError($"{Tag} FAIL {check}: {detail}");
+ _ok = false;
+ }
+
+ public static void Run()
+ {
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Null)
+ {
+ Debug.LogError($"{Tag} FAIL: no graphics device in this session; rerun batchmode without -nographics.");
+ EditorApplication.Exit(1);
+ return;
+ }
+
+ Application.logMessageReceived += OnLog;
+ try
+ {
+ // Before anything else touches the project's types: the scene constructs its MonoBehaviours here.
+ EditorSceneManager.OpenScene("Assets/Scenes/ARPG.unity", OpenSceneMode.Single);
+ Check();
+ Debug.Log(_ok ? $"{Tag} PASS" : $"{Tag} FAIL: see errors above");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"{Tag} FAIL exception: {e}");
+ _ok = false;
+ }
+ finally
+ {
+ Application.logMessageReceived -= OnLog;
+ }
+ EditorApplication.Exit(_ok ? 0 : 1);
+ }
+
+ static void Check()
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")
+ ?? throw new InvalidOperationException("No Settings.asset.");
+ var agm = UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None).FirstOrDefault();
+ var volume = UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None).FirstOrDefault();
+ var dust = UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None).FirstOrDefault();
+ if (agm == null || volume == null || dust == null)
+ {
+ Fail("scene-objects", $"ARPG.unity has ActionGameManager={agm != null}, VolumeSampling={volume != null}, Stardust={dust != null}");
+ return;
+ }
+
+ // Every flow term live, so FLOW_SLOPE is on; and the same flow with every amplitude zero.
+ var on = new FlowSettings
+ {
+ GlobalScale = 512f, GlobalAmplitude = 15f, GlobalScrollSpeed = .025f, Period = 8f, SlopeAmplitude = 3f, SwirlAmplitude = 5f
+ };
+ var off = new FlowSettings { GlobalScale = on.GlobalScale, GlobalScrollSpeed = on.GlobalScrollSpeed, Period = on.Period };
+ var work = Path.Combine(Path.GetTempPath(), "flow-scene-" + Guid.NewGuid().ToString("N"));
+ Directory.CreateDirectory(work);
+ try
+ {
+ var zone = FlowFieldParityVerify.BuildZone(settings, work, on, 86400.0 * 3 + 12.3);
+ typeof(ActionGameManager).GetProperty("Instance").GetSetMethod(true).Invoke(null, new object[] { agm });
+ typeof(ActionGameManager).GetProperty("Zone").GetSetMethod(true).Invoke(agm, new object[] { zone });
+ if (agm.Settings == null) agm.Settings = settings;
+
+ Call(volume, "Start");
+ Call(volume, "Update");
+ if (!Shader.IsKeywordEnabled("FLOW_GLOBAL")) Fail("scene-keywords", "FLOW_GLOBAL is not enabled after VolumeSampling.Update");
+ if (!Shader.IsKeywordEnabled("FLOW_SLOPE")) Fail("scene-keywords", "FLOW_SLOPE is not enabled after VolumeSampling.Update");
+ if (Shader.GetGlobalFloat("_FlowAmplitude") != on.GlobalAmplitude)
+ Fail("scene-amplitude", $"_FlowAmplitude is {Shader.GetGlobalFloat("_FlowAmplitude")}, the zone's flow has {on.GlobalAmplitude}");
+ var scroll = Shader.GetGlobalVector("_FlowScroll");
+ if (scroll.x != zone.FlowScroll.x || scroll.y != zone.FlowScroll.y)
+ Fail("scene-scroll", $"_FlowScroll ({scroll.x}, {scroll.y}) is not the zone's ({zone.FlowScroll.x}, {zone.FlowScroll.y})");
+ var noiseTime = Shader.GetGlobalFloat("_NebulaNoiseTime");
+ if (noiseTime != (float) zone.ExactTime)
+ Fail("scene-noise-clock", $"_NebulaNoiseTime is {noiseTime}, the zone's time is {(float) zone.ExactTime}");
+
+ CheckCloudKeywords();
+
+ // Stardust follows the flow through its own dispatch: the particle buffer read back each frame.
+ Call(dust, "Start");
+ var bufferField = typeof(Stardust).GetField("_particlesBuffer", BindingFlags.NonPublic | BindingFlags.Instance);
+ float[] Frame()
+ {
+ Call(dust, "Update");
+ var buffer = (ComputeBuffer) bufferField.GetValue(dust);
+ var data = new float[buffer.count * 7];
+ buffer.GetData(data);
+ return data;
+ }
+ var flowing = Frame();
+ VolumeSampling.LowerFlow(off, VolumeSampling.FlowClock);
+ var still = Frame();
+ if (Differing(flowing, still) == 0) Fail("scene-stardust", "the particle buffer is the same with the zone's flow and with no flow");
+
+ // A paused zone freezes the particles and the nebula noise clock; a running one moves both.
+ Call(volume, "Update");
+ zone.Update(0f);
+ Call(volume, "Update");
+ if (Differing(flowing, Frame()) != 0) Fail("scene-stardust-pause", "the particle buffer moved while the zone was paused");
+ if (Shader.GetGlobalFloat("_NebulaNoiseTime") != noiseTime) Fail("scene-noise-clock", "_NebulaNoiseTime moved while the zone was paused");
+ zone.Update(.05f);
+ Call(volume, "Update");
+ if (Differing(flowing, Frame()) == 0) Fail("scene-stardust-run", "the particle buffer did not move while the zone ran");
+ if (Shader.GetGlobalFloat("_NebulaNoiseTime") == noiseTime) Fail("scene-noise-clock", "_NebulaNoiseTime did not move while the zone ran");
+
+ CheckStardustUncullable(dust, bufferField);
+ CheckStardustUnderFog(dust, bufferField);
+ }
+ finally
+ {
+ try { Directory.Delete(work, true); } catch { }
+ }
+ }
+
+ // The event Stardust itself attaches its draw at, read from the class so the verifier cannot agree with a copy of it.
+ static CameraEvent DrawEvent() =>
+ (CameraEvent) typeof(Stardust).GetField("DrawEvent", BindingFlags.NonPublic | BindingFlags.Static).GetRawConstantValue();
+
+ // The dust is a command buffer on the target camera, which no culling sees: with every particle 10000 below the
+ // camera (far past any box a hand could inflate round it) a render still shows dust, and shows none when the
+ // same particles have no size.
+ static void CheckStardustUncullable(Stardust dust, FieldInfo bufferField)
+ {
+ var camera = dust.TargetCamera;
+ if (camera == null) { Fail("scene-stardust-uncullable", "Stardust has no TargetCamera"); return; }
+ var drawEvent = DrawEvent();
+ var attached = camera.GetCommandBuffers(drawEvent).Count(buffer => buffer.name == "Stardust");
+ if (attached != 1) Fail("scene-stardust-uncullable", $"{attached} Stardust command buffers at {drawEvent} on the target camera, expected 1");
+ foreach (var other in Enum.GetValues(typeof(CameraEvent)).Cast().Where(other => other != drawEvent))
+ {
+ var stray = camera.GetCommandBuffers(other).Count(buffer => buffer.name == "Stardust");
+ if (stray != 0) Fail("scene-stardust-uncullable", $"{stray} Stardust command buffers at {other}, expected 0");
+ }
+
+ var particles = (ComputeBuffer) bufferField.GetValue(dust);
+ float[] Layout(float size, Vector3 centre, float below) => DustLayout(particles.count, size, centre, below);
+
+ var transform = camera.transform;
+ var (position, rotation) = (transform.position, transform.rotation);
+ var (far, flags, background, mask, target) = (camera.farClipPlane, camera.clearFlags, camera.backgroundColor, camera.cullingMask, camera.targetTexture);
+ var texture = RenderTexture.GetTemporary(64, 64, 24, RenderTextureFormat.ARGB32);
+ var readback = new Texture2D(64, 64, TextureFormat.RGBA32, false);
+ var previous = RenderTexture.active;
+ // Image effects on the camera would write their own frame over the dust; only the dust draw is under test.
+ var effects = camera.GetComponents().Where(behaviour => behaviour.enabled).ToArray();
+ Color32[] Render(float size, Vector3 centre, float below)
+ {
+ Call(dust, "Update"); // on a bounded draw this queues the draw for the camera; here it dispatches the compute
+ particles.SetData(Layout(size, centre, below));
+ camera.Render();
+ RenderTexture.active = texture;
+ readback.ReadPixels(new Rect(0, 0, 64, 64), 0, 0);
+ readback.Apply();
+ return readback.GetPixels32();
+ }
+ try
+ {
+ foreach (var effect in effects) effect.enabled = false;
+ camera.clearFlags = CameraClearFlags.SolidColor;
+ camera.backgroundColor = Color.black;
+ camera.cullingMask = 1;
+ camera.targetTexture = texture;
+ // control: the camera where the scene put it, dust 100 below, inside any box a hand-set extent would give
+ transform.SetPositionAndRotation(position, Quaternion.Euler(90f, 0f, 0f));
+ camera.farClipPlane = 1000f;
+ var nearWith = Render(5f, position, 100f); var nearWithout = Render(0f, position, 100f);
+ var nearDiff = 0; for (var i = 0; i < nearWith.Length; i++) if (!nearWith[i].Equals(nearWithout[i])) nearDiff++;
+ Debug.Log($"{Tag} stardust near-control differing pixels={nearDiff}");
+ if (nearDiff == 0) Fail("scene-stardust-uncullable", "control: dust 100 below the camera drew no pixels");
+ transform.SetPositionAndRotation(new Vector3(0f, -40000f, 0f), Quaternion.Euler(90f, 0f, 0f));
+ camera.farClipPlane = 30000f;
+ var withDust = Render(400f, transform.position, 10000f); // the material scales a quad by distance^.33, so at this range it needs this size to cover pixels
+ var without = Render(0f, transform.position, 10000f);
+ var differing = 0;
+ for (var i = 0; i < withDust.Length; i++)
+ if (!withDust[i].Equals(without[i])) differing++;
+ if (differing == 0) Fail("scene-stardust-uncullable", "the dust 10000 below the camera drew no pixels");
+ }
+ finally
+ {
+ RenderTexture.active = previous;
+ foreach (var effect in effects) effect.enabled = true;
+ camera.targetTexture = target;
+ camera.cullingMask = mask;
+ camera.backgroundColor = background;
+ camera.clearFlags = flags;
+ camera.farClipPlane = far;
+ transform.SetPositionAndRotation(position, rotation);
+ RenderTexture.ReleaseTemporary(texture);
+ UnityEngine.Object.DestroyImmediate(readback);
+ }
+ }
+
+ // The nebula is an [ImageEffectOpaque] that fogs the whole ray to a depth the dust never writes (B49): dust drawn
+ // before it is attenuated by the fog, dust drawn after it sits on top at full strength. The dust's contribution to a
+ // pixel (render with dust minus render without) is read with the cloud renderer off and on, in an HDR target.
+ static void CheckStardustUnderFog(Stardust dust, FieldInfo bufferField)
+ {
+ const int Size = 128;
+ var camera = dust.TargetCamera;
+ var cloud = camera == null ? null : camera.GetComponent();
+ if (cloud == null) { Fail("scene-stardust-under-fog", "the target camera has no VolumeCloudRenderer"); return; }
+ var particles = (ComputeBuffer) bufferField.GetValue(dust);
+
+ var transform = camera.transform;
+ var (position, rotation) = (transform.position, transform.rotation);
+ var (far, flags, background, mask, target, hdr) = (camera.farClipPlane, camera.clearFlags, camera.backgroundColor, camera.cullingMask, camera.targetTexture, camera.allowHDR);
+ var texture = RenderTexture.GetTemporary(Size, Size, 24, RenderTextureFormat.ARGBHalf);
+ var readback = new Texture2D(Size, Size, TextureFormat.RGBAHalf, false);
+ var previous = RenderTexture.active;
+ var effects = camera.GetComponents().Where(behaviour => behaviour.enabled).ToArray();
+ var fields = new System.Collections.Generic.List();
+ GameObject floor = null;
+ float[] Render(bool fog, float size)
+ {
+ cloud.enabled = fog;
+ for (var frame = 0; frame < 2; frame++) // the cloud's first frame forces ULTRA and fills its history; the second is the settled one
+ {
+ Call(dust, "Update");
+ particles.SetData(DustLayout(particles.count, size, position, 100f));
+ camera.Render();
+ }
+ RenderTexture.active = texture;
+ readback.ReadPixels(new Rect(0, 0, Size, Size), 0, 0);
+ readback.Apply();
+ return readback.GetPixels().Select(pixel => pixel.r * .2126f + pixel.g * .7152f + pixel.b * .0722f).ToArray();
+ }
+ try
+ {
+ foreach (var effect in effects) effect.enabled = false;
+ camera.allowHDR = true;
+ camera.clearFlags = CameraClearFlags.SolidColor;
+ camera.backgroundColor = Color.black;
+ camera.cullingMask = 1;
+ camera.targetTexture = texture;
+ camera.farClipPlane = 1000f;
+ transform.SetPositionAndRotation(position, Quaternion.Euler(90f, 0f, 0f));
+ // The fog only measures a partial density where depth is written: a pixel with no depth is fogged whole (CloudShader sets
+ // density 1 past the far plane). A floor under the dust gives the march a finite ray.
+ floor = GameObject.CreatePrimitive(PrimitiveType.Plane);
+ floor.transform.position = position + Vector3.down * 200f;
+ floor.transform.localScale = Vector3.one * 100f;
+ UnityEngine.Object.DestroyImmediate(floor.GetComponent());
+
+ // The scene's own nebula fields are textures the game renders; here a uniform fill of white fog stands in for them.
+ foreach (var (name, format) in new[] { ("_NebulaSurfaceHeight", TextureFormat.RFloat), ("_NebulaPatchHeight", TextureFormat.RHalf), ("_NebulaPatch", TextureFormat.RHalf) })
+ Shader.SetGlobalTexture(name, Uniform(format, Color.black, fields));
+ Shader.SetGlobalTexture("_NebulaTint", Uniform(TextureFormat.RGBA32, Color.white, fields));
+ Shader.DisableKeyword("NOISE_SLOPE");
+ Shader.SetGlobalFloat("_NebulaFillDensity", .01f);
+ Shader.SetGlobalFloat("_NebulaFillDistance", 120f);
+ Shader.SetGlobalFloat("_NebulaFillExponent", 0f);
+ Shader.SetGlobalFloat("_NebulaFillOffset", 0f);
+ Shader.SetGlobalFloat("_NebulaPatchDensity", 0f);
+ Shader.SetGlobalFloat("_NebulaLuminance", .01f); // a fog dimmer than the dust: dust drawn over it would otherwise read as a negative contribution
+ Shader.SetGlobalFloat("_ExtinctionCoefficient", .25f); // with the fill density, about 40% of the light to the floor is fogged away
+ Shader.SetGlobalFloat("_SafetyDistance", -1e6f); // below every sample: only the uniform fill, none of the zone's noise
+ Shader.SetGlobalFloat("_TintLodExponent", 0f);
+
+ var clearBare = Render(false, 0f);
+ var clearDust = Render(false, 5f);
+ var fogBare = Render(true, 0f);
+ var fogDust = Render(true, 5f);
+
+ var fogShown = 0f;
+ var (clearSum, fogSum, drawn) = (0f, 0f, 0);
+ for (var i = 0; i < clearBare.Length; i++)
+ {
+ fogShown += Mathf.Abs(fogBare[i] - clearBare[i]) / clearBare.Length;
+ if (clearDust[i] == clearBare[i]) continue;
+ drawn++; clearSum += clearDust[i] - clearBare[i]; fogSum += fogDust[i] - fogBare[i];
+ }
+ var (clearMean, fogMean) = (drawn == 0 ? 0f : clearSum / drawn, drawn == 0 ? 0f : fogSum / drawn);
+ Debug.Log($"{Tag} stardust under fog: fog control mean |difference|={fogShown}, dust pixels={drawn}, dust contribution cloud off={clearMean}, cloud on={fogMean}, ratio={(clearMean == 0f ? 0f : fogMean / clearMean)}");
+ if (drawn == 0 || clearMean <= 0f) Fail("scene-stardust-under-fog", "control: the dust drew no pixels with the cloud renderer off");
+ else if (fogShown < 1e-3f) Fail("scene-stardust-under-fog", "control: the cloud renderer changed no pixels, so no fog is in view");
+ else if (fogMean > .9f * clearMean) Fail("scene-stardust-under-fog", "the dust is not attenuated by the fog in front of it: it was drawn after the nebula composites");
+ else if (fogMean < .1f * clearMean) Fail("scene-stardust-under-fog", "the dust is erased, not dimmed, by a partial fog");
+ }
+ finally
+ {
+ RenderTexture.active = previous;
+ foreach (var effect in effects) effect.enabled = true;
+ camera.allowHDR = hdr;
+ camera.targetTexture = target;
+ camera.cullingMask = mask;
+ camera.backgroundColor = background;
+ camera.clearFlags = flags;
+ camera.farClipPlane = far;
+ transform.SetPositionAndRotation(position, rotation);
+ RenderTexture.ReleaseTemporary(texture);
+ UnityEngine.Object.DestroyImmediate(readback);
+ foreach (var field in fields) UnityEngine.Object.DestroyImmediate(field);
+ if (floor != null) UnityEngine.Object.DestroyImmediate(floor);
+ }
+ }
+
+ static Texture2D Uniform(TextureFormat format, Color colour, System.Collections.Generic.List owner)
+ {
+ var texture = new Texture2D(1, 1, format, false) { wrapMode = TextureWrapMode.Clamp };
+ texture.SetPixel(0, 0, colour);
+ texture.Apply();
+ owner.Add(texture);
+ return texture;
+ }
+
+ // A square patch of particles 4 apart, `below` under `centre`.
+ static float[] DustLayout(int count, float size, Vector3 centre, float below)
+ {
+ var side = Mathf.RoundToInt(Mathf.Sqrt(count));
+ var data = new float[count * 7];
+ for (var i = 0; i < count; i++)
+ {
+ data[i * 7 + 0] = centre.x + ((i % side) - side / 2f) * 4f;
+ data[i * 7 + 1] = centre.y - below;
+ data[i * 7 + 2] = centre.z + ((i / side) - side / 2f) * 4f;
+ data[i * 7 + 3] = data[i * 7 + 4] = data[i * 7 + 5] = 1f;
+ data[i * 7 + 6] = size;
+ }
+ return data;
+ }
+
+ // CloudShader's pass 0 compiles with the flow keywords (it must #include_with_pragmas the shared include).
+ static void CheckCloudKeywords()
+ {
+ var shader = AssetDatabase.LoadAssetAtPath("Assets/Shaders/Raymarching/CloudShader.shader");
+ if (shader == null) { Fail("scene-cloud-keywords", "No CloudShader.shader."); return; }
+ var keywords = ShaderUtil.GetPassKeywords(shader, new PassIdentifier(0, 0), UnityEditor.Rendering.ShaderType.Fragment)
+ .Select(keyword => keyword.name).ToArray();
+ foreach (var name in new[] { "FLOW_GLOBAL", "FLOW_SLOPE" })
+ if (!keywords.Contains(name)) Fail("scene-cloud-keywords", $"CloudShader pass 0 does not carry {name}");
+ }
+
+ static int Differing(float[] a, float[] b)
+ {
+ var count = 0;
+ for (var i = 0; i < a.Length; i++)
+ if (Math.Abs(a[i] - b[i]) > 1e-4f) count++;
+ return count;
+ }
+
+ // The presenters' own Start and Update, as the game calls them; an exception is a failure that names the type.
+ static void Call(object target, string method)
+ {
+ var info = target.GetType().GetMethod(method, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
+ if (info == null) { Fail("scene-presenter-exception", $"{target.GetType().Name}.{method} not found"); return; }
+ try { info.Invoke(target, null); }
+ catch (TargetInvocationException e)
+ {
+ Fail("scene-presenter-exception", $"{target.GetType().Name}.{method} threw {e.InnerException?.GetType().Name}");
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/FlowFieldSceneVerify.cs.meta b/Assets/Scripts/Editor/FlowFieldSceneVerify.cs.meta
new file mode 100644
index 000000000..77339880b
--- /dev/null
+++ b/Assets/Scripts/Editor/FlowFieldSceneVerify.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 25fbd79fca1de49498c3bebf9f63243b
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/GravityFieldParityVerify.cs b/Assets/Scripts/Editor/GravityFieldParityVerify.cs
new file mode 100644
index 000000000..1753b95ab
--- /dev/null
+++ b/Assets/Scripts/Editor/GravityFieldParityVerify.cs
@@ -0,0 +1,367 @@
+using System;
+using System.IO;
+using System.Linq;
+using GameCult.Caching;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using UnityEngine.Rendering;
+using CultMath;
+
+namespace Aetheria.EditorTools
+{
+ ///
+ /// Batchmode check for campaign aetheria-gravity, cut grid-lowering: what the Gravity Field pass draws is the sim's
+ /// height. It builds a zone from Settings.asset's PlanetSettings with three bodies, runs the real lowering
+ /// (GravityLowering.Lower and CreateField), renders the field through an orthographic camera that culls layer 9 into
+ /// a float target, and compares every texel with -Zone.GetHeight at the texel centre's world position. It then checks
+ /// that the texture's gradient points where Zone.GetForce does, and that ARPG.unity and the body prefabs are wired
+ /// the way the cut leaves them (the gravity cameras cull layer 9 alone, nothing but the run-time field sits on it).
+ ///
+ /// Renders, so it needs a graphics device: run WITHOUT -nographics (as FlowFieldParityVerify).
+ /// Unity -batchmode -projectPath <repo> -executeMethod Aetheria.EditorTools.GravityFieldParityVerify.Run -logFile <path>
+ /// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure.
+ ///
+ public static class GravityFieldParityVerify
+ {
+ const string Tag = "[GravityFieldParityVerify]";
+ const int Size = 256;
+ // Measured on this tree (the "max error" line this run prints): the largest |texel + GetHeight| over the windows of the three
+ // frames and windows is 0.0065 u, in the last frame's planetoid window (float32 on both sides, the GPU's log against the CPU's, the
+ // quad's interpolated world position). The tolerance is 4.6x that. A 0.1% error in the tail constant (.5 -> .501)
+ // moves the drawn height by 0.053 u where all three tails reach (the planetoid and zone windows), 1.8x the
+ // tolerance; a reference of zero moves it by about 150 u.
+ const float Tolerance = 0.03f;
+ // The worst angle between the texture's central difference and GetForce (B28: 1.0 degrees median zone, 2.9 worst).
+ const float GradientDegrees = 3f;
+ static float _maxError, _maxAngle;
+ static bool _ok = true;
+
+ static void OnLog(string message, string stack, LogType type)
+ {
+ if ((type == LogType.Error || type == LogType.Exception || type == LogType.Assert) && !message.StartsWith(Tag))
+ Fail("logged-error", message.Split('\n')[0]);
+ }
+
+ static void Fail(string check, string detail)
+ {
+ Debug.LogError($"{Tag} FAIL {check}: {detail}");
+ _ok = false;
+ }
+
+ public static void Run()
+ {
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Null)
+ {
+ Debug.LogError($"{Tag} FAIL: no graphics device in this session; rerun batchmode without -nographics.");
+ EditorApplication.Exit(1);
+ return;
+ }
+
+ Application.logMessageReceived += OnLog;
+ var work = Path.Combine(Path.GetTempPath(), "gravity-parity-" + Guid.NewGuid().ToString("N"));
+ Directory.CreateDirectory(work);
+ ComputeBuffer wells = null;
+ GameObject field = null;
+ try
+ {
+ var settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/Settings.asset")
+ ?? throw new InvalidOperationException("No Settings.asset.");
+ var material = AssetDatabase.LoadAssetAtPath("Assets/Materials/Brushes/Gravity Field.mat")
+ ?? throw new InvalidOperationException("No Gravity Field.mat.");
+
+ var zone = BuildZone(settings, work, out var orbits);
+ GravityLowering.Lower(zone, 0f, ref wells);
+ field = GravityLowering.CreateField(material);
+
+ // Three frames through the one buffer, as ZoneRenderer.Update runs it: the bodies as built, then two moves
+ // (an orbit's Position is what Zone.GetHeight reads). A lowering that mirrors an axis or stops refreshing
+ // the upload agrees with the sim in the first frame only where it is symmetric, and not after a move.
+ CheckFrame("built", zone, orbits);
+ orbits[1].Position = new float2(-420f, 560f);
+ orbits[2].Position = new float2(900f, -700f);
+ GravityLowering.Lower(zone, 0f, ref wells);
+ CheckFrame("moved", zone, orbits);
+ orbits[0].Position = new float2(210f, -95f);
+ orbits[2].Position = new float2(-1800f, 1300f);
+ GravityLowering.Lower(zone, 0f, ref wells);
+ CheckFrame("moved-again", zone, orbits);
+ Debug.Log($"{Tag} max error {_maxError:G4} u (tolerance {Tolerance:G4}); max gradient angle {_maxAngle:F2} degrees (limit {GradientDegrees:F0})");
+
+ CheckWiring(settings);
+ Debug.Log(_ok ? $"{Tag} PASS" : $"{Tag} FAIL: see errors above");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"{Tag} FAIL exception: {e}");
+ _ok = false;
+ }
+ finally
+ {
+ Application.logMessageReceived -= OnLog;
+ if (field != null) UnityEngine.Object.DestroyImmediate(field);
+ wells?.Release();
+ try { Directory.Delete(work, true); } catch { }
+ }
+ EditorApplication.Exit(_ok ? 0 : 1);
+ }
+
+ static float Core(Zone zone, float mass) => zone.Settings.RocheLimit.Evaluate(mass);
+
+ static Vector2 At(Orbit orbit) => new Vector2(orbit.Position.x, orbit.Position.y);
+
+ // Orbits 0-2 are the sun, the planet and the planetoid, each window centred where the body is now; orbit 3 is the
+ // body of no strength. The zone window holds all four.
+ static void CheckFrame(string frame, Zone zone, Orbit[] orbits)
+ {
+ CheckTexels(frame + "-planetoid", zone, At(orbits[2]), 4f * Core(zone, 29.2f));
+ CheckTexels(frame + "-sun", zone, At(orbits[0]), 4f * Core(zone, 14152f));
+ CheckTexels(frame + "-zone", zone, Vector2.zero, 1.05f * zone.Pack.Radius);
+ CheckGradient(zone, orbits.Select(At).ToArray());
+ }
+
+ // A sun (14152 at (-130, 85)), a planet (273.9 at (610, -240)), a planetoid (29.2 at (670, -270)) and a body of
+ // mass 0, whose well has no strength (a legal body; its curves give c = 0 and R = 0), at (1700, 300): parentless,
+ // fixed, off both axes and asymmetric, so the zone's wells sit where the verify says before any Update and a
+ // mirrored or swapped axis cannot agree with the sim.
+ internal static Zone BuildZone(GameSettings settings, string work, out Orbit[] orbits, float radius = 4182f)
+ {
+ var cache = AetheriaStores.Open(Path.Combine(work, "catalog.cc"), Path.Combine(work, "run.cc"), catalogWritable: true);
+ cache.Upsert(new VerseGrammar { Revision = 1 });
+ cache.FlushAsync().Wait();
+ var items = new ItemManager(cache, new ProvenanceLedger(), settings.GameplaySettings, _ => { });
+ var positions = new[] { new Vector2(-130f, 85f), new Vector2(610f, -240f), new Vector2(670f, -270f), new Vector2(1700f, 300f) };
+ var masses = new[] { 14152f, 273.9f, 29.2f, 0f };
+ var keys = new CultRecordKey[positions.Length];
+ var pack = new ZonePack { Radius = radius };
+ for (var i = 0; i < positions.Length; i++)
+ {
+ var orbit = keys[i] = cache.Upsert(new OrbitData { FixedPosition = new float2(positions[i].x, positions[i].y) }).Key;
+ var body = cache.Upsert(new PlanetData
+ { Name = "Body " + i, Orbit = new CultRecordRef(orbit), Mass = masses[i] }).Key;
+ pack.Orbits.Add(new CultRecordRef(orbit));
+ pack.Planets.Add(new CultRecordRef(body));
+ }
+ var zone = new Zone(items, settings.PlanetSettings, pack, new GalaxyZone { Name = "Gravity Parity", Owner = null }, null);
+ orbits = keys.Select(k => zone.Orbits[k]).ToArray();
+ return zone;
+ }
+
+ // Renders the field through a downward orthographic camera that culls layer 9 only, centred on `centre` with
+ // half-size `half`, and returns the depth of every texel with the world xz of the texel's centre, which is asked
+ // of the camera rather than assumed.
+ static void Render(Vector2 centre, float half, out float[] depth, out Vector2[] world)
+ {
+ var rt = new RenderTexture(Size, Size, 0, RenderTextureFormat.RFloat) { filterMode = FilterMode.Point };
+ var cameraObject = new GameObject("Gravity Parity Camera");
+ var read = new Texture2D(Size, Size, TextureFormat.RFloat, false);
+ var previous = RenderTexture.active;
+ try
+ {
+ var camera = cameraObject.AddComponent();
+ camera.orthographic = true;
+ camera.orthographicSize = half;
+ camera.aspect = 1f;
+ camera.nearClipPlane = .3f;
+ camera.farClipPlane = 1000f;
+ camera.cullingMask = 1 << GravityLowering.FieldLayer;
+ camera.clearFlags = CameraClearFlags.SolidColor;
+ camera.backgroundColor = Color.black;
+ camera.allowHDR = false;
+ camera.allowMSAA = false;
+ camera.targetTexture = rt;
+ cameraObject.transform.SetPositionAndRotation(new Vector3(centre.x, 100f, centre.y), Quaternion.Euler(90f, 0f, 0f));
+ camera.Render();
+
+ RenderTexture.active = rt;
+ read.ReadPixels(new Rect(0, 0, Size, Size), 0, 0);
+ read.Apply();
+ depth = read.GetPixelData(0).ToArray();
+ world = new Vector2[Size * Size];
+ for (var y = 0; y < Size; y++)
+ for (var x = 0; x < Size; x++)
+ {
+ var p = camera.ViewportToWorldPoint(new Vector3((x + .5f) / Size, (y + .5f) / Size, 100f));
+ world[y * Size + x] = new Vector2(p.x, p.z);
+ }
+ }
+ finally
+ {
+ RenderTexture.active = previous;
+ UnityEngine.Object.DestroyImmediate(cameraObject);
+ UnityEngine.Object.DestroyImmediate(read);
+ rt.Release();
+ UnityEngine.Object.DestroyImmediate(rt);
+ }
+ }
+
+ static void CheckTexels(string window, Zone zone, Vector2 centre, float half)
+ {
+ Render(centre, half, out var depth, out var world);
+ var worst = 0f;
+ var live = 0;
+ for (var i = 0; i < depth.Length; i++)
+ {
+ var expected = -zone.GetHeight(new float2(world[i].x, world[i].y));
+ if (float.IsNaN(depth[i])) { Fail($"{window}-texels", $"texel {i}: NaN"); return; }
+ var error = Math.Abs(depth[i] - expected);
+ worst = Math.Max(worst, error);
+ if (Math.Abs(expected) > 1f) live++;
+ if (error > Tolerance)
+ {
+ Fail($"{window}-texels", $"texel {i} at ({world[i].x:F2}, {world[i].y:F2}): expected {expected:G6}, drawn {depth[i]:G6}, error {error:G4} > {Tolerance:G4}");
+ return;
+ }
+ }
+ _maxError = Math.Max(_maxError, worst);
+ // A window that draws nothing agrees with a zone that is flat: the check must be live.
+ if (live < depth.Length / 2) Fail($"{window}-texels", $"only {live} of {depth.Length} texels are deeper than 1 u; the check is vacuous");
+ Debug.Log($"{Tag} {window}: {depth.Length} texels, max error {worst:G4} u");
+ }
+
+ // The texture's central difference (over two 4 u texels, mid-zone) points where GetForce does: depth = -h, so its
+ // gradient is the force over the exaggeration. This is what the slope readers (the shader's slopeFlow, the nebula
+ // surface normal, the drawn grid) take from the texture.
+ static void CheckGradient(Zone zone, Vector2[] bodies)
+ {
+ Render(new Vector2(1500f, 0f), 512f, out var depth, out var world);
+ var compared = 0;
+ for (var y = 1; y < Size - 1; y++)
+ for (var x = 1; x < Size - 1; x++)
+ {
+ var here = world[y * Size + x];
+ if (bodies.Any(b => (b - here).magnitude < 16f)) continue;
+ // The world step of each texel axis is read from the camera, so a flipped or rotated target is still measured.
+ var au = world[y * Size + x + 1] - world[y * Size + x - 1];
+ var av = world[(y + 1) * Size + x] - world[(y - 1) * Size + x];
+ var du = depth[y * Size + x + 1] - depth[y * Size + x - 1];
+ var dv = depth[(y + 1) * Size + x] - depth[(y - 1) * Size + x];
+ var det = au.x * av.y - au.y * av.x;
+ var g = new Vector2((du * av.y - dv * au.y) / det, (dv * au.x - du * av.x) / det);
+ var f = zone.GetForce(new float2(here.x, here.y));
+ var angle = Vector2.Angle(g, new Vector2(f.x, f.y));
+ if (float.IsNaN(angle) || angle > GradientDegrees)
+ {
+ Fail("gradient", $"at ({here.x:F1}, {here.y:F1}) the drawn slope points {angle:F2} degrees from the force (limit {GradientDegrees:F0})");
+ return;
+ }
+ _maxAngle = Math.Max(_maxAngle, angle);
+ compared++;
+ }
+ if (compared < Size * Size / 2) Fail("gradient", $"only {compared} texels were compared");
+ }
+
+ // Main Menu.unity has no ZoneRenderer, so no Gravity Field and no lowered potential: its gravity cameras draw the
+ // menu's own brush objects (Boundary on layer 9, the Waves on layer 10) and are presentation by spec (follow-up
+ // menu-grid-brushes), not a reader of the potential. This pins that: a ZoneRenderer in the menu would make its
+ // cameras readers of the field, and they would have to cull layer 9 alone like ARPG's.
+ static void CheckTestSceneWiring()
+ {
+ EditorSceneManager.OpenScene("Assets/Scenes/TestScene.unity", OpenSceneMode.Single);
+ try
+ {
+ if (CheckPatchCameras("TestScene.unity") < 1) Fail("wiring", "no Fog Patch Displacement camera in TestScene.unity");
+ }
+ finally
+ {
+ EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
+ }
+ }
+
+ static void CheckMenuWiring()
+ {
+ var scene = EditorSceneManager.OpenScene("Assets/Scenes/Main Menu.unity", OpenSceneMode.Single);
+ try
+ {
+ if (UnityEngine.Object.FindFirstObjectByType(FindObjectsInactive.Include) != null)
+ Fail("wiring", "Main Menu.unity has a ZoneRenderer: its gravity cameras now read the Gravity Field and must cull layer 9 alone");
+ var seen = 0;
+ foreach (var camera in UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None))
+ {
+ if (camera.targetTexture == null || camera.targetTexture.name != "Fog Surface Displacement") continue;
+ seen++;
+ const int menuBrushLayers = (1 << 9) | (1 << 10);
+ if (camera.cullingMask != menuBrushLayers)
+ Fail("wiring", $"Main Menu camera {camera.name} culls mask {camera.cullingMask}, not the menu brush layers 9 and 10");
+ }
+ if (seen != 1) Fail("wiring", $"{seen} Fog Surface Displacement cameras in Main Menu.unity, expected 1");
+ if (CheckPatchCameras("Main Menu.unity") < 1) Fail("wiring", "no Fog Patch Displacement camera in Main Menu.unity");
+ }
+ finally
+ {
+ EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
+ }
+ }
+
+ // Every scene's Fog Patch Displacement camera: cloudDensity adds the R32 gravity height to the patch texture, so
+ // a patch camera that culls the gravity layer counts the field twice. Returns how many it found in the open scene.
+ static int CheckPatchCameras(string sceneName)
+ {
+ var found = 0;
+ foreach (var camera in UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None))
+ {
+ if (camera.targetTexture == null || camera.targetTexture.name != "Fog Patch Displacement") continue;
+ found++;
+ if ((camera.cullingMask & 1 << GravityLowering.FieldLayer) != 0)
+ Fail("wiring", $"camera {camera.name} (target Fog Patch Displacement) in {sceneName} culls layer {GravityLowering.FieldLayer}, the gravity layer");
+ }
+ return found;
+ }
+
+ static void CheckWiring(GameSettings settings)
+ {
+ var scene = EditorSceneManager.OpenScene("Assets/Scenes/ARPG.unity", OpenSceneMode.Single);
+ try
+ {
+ var gravityTargets = new[] { "Fog Surface Displacement", "Slime Gravity", "MinimapGravity" };
+ var seen = 0;
+ foreach (var camera in UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None))
+ {
+ if (camera.targetTexture == null || !gravityTargets.Contains(camera.targetTexture.name)) continue;
+ seen++;
+ if (camera.cullingMask != 1 << GravityLowering.FieldLayer)
+ Fail("wiring", $"camera {camera.name} (target {camera.targetTexture.name}) culls mask {camera.cullingMask}, not layer {GravityLowering.FieldLayer} alone");
+ }
+ if (seen < gravityTargets.Length) Fail("wiring", $"only {seen} gravity cameras found in ARPG.unity");
+
+ // The patch texture is half-float: it holds the patch layers only, the nebula reads gravity from the R32 surface.
+ if (CheckPatchCameras("ARPG.unity") != 1) Fail("wiring", "ARPG.unity does not have exactly 1 Fog Patch Displacement camera");
+
+ // The map screen's gravity camera has no target until MapRenderer gives it one at run time.
+ var map = UnityEngine.Object.FindFirstObjectByType(FindObjectsInactive.Include);
+ if (map == null || map.GravityCamera == null) Fail("wiring", "no MapRenderer.GravityCamera in ARPG.unity");
+ else if (map.GravityCamera.cullingMask != 1 << GravityLowering.FieldLayer)
+ Fail("wiring", $"MapRenderer.GravityCamera culls mask {map.GravityCamera.cullingMask}, not layer {GravityLowering.FieldLayer} alone");
+
+ var renderer = UnityEngine.Object.FindFirstObjectByType(FindObjectsInactive.Include);
+ if (renderer == null) Fail("wiring", "no ZoneRenderer in ARPG.unity");
+ else if (renderer.GravityField == null || renderer.GravityField.shader.name != "Brushes/Gravity Field")
+ Fail("wiring", "ZoneRenderer.GravityField is not a Brushes/Gravity Field material");
+
+ foreach (var r in UnityEngine.Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None))
+ if (r.gameObject.layer == GravityLowering.FieldLayer)
+ Fail("wiring", $"renderer {r.name} in ARPG.unity sits on layer {GravityLowering.FieldLayer}");
+ }
+ finally
+ {
+ EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
+ }
+
+ CheckMenuWiring();
+ CheckTestSceneWiring();
+
+ foreach (var path in new[]
+ {
+ "Assets/Prefabs/RPG/Planets/Planet.prefab", "Assets/Prefabs/RPG/Planets/Gas Giant.prefab",
+ "Assets/Prefabs/RPG/Planets/Sun.prefab", "Assets/Prefabs/RPG/Wormhole 1.prefab"
+ })
+ {
+ var prefab = AssetDatabase.LoadAssetAtPath(path);
+ if (prefab == null) { Fail("wiring", $"no prefab at {path}"); continue; }
+ foreach (var r in prefab.GetComponentsInChildren(true))
+ if (r.gameObject.layer == GravityLowering.FieldLayer)
+ Fail("wiring", $"renderer {r.name} in {path} sits on layer {GravityLowering.FieldLayer}");
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/GravityFieldParityVerify.cs.meta b/Assets/Scripts/Editor/GravityFieldParityVerify.cs.meta
new file mode 100644
index 000000000..50646bcbb
--- /dev/null
+++ b/Assets/Scripts/Editor/GravityFieldParityVerify.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1ceb2bdab0804463b1998471d47e82fa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/ShieldPanelCut3Verify.cs b/Assets/Scripts/Editor/ShieldPanelCut3Verify.cs
index aa6f4b151..31348b11d 100644
--- a/Assets/Scripts/Editor/ShieldPanelCut3Verify.cs
+++ b/Assets/Scripts/Editor/ShieldPanelCut3Verify.cs
@@ -130,7 +130,7 @@ namespace Aetheria.EditorTools
static AbsorbEvent Absorb(Vector3 worldPos, Vector3 worldDir, float energy = 5f,
DamageType type = DamageType.Kinetic)
- => new AbsorbEvent(worldPos.ToCultMath(), worldDir.ToCultMath(), energy, type);
+ => new AbsorbEvent(worldPos.ToCultMath(), worldDir.ToCultMath(), energy, type, AbsorbLayer.Shield);
// ==============================================================
// D17/D20: a panel struck in its own spawn frame must absorb that hit, not swallow it.
diff --git a/Assets/Scripts/Editor/ShipModPlaySmoke.cs b/Assets/Scripts/Editor/ShipModPlaySmoke.cs
index f0753e4e6..08a849801 100644
--- a/Assets/Scripts/Editor/ShipModPlaySmoke.cs
+++ b/Assets/Scripts/Editor/ShipModPlaySmoke.cs
@@ -96,7 +96,7 @@ public static class ShipModPlaySmoke
}
Install(package.Visual.Id, Path.GetFullPath(packagePath));
- var (hull, ship) = ShipAuthoringStore.Read(Path.Combine(modsRoot, package.Visual.Id, "ship.cc"));
+ var (hull, ship, _) = ShipAuthoringStore.Read(Path.Combine(modsRoot, package.Visual.Id, "ship.cc"));
ship.Id += ".broken";
hull.Name += " Broken";
hull.Visual = new CultRecordRef(ShipModCatalog.AuthoringKey(ship.Id));
diff --git a/Assets/Scripts/Editor/ShipPrefabAuthoring.cs b/Assets/Scripts/Editor/ShipPrefabAuthoring.cs
index 5d5b7352c..d2937b79d 100644
--- a/Assets/Scripts/Editor/ShipPrefabAuthoring.cs
+++ b/Assets/Scripts/Editor/ShipPrefabAuthoring.cs
@@ -140,12 +140,10 @@ public static class ShipPrefabAuthoring
if (values.Length != 7) throw new InvalidOperationException($"Invalid pivot name {name}");
var pivot = AddOrGet(node.gameObject);
pivot.Group = ParseInt(values[1], name);
- pivot.YawMin = ParseInt(values[2], name);
- pivot.YawMax = ParseInt(values[3], name);
pivot.PitchMin = ParseInt(values[4], name);
pivot.PitchMax = ParseInt(values[5], name);
pivot.Speed = ParseInt(values[6], name);
- if (pivot.YawMin > pivot.YawMax || pivot.PitchMin > pivot.PitchMax || pivot.Speed <= 0)
+ if (pivot.PitchMin > pivot.PitchMax || pivot.Speed <= 0)
throw new InvalidOperationException($"Invalid articulation range or speed in {name}");
pivots.Add(pivot);
}
diff --git a/Assets/Scripts/Editor/WireFloatingItems.cs b/Assets/Scripts/Editor/WireFloatingItems.cs
new file mode 100644
index 000000000..8065401a5
--- /dev/null
+++ b/Assets/Scripts/Editor/WireFloatingItems.cs
@@ -0,0 +1,75 @@
+using System;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+
+// Strips the deleted integrator component from the pickup prefabs and points ZoneRenderer's four pickup fields in ARPG.unity at
+// each prefab's ItemPickup, then saves the prefabs and the scene. Idempotent: a prefab with no missing script is left as
+// it is, and the fields are set to the same values again.
+//
+// Unity -batchmode -projectPath -executeMethod WireFloatingItems.Run -logFile
+//
+// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure. The menu item runs the same wiring.
+public static class WireFloatingItems
+{
+ private const string ScenePath = "Assets/Scenes/ARPG.unity";
+ private const string PickupFolder = "Assets/Prefabs/RPG/Pickups/";
+ // The field each prefab filled before this cut (read from ARPG.unity at the cut's base). Icosahedron fills none.
+ private static readonly (string Field, string Prefab)[] Fields =
+ {
+ ("SimpleCommodityPickup", "Tetrahedron"),
+ ("CompoundCommodityPickup", "Hexahedron"),
+ ("GearPickup", "Octahedron"),
+ ("WeaponPickup", "Dodecahedron"),
+ };
+ private static readonly string[] Prefabs = { "Tetrahedron", "Hexahedron", "Octahedron", "Dodecahedron", "Icosahedron" };
+
+ [MenuItem("Aetheria/Wire Floating Items")]
+ public static void Menu() => Wire();
+
+ public static void Run()
+ {
+ try
+ {
+ Wire();
+ EditorApplication.Exit(0);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ EditorApplication.Exit(1);
+ }
+ }
+
+ private static void Wire()
+ {
+ foreach (var name in Prefabs)
+ {
+ var path = PickupFolder + name + ".prefab";
+ var contents = PrefabUtility.LoadPrefabContents(path);
+ try
+ {
+ var removed = GameObjectUtility.RemoveMonoBehavioursWithMissingScript(contents);
+ if (contents.GetComponent() == null) throw new InvalidOperationException($"{path} has no ItemPickup.");
+ if (removed > 0) PrefabUtility.SaveAsPrefabAsset(contents, path);
+ Debug.Log($"WIRE_FLOATING_ITEMS {name} removed={removed}");
+ }
+ finally { PrefabUtility.UnloadPrefabContents(contents); }
+ }
+
+ var scene = EditorSceneManager.OpenScene(ScenePath, OpenSceneMode.Single);
+ var renderer = UnityEngine.Object.FindFirstObjectByType();
+ if (renderer == null) throw new InvalidOperationException("ARPG.unity has no ZoneRenderer.");
+ var serialized = new SerializedObject(renderer);
+ foreach (var (field, prefab) in Fields)
+ {
+ var pickup = AssetDatabase.LoadAssetAtPath(PickupFolder + prefab + ".prefab").GetComponent();
+ var property = serialized.FindProperty(field) ?? throw new InvalidOperationException($"ZoneRenderer has no {field}.");
+ property.objectReferenceValue = pickup;
+ }
+ serialized.ApplyModifiedProperties();
+ EditorSceneManager.MarkSceneDirty(scene);
+ if (!EditorSceneManager.SaveScene(scene)) throw new InvalidOperationException("The scene did not save.");
+ Debug.Log("WIRE_FLOATING_ITEMS ok");
+ }
+}
diff --git a/Assets/Scripts/Editor/WireFloatingItems.cs.meta b/Assets/Scripts/Editor/WireFloatingItems.cs.meta
new file mode 100644
index 000000000..c84e2a8c8
--- /dev/null
+++ b/Assets/Scripts/Editor/WireFloatingItems.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 9a56d7dc8471d224f9bed434b39f7c87
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/WireImpactFeedback.cs b/Assets/Scripts/Editor/WireImpactFeedback.cs
new file mode 100644
index 000000000..650db6981
--- /dev/null
+++ b/Assets/Scripts/Editor/WireImpactFeedback.cs
@@ -0,0 +1,61 @@
+using System;
+using Cinemachine;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+
+// Adds the impact-feedback tuning object to ARPG.unity and the impulse listener to its follow camera, then saves the
+// scene. Idempotent: a scene that already has them is left as it is.
+//
+// Unity -batchmode -projectPath -executeMethod WireImpactFeedback.Run -logFile
+//
+// Do not pass -quit: Run exits the Editor itself, 0 on success and 1 on any failure. The menu item runs the same wiring.
+public static class WireImpactFeedback
+{
+ private const string ScenePath = "Assets/Scenes/ARPG.unity";
+ // The weapons' own hit effect (the nested prefab AC5's Projectile uses as HitEffect): no new art.
+ private const string HullEffectPath = "Assets/Prefabs/Fire & Explosion Effects/Prefabs/TinyExplosion.prefab";
+
+ [MenuItem("Aetheria/Wire Impact Feedback")]
+ public static void Menu() => Wire();
+
+ public static void Run()
+ {
+ try
+ {
+ Wire();
+ EditorApplication.Exit(0);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogException(exception);
+ EditorApplication.Exit(1);
+ }
+ }
+
+ private static void Wire()
+ {
+ var scene = EditorSceneManager.OpenScene(ScenePath, OpenSceneMode.Single);
+ var manager = UnityEngine.Object.FindFirstObjectByType();
+ if (manager == null || manager.FollowCamera == null) throw new InvalidOperationException("ARPG.unity has no ActionGameManager with a FollowCamera.");
+
+ if (manager.FollowCamera.GetComponent() == null)
+ manager.FollowCamera.gameObject.AddComponent();
+
+ if (UnityEngine.Object.FindFirstObjectByType() == null)
+ {
+ var prefab = AssetDatabase.LoadAssetAtPath(HullEffectPath);
+ if (prefab == null) throw new InvalidOperationException($"No prefab at {HullEffectPath}.");
+ var root = new GameObject("Impact Feedback");
+ var feedback = root.AddComponent();
+ var effect = (GameObject) PrefabUtility.InstantiatePrefab(prefab, root.transform);
+ feedback.HullEffect = effect.GetComponent();
+ if (feedback.HullEffect == null) throw new InvalidOperationException("The hull effect prefab has no Prototype.");
+ EditorUtility.SetDirty(feedback);
+ }
+
+ EditorSceneManager.MarkSceneDirty(scene);
+ if (!EditorSceneManager.SaveScene(scene)) throw new InvalidOperationException("The scene did not save.");
+ Debug.Log("WIRE_IMPACT_FEEDBACK ok");
+ }
+}
diff --git a/Assets/Scripts/Editor/WireImpactFeedback.cs.meta b/Assets/Scripts/Editor/WireImpactFeedback.cs.meta
new file mode 100644
index 000000000..5d106d375
--- /dev/null
+++ b/Assets/Scripts/Editor/WireImpactFeedback.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 9083abd01a947a847847d2f6fc177153
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs
index 604864aa8..5ee4b474a 100644
--- a/Assets/Scripts/Gameplay/ActionGameManager.cs
+++ b/Assets/Scripts/Gameplay/ActionGameManager.cs
@@ -113,8 +113,11 @@ public class ActionGameManager : MonoBehaviour
//public string StarterShipTemplate = "Longinus";
// The run's credits: seeded from the scenario stage on a new game and from SavedGame on Continue, written by SaveRun.
[NonSerialized] public int Credits;
- public float TargetSpottedBlinkFrequency = 20;
- public float TargetSpottedBlinkOffset = -.25f;
+ // Presentation scale: the player's own Visibility at which the target panel's VisibilityToTargetFill reads full.
+ public float OwnSignatureFullScale = 10;
+ // The music last asked for: Update decides it each frame from what the player's own instruments hold and calls
+ // PlayMusic only when it changes.
+ private MusicType? _music;
[Header("Postprocessing")]
public float DeathPostTransitionTime;
@@ -157,6 +160,12 @@ public class ActionGameManager : MonoBehaviour
public Prototype FriendlyTargetIndicator;
public PlaceUIElementWorldspace ViewDot;
public Prototype LockIndicator;
+ // Presentation tuning: how far from the ship, toward the locker, the incoming-lock indicator sits.
+ public float IncomingLockIndicatorDistance = 30;
+ // Presentation tuning: how far from the ship, toward a remembered hostile's bearing, its marker sits; how long a
+ // sweep flash takes to fade.
+ public float BearingMarkerDistance = 40;
+ public float SearchFlashSeconds = .6f;
public PlaceUIElementWorldspace[] Crosshairs;
public GameObject HitMarker;
public float HitMarkerDuration;
@@ -177,8 +186,6 @@ public class ActionGameManager : MonoBehaviour
public Sprite ShieldIcon;
public Sprite NoShieldIcon;
- public float IntroDuration;
-
//public PlayerInput Input;
// private CinemachineFramingTransposer _transposer;
@@ -196,9 +203,19 @@ public class ActionGameManager : MonoBehaviour
private readonly HelmInput _helm = new HelmInput();
private TextMeshProUGUI _faceAimMark;
private (HardpointData[] hardpoints, Transform[] barrels, PlaceUIElementWorldspace crosshair)[] _articulationGroups;
- private (LockWeapon targetLock, PlaceUIElementWorldspace indicator, Rotate spin)[] _lockingIndicators;
+ // The outgoing progress indicators on the player's target: one per lock weapon (its Lock, shown only on a hostile target)
+ // and one per scanner (its scan Progress, shown on any target: a scan reads no stance).
+ private (Func progress, bool hostileOnly, PlaceUIElementWorldspace indicator, Rotate spin)[] _progressIndicators;
+ private (PlaceUIElementWorldspace indicator, Rotate spin) _incomingLockIndicator;
private Dictionary _visibleHostileIndicators = new Dictionary();
private Dictionary _visibleFriendlyIndicators = new Dictionary();
+ // Display-only: a marker per remembered hostile (shares HostileTargetIndicator's pool), the Search warnings the last
+ // ticks delivered (bearing, zone time; a per-tick buffer), and the sweep flashes drawn from them.
+ private readonly Dictionary _bearingMarkers = new Dictionary();
+ private readonly List<(float2 bearing, float time)> _pendingSweeps = new List<(float2, float)>();
+ private readonly List<(PlaceUIElementWorldspace indicator, Image image, float2 bearing, float time)> _sweepFlashes =
+ new List<(PlaceUIElementWorldspace, Image, float2, float)>();
+ private readonly List _markerScratch = new List();
private List _shipSubscriptions = new List();
private List _targetSubscriptions = new List();
private readonly Dictionary _debugLastShots = new Dictionary();
@@ -231,6 +248,8 @@ public class ActionGameManager : MonoBehaviour
public ItemManager ItemManager { get; private set; }
public Zone Zone { get; private set; }
+ public static SimClock Clock { get; } = new SimClock(1f / 60f);
+ private bool _zoneEntered;
private readonly (float2 direction, string name)[] _directions = {
(float2(0, 1), "Front"),
@@ -317,7 +336,7 @@ public class ActionGameManager : MonoBehaviour
Input.Global.ZoneMap.performed += context =>
{
ToggleMenuTab(MenuTab.Map);
- MenuMap.Position = CurrentEntity.Position.xz;
+ MenuMap.Position = DrawAhead.Position(CurrentEntity, Clock.Lead).xz;
};
Input.Global.Inventory.performed += context => ToggleMenuTab(MenuTab.Inventory);
@@ -341,6 +360,19 @@ public class ActionGameManager : MonoBehaviour
foreach (var wormhole in ZoneRenderer.WormholeInstances.Keys)
{
if (!(length(wormhole.Position - CurrentEntity.Position.xz) < Settings.GameplaySettings.WormholeExitRadius)) continue;
+ if (wormhole.Exit)
+ {
+ // The exit gate leads nowhere: RunGoal decides whether it is open, and an open one ends the run.
+ if (RunGoal.ExitOpen(Zone)) Win();
+ else
+ {
+ Dialog.Clear();
+ Dialog.Title.text = $"The exit gate is sealed. {RunGoal.Boss(Zone)?.Name ?? "Its guardian"} holds it shut.";
+ Dialog.Show();
+ Dialog.MoveToCursor();
+ }
+ return;
+ }
EnterWormhole(wormhole);
}
Dock();
@@ -409,22 +441,9 @@ public class ActionGameManager : MonoBehaviour
Input.Player.TargetNext.performed += context => CurrentEntity.TargetNext();
Input.Player.TargetPrevious.performed += context => CurrentEntity.TargetPrevious();
- // Cut 2 (docs/fire-control-cut.md): cycles the aim point among the current target's revealed
- // subsystems -- decides nothing itself, only calls the one writer (TrySelectTargetItem), same
- // predicate (FireControl.IsRevealed) the AI path uses. Entity-only: a chunk has no subsystems.
- Input.Player.CycleTargetItem.performed += context =>
- {
- var target = CurrentEntity.Target.Value.Entity;
- if (target == null) return;
- var revealed = target.Equipment.Where(x => FireControl.IsRevealed(CurrentEntity, x)).ToArray();
- if (revealed.Length == 0)
- {
- CurrentEntity.TrySelectTargetItem(null);
- return;
- }
- var currentItemIndex = Array.IndexOf(revealed, CurrentEntity.ResolvedTargetItem);
- CurrentEntity.TrySelectTargetItem(revealed[(currentItemIndex + 1) % revealed.Length]);
- };
+ // Cut 2 (docs/fire-control-cut.md): steps the aim through the target's schematic rows -- every mount this ship
+ // has located, empty or not, minus the ones it saw destroyed. Decides nothing: the entity owns the cycle.
+ Input.Player.CycleTargetItem.performed += context => CurrentEntity.CycleAim();
#endregion
@@ -715,14 +734,16 @@ public class ActionGameManager : MonoBehaviour
galaxyZone.Contents = new Zone(ItemManager, Settings.PlanetSettings, galaxyZone.PackedContents, galaxyZone, CurrentGalaxy);
}
Zone = galaxyZone.Contents;
+ _zoneEntered = true; // the clock forgets its lead between frames, never inside a step
PlayMusic(MusicType.Overworld);
+ _music = MusicType.Overworld;
Zone.Log = s => Debug.Log($"Zone: {s}");
if (CurrentEntity != null)
{
CurrentEntity.Deactivate();
- CurrentEntity.Zone.Entities.Remove(CurrentEntity);
+ CurrentEntity.Zone.Remove(CurrentEntity);
CurrentEntity.Zone = Zone;
Zone.Admit(CurrentEntity, piloted: false);
}
@@ -805,7 +826,6 @@ public class ActionGameManager : MonoBehaviour
}
else
{
- //StartCoroutine(IntroCutscene(targetEntity as Ship));
BindToEntity(targetEntity);
}
@@ -853,35 +873,6 @@ public class ActionGameManager : MonoBehaviour
BindToEntity(staged.Player);
}
- private IEnumerator IntroCutscene(Ship ship)
- {
- ZoneRenderer.PerspectiveEntity = ship;
- var entityPosition = ship.Position.xz;
- var followOrbit = Zone.Orbits.Keys.MinBy(o => lengthsq(Zone.GetOrbitPosition(o) - entityPosition));
- var followPlanet = ZoneRenderer.Planets[Zone.Planets.FirstOrDefault(p => p.Value.Orbit.Key.Equals(followOrbit)).Key];
- DockCamera.Follow = followPlanet.Body.transform;
- var rootOrbit = followOrbit;
- while (Zone.Orbits[rootOrbit].Data.Parent.IsSet())
- rootOrbit = Zone.Orbits[rootOrbit].Data.Parent.Key;
- var rootPlanet = ZoneRenderer.Planets[Zone.Planets.FirstOrDefault(p => p.Value.Orbit.Key.Equals(rootOrbit)).Key];
- DockCamera.LookAt = rootPlanet.Body.transform;
-
- var shipVelocity = ship.GetBehavior().Limit;
- var followOrbitPosition = Zone.GetOrbitPosition(followOrbit);
- var shipDirection = normalize(Zone.GetOrbitPosition(rootOrbit) - followOrbitPosition);
- ship.Position.xz = followOrbitPosition - shipDirection * shipVelocity * IntroDuration;
-
- var startTime = Time.time;
- while (Time.time - startTime < IntroDuration)
- {
- ship.Direction = shipDirection;
- ship.Velocity = shipDirection * shipVelocity;
- yield return null;
- }
-
- BindToEntity(ship);
- }
-
public void Dock()
{
if (CurrentEntity.Parent != null) return;
@@ -948,7 +939,7 @@ public class ActionGameManager : MonoBehaviour
Dialog.MoveToCursor();
// TODO: SFX: Fail
}
- else if (CurrentEntity.GetBehavior() == null && CurrentEntity.GetBehavior() == null)
+ else if (CurrentEntity.GetBehavior() == null)
{
Dialog.Clear();
Dialog.Title.text = "Can't undock. Missing thruster component!";
@@ -1012,9 +1003,17 @@ public class ActionGameManager : MonoBehaviour
foreach (var indicator in _visibleFriendlyIndicators) Destroy(indicator.Value.gameObject);
_visibleFriendlyIndicators.Clear();
+
+ foreach (var marker in _bearingMarkers.Values) RetireMarker(marker);
+ _bearingMarkers.Clear();
+ foreach (var flash in _sweepFlashes) RetireFlash(flash.indicator, flash.image);
+ _sweepFlashes.Clear();
+ _pendingSweeps.Clear();
- if(_lockingIndicators!=null) foreach(var (_, indicator, _) in _lockingIndicators)
+ if(_progressIndicators!=null) foreach(var (_, _, indicator, _) in _progressIndicators)
indicator.GetComponent().ReturnToPool();
+ if(_incomingLockIndicator.indicator != null) _incomingLockIndicator.indicator.GetComponent().ReturnToPool();
+ _incomingLockIndicator = default;
DisablePlayerInput();
Cursor.lockState = CursorLockMode.None;
GameplayUI.gameObject.SetActive(false);
@@ -1076,11 +1075,6 @@ public class ActionGameManager : MonoBehaviour
foreach (var group in _articulationGroups)
group.crosshair.gameObject.SetActive(true);
- _shipSubscriptions.Add(CurrentEntity.TargetedByCount.Subscribe(count =>
- {
- PlayMusic(count > 0 ? MusicType.Combat : MusicType.Overworld);
- }));
-
_shipSubscriptions.Add(CurrentEntity.Target.Subscribe(target =>
{
// Clear previous subscriptions related to currently targeted enemy
@@ -1152,12 +1146,18 @@ public class ActionGameManager : MonoBehaviour
_shipSubscriptions.Add(CurrentEntity.Death.Subscribe(Die));
- _lockingIndicators = CurrentEntity.GetBehaviors()
+ var progressSources = CurrentEntity.GetBehaviors().Select(x => ((Func) (() => x.Lock), true))
+ .Concat(CurrentEntity.GetBehaviors().Select(x => ((Func) (() => x.Progress), false)));
+ _progressIndicators = progressSources
.Select(x =>
{
var i = LockIndicator.Instantiate();
- return (x, i, i.GetComponent());
+ return (x.Item1, x.Item2, i, i.GetComponent());
}).ToArray();
+
+ var incoming = LockIndicator.Instantiate();
+ incoming.gameObject.SetActive(false);
+ _incomingLockIndicator = (incoming, incoming.GetComponent());
}
private void UpdatePlayerPanel()
@@ -1178,16 +1178,18 @@ public class ActionGameManager : MonoBehaviour
}
}
- // A chunk's simulated position is planar (Zone.ChunkPose); the renderer draws it at the asteroid layer's height.
+ // A chunk's pose is planar (Zone.ChunkPose), read at the drawn time so the reticle sits on the drawn rock; the renderer
+ // draws it at the asteroid layer's height.
private float3 ChunkWorldPosition(ChunkId chunk)
{
- var pose = CurrentEntity.Zone.ChunkPose(chunk.Field, chunk.Index);
+ var zone = CurrentEntity.Zone;
+ var pose = zone.ChunkPose(chunk.Field, chunk.Index, DrawAhead.Time(zone, Clock.Lead));
return float3(pose.x, Settings.PlanetSettings.AsteroidVerticalOffset, pose.y);
}
- private void Die(CauseOfDeath cause)
+ // The one way a run ends, won or lost: the run is cleared and the main menu returns.
+ private void EndRun()
{
- var deathTime = Time.time;
UnbindEntity();
CurrentEntity = null;
MainMenu.gameObject.SetActive(true);
@@ -1195,6 +1197,21 @@ public class ActionGameManager : MonoBehaviour
CurrentGalaxy = null;
RunSave.Clear(CultCache);
SavePlayerSettings();
+ }
+
+ private void Win()
+ {
+ EndRun();
+ Dialog.Clear();
+ Dialog.Title.text = "You have escaped the Terminus. This was the demo; the whole of it is yet to come.";
+ Dialog.Show();
+ Dialog.MoveToCursor();
+ }
+
+ private void Die(CauseOfDeath cause)
+ {
+ var deathTime = Time.time;
+ EndRun();
Observable.EveryUpdate()
.Where(_ => Time.time - deathTime < DeathPostTransitionTime)
.Subscribe(_ =>
@@ -1256,6 +1273,36 @@ public class ActionGameManager : MonoBehaviour
// TODO: SFX: Music
}
+ // What the player's own instruments say about combat, nothing a hostile knows: a hostile tracked, a paint on the
+ // player, or a remembered hostile the player still has a bearing on (a reveal younger than BearingMemory).
+ private void UpdateMusic()
+ {
+ var combat = CurrentEntity.VisibleEnemies.Count > 0 || CurrentEntity.IncomingPaints.Count > 0;
+ combat |= CurrentEntity.RememberedHostiles.Any();
+ var type = combat ? MusicType.Combat : MusicType.Overworld;
+ if (_music == type) return;
+ _music = type;
+ PlayMusic(type);
+ }
+
+ // An indicator's fill is how far the player's own sensors have resolved the ship from a track toward identifying
+ // it (ContactOf.Info over the detection-to-gear span): nothing of what the ship sees of the player.
+ private void PlaceFill(VisibleTargetIndicator indicator, Entity subject)
+ {
+ indicator.Fill.enabled = subject.Active;
+ if (!subject.Active) return;
+ var settings = Settings.GameplaySettings;
+ indicator.Fill.fillAmount = saturate(unlerp(settings.TargetDetectionInfoThreshold, settings.TargetGearInfoThreshold,
+ CurrentEntity.ContactOf(subject).Info));
+ }
+
+ // Whether an effect drawn at `subject`'s true position may be drawn: the player's own ship, or a ship its
+ // instruments track. The one seam for impact and hit effects (follow-up presentation-gated-on-tracked); a bearing
+ // alone (Detected without Tracked) places nothing there. No player ship, nothing to gate on.
+ public static bool DrawsAt(Entity subject) =>
+ Instance == null || Instance.CurrentEntity == null || subject == null || subject == Instance.CurrentEntity ||
+ Instance.CurrentEntity.ContactOf(subject).Tracked;
+
void Update()
{
if(!_paused)
@@ -1269,30 +1316,14 @@ public class ActionGameManager : MonoBehaviour
foreach (var indicator in _visibleHostileIndicators)
{
indicator.Value.gameObject.SetActive(indicator.Key!=CurrentEntity.Target.Value.Entity);
- indicator.Value.Place.Target = indicator.Key.Position.ToUnity();
- if (!indicator.Key.Active)
- indicator.Value.Fill.enabled = false;
- else
- {
- indicator.Value.Fill.fillAmount =
- saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold);
- indicator.Value.Fill.enabled =
- !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) ||
- sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0;
- }
+ indicator.Value.Place.Target = DrawAhead.Position(indicator.Key, Clock.Lead).ToUnity();
+ PlaceFill(indicator.Value, indicator.Key);
}
foreach (var indicator in _visibleFriendlyIndicators)
{
indicator.Value.gameObject.SetActive(indicator.Key!=CurrentEntity.Target.Value.Entity);
- indicator.Value.Place.Target = indicator.Key.Position.ToUnity();
- if (!indicator.Key.Active)
- indicator.Value.Fill.enabled = false;
- else
- {
- indicator.Value.Fill.enabled = true;
- indicator.Value.Fill.fillAmount =
- saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold);
- }
+ indicator.Value.Place.Target = DrawAhead.Position(indicator.Key, Clock.Lead).ToUnity();
+ PlaceFill(indicator.Value, indicator.Key);
}
var look = Input.Player.Look.ReadValue();
var sensitivity = PlayerSettings.InputSettings.Sensitivity;
@@ -1313,23 +1344,36 @@ public class ActionGameManager : MonoBehaviour
ship.Turn = _helm.Demand(ship, _viewDirection.xz, Input.Player.Turn.ReadValue());
}
+ UpdateMusic();
UpdateFireControlDebug(CurrentEntity.Target.Value);
var target = CurrentEntity.Target.Value.Entity;
if (target != null)
{
var threshold = Settings.GameplaySettings.TargetDetectionInfoThreshold;
- TargetVisibilityFill.fillAmount = lerp(.25f, .75f, (CurrentEntity.EntityInfoGathered[target] - threshold)/(1-threshold));
- VisibilityToTargetFill.fillAmount = lerp(.25f, .75f, target.EntityInfoGathered[CurrentEntity] / threshold);
+ TargetVisibilityFill.fillAmount = lerp(.25f, .75f, (CurrentEntity.ContactOf(target).Info - threshold)/(1-threshold));
+ VisibilityToTargetFill.fillAmount = lerp(.25f, .75f, saturate(CurrentEntity.Visibility / OwnSignatureFullScale));
TargetHitpointsFill.fillAmount = lerp(.25f, .75f, target.Hull.Durability / target.EquippedHull.Data.Durability);
TargetShieldsFill.fillAmount = target.Shield == null ? 0 : lerp(.25f, .75f, target.Shield.Progress);
}
- var tractorPower = Input.Player.TractorBeam.ReadValue();
- CurrentEntity.TractorPower =
- saturate(CurrentEntity.TractorPower + sign(tractorPower - CurrentEntity.TractorPower) * Time.deltaTime * 2);
+ CurrentEntity.TractorCommand = Input.Player.TractorBeam.ReadValue();
}
- Zone.Update(Time.deltaTime);
}
+ // One clock steps the zone, paused or not: a paused frame feeds it no real time.
+ // A zone entered inside a step (a wormhole) ends this frame's stepping: the rest of its steps are the old zone's.
+ void EnterNewZone() { if (_zoneEntered) { Clock.Reset(); _zoneEntered = false; } }
+ EnterNewZone();
+ var steppedZone = Zone;
+ Clock.Advance(_paused ? 0f : Time.deltaTime, delta =>
+ {
+ if (Zone != steppedZone) return;
+ steppedZone.Update(delta);
+ // A warning lives one tick, so sweeps are collected per tick, never read per frame.
+ if (CurrentEntity != null && CurrentEntity.Zone == steppedZone)
+ foreach (var warning in CurrentEntity.IncomingPaints)
+ if (warning.Mode == PaintMode.Search) _pendingSweeps.Add((warning.Bearing, steppedZone.Time));
+ });
+ EnterNewZone();
}
private static string ResultLabel(ShotResult result) => result switch
@@ -1395,7 +1439,7 @@ public class ActionGameManager : MonoBehaviour
: $"base {d.PBase:P1}";
DebugInfoText.text =
- $"FIRE CONTROL - {selectedItem.Data.Name}\n" +
+ $"FIRE CONTROL - {ItemManager.Title(selectedItem.EquippableItem)}\n" +
$"{gates}\n" +
$"range {d.Range:F0} [{d.MinRange:F0}..{d.MaxRange:F0}]\n" +
$"info {d.Info:F3}/{d.InfoDemandCeiling:F3} sensor {d.PSensor:F3}\n" +
@@ -1416,13 +1460,15 @@ public class ActionGameManager : MonoBehaviour
{
if (CurrentEntity == null || CurrentEntity.Parent != null) return;
+ var lead = Clock.Lead;
+ var ownDrawn = DrawAhead.Position(CurrentEntity, lead);
ViewDot.Target = ZoneRenderer.EntityInstances[CurrentEntity].LookAtPoint.position;
var target = CurrentEntity.Target.Value;
if (target.Chunk is ChunkId chunk)
TargetIndicator.Target = ChunkWorldPosition(chunk).ToUnity();
else if (target.Entity != null)
- TargetIndicator.Target = target.Entity.Position.ToUnity();
- var distance = length(ViewDot.Target.ToCultMath() - CurrentEntity.Position);
+ TargetIndicator.Target = DrawAhead.Position(target.Entity, lead).ToUnity();
+ var distance = length(ViewDot.Target.ToCultMath() - ownDrawn);
foreach (var (_, barrels, crosshair) in _articulationGroups)
{
var averagePosition = Vector3.zero;
@@ -1432,18 +1478,112 @@ public class ActionGameManager : MonoBehaviour
crosshair.Target = averagePosition;
}
- foreach (var (targetLock, indicator, spin) in _lockingIndicators)
+ foreach (var (progress, hostileOnly, indicator, spin) in _progressIndicators)
{
- var showLockingIndicator = targetLock.Lock > .01f && CurrentEntity.Target.Value.Entity != null && CurrentEntity.IsHostileTo(CurrentEntity.Target.Value.Entity);
- indicator.gameObject.SetActive(showLockingIndicator);
- if(showLockingIndicator)
+ var value = progress();
+ var targetEntity = CurrentEntity.Target.Value.Entity;
+ var showIndicator = value > .01f && targetEntity != null && (!hostileOnly || CurrentEntity.IsHostileTo(targetEntity));
+ indicator.gameObject.SetActive(showIndicator);
+ if(showIndicator)
{
- indicator.Target = CurrentEntity.Target.Value.Entity.Position.ToUnity();
- indicator.NoiseAmplitude = Settings.GameplaySettings.LockIndicatorNoiseAmplitude * (1 - targetLock.Lock);
- indicator.NoiseFrequency = Settings.GameplaySettings.LockIndicatorFrequency.Evaluate(targetLock.Lock);
- spin.Speed = Settings.GameplaySettings.LockSpinSpeed.Evaluate(targetLock.Lock);
+ indicator.Target = DrawAhead.Position(targetEntity, lead).ToUnity();
+ ApplyLockProgress(indicator, spin, value);
}
}
+
+ // The strongest lock or scan on the player's ship, read only from IncomingPaints (never another ship's LockWeapon or
+ // Scanner). A Scan paint's Strength is the scan's progress (ruling scan-is-an-act). Search paints (ping sweeps) are
+ // this class's sweep flashes (UpdateSweepFlashes). Same curves as the outgoing indicator, driven by the warning's Strength.
+ var warnings = CurrentEntity.IncomingPaints;
+ var strongest = -1;
+ for (var w = 0; w < warnings.Count; w++)
+ if ((warnings[w].Mode is PaintMode.Track or PaintMode.Scan) && (strongest < 0 || warnings[w].Strength > warnings[strongest].Strength)) strongest = w;
+ var (incomingIndicator, incomingSpin) = _incomingLockIndicator;
+ incomingIndicator.gameObject.SetActive(strongest >= 0);
+ if (strongest >= 0)
+ {
+ var warning = warnings[strongest];
+ incomingIndicator.Target = DrawAhead.AtBearing(CurrentEntity, warning.Bearing, IncomingLockIndicatorDistance, lead).ToUnity();
+ ApplyLockProgress(incomingIndicator, incomingSpin, warning.Strength);
+ }
+
+ UpdateBearingMarkers();
+ UpdateSweepFlashes();
+ }
+
+ // One marker per remembered hostile (a contact held by a bearing only): at the bearing the book keeps, labelled with the
+ // classes it claimed. Never at the subject's position, never read from its gear.
+ private void UpdateBearingMarkers()
+ {
+ var remembered = CurrentEntity.RememberedHostiles.ToList();
+ _markerScratch.Clear();
+ foreach (var subject in _bearingMarkers.Keys)
+ if (!remembered.Contains(subject)) _markerScratch.Add(subject);
+ foreach (var subject in _markerScratch)
+ {
+ RetireMarker(_bearingMarkers[subject]);
+ _bearingMarkers.Remove(subject);
+ }
+ foreach (var subject in remembered)
+ {
+ if (!_bearingMarkers.TryGetValue(subject, out var marker))
+ {
+ marker = HostileTargetIndicator.Instantiate();
+ marker.Fill.enabled = false;
+ _bearingMarkers.Add(subject, marker);
+ }
+ marker.gameObject.SetActive(true);
+ var bearing = CurrentEntity.ContactOf(subject).Bearing;
+ marker.Place.Target = DrawAhead.AtBearing(CurrentEntity, bearing, BearingMarkerDistance, Clock.Lead).ToUnity();
+ marker.ShowLabel(string.Join(", ", CurrentEntity.ClaimedClasses(subject).Select(c => c.Name)));
+ }
+ }
+
+ // A pooled indicator goes back as the next hostile indicator will want it: label hidden, fill restored.
+ private static void RetireMarker(VisibleTargetIndicator marker)
+ {
+ marker.ShowLabel(null);
+ marker.Fill.enabled = true;
+ marker.GetComponent().ReturnToPool();
+ }
+
+ private static void RetireFlash(PlaceUIElementWorldspace indicator, Image image)
+ {
+ if (image != null) image.color = new Color(image.color.r, image.color.g, image.color.b, 1);
+ indicator.GetComponent().ReturnToPool();
+ }
+
+ // A ping crossing the player draws one flash toward the pinger, fading over SearchFlashSeconds of zone time.
+ private void UpdateSweepFlashes()
+ {
+ foreach (var (bearing, time) in _pendingSweeps)
+ {
+ var indicator = LockIndicator.Instantiate();
+ ApplyLockProgress(indicator, indicator.GetComponent(), 0); // a pooled lock indicator keeps its last tightening
+ _sweepFlashes.Add((indicator, indicator.GetComponentInChildren(), bearing, time));
+ }
+ _pendingSweeps.Clear();
+ for (var i = _sweepFlashes.Count - 1; i >= 0; i--)
+ {
+ var (indicator, image, bearing, time) = _sweepFlashes[i];
+ var age = Zone.Time - time;
+ if (age < 0 || age >= SearchFlashSeconds)
+ {
+ RetireFlash(indicator, image);
+ _sweepFlashes.RemoveAt(i);
+ continue;
+ }
+ indicator.Target = DrawAhead.AtBearing(CurrentEntity, bearing, IncomingLockIndicatorDistance, Clock.Lead).ToUnity();
+ if (image != null) image.color = new Color(image.color.r, image.color.g, image.color.b, 1 - age / SearchFlashSeconds);
+ }
+ }
+
+ // The one lock-indicator curve: outgoing (the player's own lock) and incoming (the warning's strength) both tighten through it.
+ private void ApplyLockProgress(PlaceUIElementWorldspace indicator, Rotate spin, float progress)
+ {
+ indicator.NoiseAmplitude = Settings.GameplaySettings.LockIndicatorNoiseAmplitude * (1 - progress);
+ indicator.NoiseFrequency = Settings.GameplaySettings.LockIndicatorFrequency.Evaluate(progress);
+ spin.Speed = Settings.GameplaySettings.LockSpinSpeed.Evaluate(progress);
}
}
diff --git a/Assets/Scripts/Gameplay/ArticulationPoint.cs b/Assets/Scripts/Gameplay/ArticulationPoint.cs
index 427b74c0f..10648f09a 100644
--- a/Assets/Scripts/Gameplay/ArticulationPoint.cs
+++ b/Assets/Scripts/Gameplay/ArticulationPoint.cs
@@ -4,15 +4,14 @@ using UnityEngine;
using CultMath;
using static CultMath.math;
+// Presentation only: the barrel follows the point its group's solution places (EntityInstance), which FireControl has
+// already clamped to the arc. This decides no arc; Speed and the pitch clamp are how the picture slews.
public class ArticulationPoint : MonoBehaviour
{
public Transform Target;
public int Group;
- public float YawMin;
- public float YawMax;
-
public float PitchMin;
public float PitchMax;
@@ -30,7 +29,7 @@ public class ArticulationPoint : MonoBehaviour
var yaw = Vector2.SignedAngle(new Vector2(0, 1), new Vector2(targetLocal.x, targetLocal.z));
var pitch = Vector2.SignedAngle(new Vector2(1, 0), new Vector2(targetLocal.z, targetLocal.y));
- var targetYaw = clamp(_yaw - yaw, YawMin, YawMax);
+ var targetYaw = _yaw - yaw;
var targetPitch = clamp(_pitch - pitch, PitchMin, PitchMax);
if (abs(targetYaw - _yaw) < Speed * Time.deltaTime)
diff --git a/Assets/Scripts/Gameplay/CapabilityPresentationBinder.cs b/Assets/Scripts/Gameplay/CapabilityPresentationBinder.cs
index c2ada7f9d..b9e866c20 100644
--- a/Assets/Scripts/Gameplay/CapabilityPresentationBinder.cs
+++ b/Assets/Scripts/Gameplay/CapabilityPresentationBinder.cs
@@ -8,27 +8,18 @@ using UnityEngine;
// playground-cut.md fork L: "presentation is chosen per item, independently of capability... one
// presentation... can visualize any subset of an item's capabilities"). This binder has no knowledge
// of FieldDriver or any other concrete presentation, and no knowledge of what publishes events --
-// today the FieldShieldTest scene calls Bind() directly; a real capability owner will do the same
-// later without this binder changing.
+// EntityInstance binds every entity's events, and the FieldShieldTest scene binds its stand-in sim's the same way.
public class CapabilityPresentationBinder : MonoBehaviour
{
private readonly List _subscriptions = new List();
- private Func _grabTargetResolver;
- private Func _grabInitialVelocityResolver;
// Subscribes every presenter interface implemented by components on this object or its children to
- // the matching stream of `events`. `grabTargetResolver`/`grabInitialVelocityResolver` resolve a
- // GrabEvent's plain target handle to the live Transform/velocity a grab presenter needs; the owner
- // of `events` supplies them (the test scene today; the real pickup capability's caller later).
- public void Bind(CapabilityEvents events, Func grabTargetResolver = null,
- Func grabInitialVelocityResolver = null)
+ // the matching stream of `events`.
+ public void Bind(CapabilityEvents events)
{
Unbind();
if (events == null) return;
- _grabTargetResolver = grabTargetResolver;
- _grabInitialVelocityResolver = grabInitialVelocityResolver;
-
foreach (var presenter in GetComponentsInChildren(true))
{
var p = presenter;
@@ -38,12 +29,7 @@ public class CapabilityPresentationBinder : MonoBehaviour
foreach (var presenter in GetComponentsInChildren(true))
{
var p = presenter;
- _subscriptions.Add(events.Grab.Subscribe(e =>
- {
- var target = _grabTargetResolver?.Invoke(e.TargetHandle);
- var velocity = _grabInitialVelocityResolver?.Invoke(e.TargetHandle) ?? Vector3.zero;
- p.Grab(e, target, velocity);
- }));
+ _subscriptions.Add(events.Grab.Subscribe(e => p.Grab(e)));
}
foreach (var presenter in GetComponentsInChildren(true))
@@ -63,8 +49,6 @@ public class CapabilityPresentationBinder : MonoBehaviour
{
foreach (var s in _subscriptions) s.Dispose();
_subscriptions.Clear();
- _grabTargetResolver = null;
- _grabInitialVelocityResolver = null;
}
private void OnDisable() => Unbind();
diff --git a/Assets/Scripts/Gameplay/CapabilityPresenters.cs b/Assets/Scripts/Gameplay/CapabilityPresenters.cs
index 34e46dd39..61cc78aac 100644
--- a/Assets/Scripts/Gameplay/CapabilityPresenters.cs
+++ b/Assets/Scripts/Gameplay/CapabilityPresenters.cs
@@ -10,13 +10,10 @@ public interface IAbsorbPresenter
void Absorb(AbsorbEvent e);
}
-// Grab needs a live Transform to animate, which the engine-free GrabEvent cannot carry (its
-// TargetHandle is a plain identity, not a Unity reference). The binder resolves the handle through a
-// delegate supplied by the event source's owner and hands the presenter the result, along with the
-// initial velocity the target was already moving with (also owner-supplied, for the same reason).
+// Presenters read the event and the simulated pose, never a Transform the sim does not own.
public interface IGrabPresenter
{
- void Grab(GrabEvent e, Transform target, Vector3 initialVelocity);
+ void Grab(GrabEvent e);
}
public interface IMeleePresenter
diff --git a/Assets/Scripts/Gameplay/EntityInstance.cs b/Assets/Scripts/Gameplay/EntityInstance.cs
index fb356dd75..e263bac27 100644
--- a/Assets/Scripts/Gameplay/EntityInstance.cs
+++ b/Assets/Scripts/Gameplay/EntityInstance.cs
@@ -64,6 +64,7 @@ public class EntityInstance : MonoBehaviour
public Dictionary BarrelIndices { get; private set; }
public Dictionary RadiatorMeshes { get; private set; }
public Transform LookAtPoint { get; private set; }
+ private Dictionary _groupAims;
public Entity Entity { get; private set; }
public ZoneRenderer ZoneRenderer { get; private set; }
public Transform LocalSpace { get; private set; }
@@ -166,6 +167,13 @@ public class EntityInstance : MonoBehaviour
if(Shield)
Shield.Entity = entity;
+
+ // Landed impacts reach the screen through the entity's one binding: the shield ripple (ShieldManager) and the
+ // hull reaction and camera kick (ImpactPresenter) subscribe to the Absorb stream the simulation publishes.
+ var impacts = gameObject.GetComponent() ?? gameObject.AddComponent();
+ impacts.Entity = entity;
+ (gameObject.GetComponent() ?? gameObject.AddComponent())
+ .Bind(entity.Capabilities);
foreach (var hullCollider in HullColliders) hullCollider.Entity = entity;
foreach (var item in entity.Equipment)
@@ -179,14 +187,15 @@ public class EntityInstance : MonoBehaviour
{
var pingInstance = Instantiate(PingPrefab);
var pingMesh = pingInstance.GetComponent();
- pingInstance.position = entity.Position.ToUnity();
+ pingInstance.position = DrawAhead.Position(entity, ActionGameManager.Clock.Lead).ToUnity();
_pingBrightness = pingMesh.material.GetFloat("_Depth");
_currentPing = (pingInstance, pingMesh);
};
sensor.OnPingEnd += OnSensorPingEnd;
}
- if (behavior is InstantWeapon instantWeapon)
+ // A mine layer's presentation is the mine it lays (MineInstance, drawn by ZoneRenderer from Zone.Mines).
+ if (behavior is InstantWeapon instantWeapon && !FireControl.IsMineLayer(instantWeapon))
{
var data = (InstantWeaponData) instantWeapon.Data;
if (!_instantWeaponManagers.ContainsKey(data))
@@ -276,39 +285,22 @@ public class EntityInstance : MonoBehaviour
// HullColliders no longer publish Hit or a blast event at all (R8).
LookAtPoint = new GameObject($"{entity.Name} Look Point").transform;
-
+
+ // One aim point per articulation group, placed each LateUpdate where the group's first weapon aims.
+ _groupAims = new Dictionary();
foreach (var articulationPoint in ArticulationPoints)
{
- articulationPoint.Target = LookAtPoint;
+ if (!_groupAims.TryGetValue(articulationPoint.Group, out var aim))
+ _groupAims[articulationPoint.Group] = aim = new GameObject($"{entity.Name} Aim {articulationPoint.Group}").transform;
+ articulationPoint.Target = aim;
}
_subscriptions.Add(Entity.HullDamage.Subscribe(_ =>
{
- if (Entity.Hull.Durability < .01f)
+ if (Entity.Hull.IsDestroyed)
{
if (!this) return;
_destroyed = true;
- foreach (var gear in Entity.Equipment)
- {
- if (gear != Entity.EquippedHull && Random.value < ZoneRenderer.Settings.LootDropProbability)
- {
- ZoneRenderer.DropItem(
- Entity.Position.ToUnity(),
- Random.onUnitSphere * ZoneRenderer.Settings.LootDropVelocity,
- gear.EquippableItem);
- }
- }
-
- foreach (var cargo in Entity.CargoBays)
- {
- foreach (var item in cargo.Cargo.Keys)
- {
- ZoneRenderer.DropItem(
- Entity.Position.ToUnity(),
- Random.onUnitSphere * ZoneRenderer.Settings.LootDropVelocity,
- item);
- }
- }
if (DestroyEffect != null)
{
var t = Instantiate(DestroyEffect).transform;
@@ -398,11 +390,23 @@ public class EntityInstance : MonoBehaviour
x.Value.material.SetFloat("_Emission", Entity.ItemManager.GameplaySettings.TemperatureEmissionCurve.Evaluate(x.Key.RadiatorTemperature));
}
- LookAtPoint.position = transform.position + Entity.Aim.ToUnity() *
- (!Entity.Target.Value.IsNone ? max(Entity.TargetRange,Entity.ItemManager.GameplaySettings.ConvergenceMinimumDistance) : 10000);
- LocalSpace.localPosition = transform.position = Entity.Position.ToUnity();
+ // The drawn pose first: the camera's LookAt and the barrels read this frame's pose, not the last frame's.
+ var drawn = DrawAhead.Position(Entity, ActionGameManager.Clock.Lead);
+ LocalSpace.localPosition = transform.position = drawn.ToUnity();
+ var aimDistance = !Entity.Target.Value.IsNone
+ ? max(Entity.TargetRange, Entity.ItemManager.GameplaySettings.ConvergenceMinimumDistance)
+ : 10000;
+ LookAtPoint.position = transform.position + Entity.Aim.ToUnity() * aimDistance;
+ foreach (var group in _groupAims)
+ {
+ var weapon = group.Key >= 0 && group.Key < Entity.WeaponGroups.Length ? Entity.WeaponGroups[group.Key].weapons.FirstOrDefault() : null;
+ if (weapon == null) { group.Value.position = LookAtPoint.position; continue; }
+ var barrel = Barrels.TryGetValue(weapon.Item.Hardpoint, out var barrels) ? barrels[0].position : transform.position;
+ var direction = FireControl.Solution(weapon, Entity, Entity.Target.Value).Direction;
+ group.Value.position = barrel + new Vector3(direction.x, 0, direction.y) * aimDistance;
+ }
if (_influenceInstance)
- _influenceInstance.position = new Vector3(Entity.Position.x, 0, Entity.Position.z);
+ _influenceInstance.position = new Vector3(drawn.x, 0, drawn.z);
}
public virtual void OnDestroy()
diff --git a/Assets/Scripts/Gameplay/FieldDriver.cs b/Assets/Scripts/Gameplay/FieldDriver.cs
index dd6b36cc3..1c5d0a352 100644
--- a/Assets/Scripts/Gameplay/FieldDriver.cs
+++ b/Assets/Scripts/Gameplay/FieldDriver.cs
@@ -63,11 +63,7 @@ public class FieldDriver : MonoBehaviour, IAbsorbPresenter, IGrabPresenter, IMel
// public float GrabScaleAnimationExponent = .5f;
[Inspectable]
- public float GrabExtendTime;
- [Inspectable]
- public float GrabEnvelopTime;
- [Inspectable]
- public float GrabPullTime;
+ public float TendrilTipScale = 1;
[Inspectable]
public RectTransform.Axis RefractionAxis = RectTransform.Axis.Horizontal;
@@ -81,29 +77,17 @@ public class FieldDriver : MonoBehaviour, IAbsorbPresenter, IGrabPresenter, IMel
private float _meleeTime;
private bool _meleeActive;
private MeshCollider _collider;
- private Transform _grabObject;
- private Vector3 _grabObjectStartPos;
- private Vector3 _grabObjectStartTendrilBasePos;
- private Vector3 _grabObjectEndPos;
- private Vector3 _grabObjectVelocity;
- private float _grabObjectScale;
+ private bool _grabbing;
+ private GrabPhase _grabPhase;
private float _grabTime;
- private TendrilPhase _grabPhase;
+ private float _phaseDuration;
+ private Vector3 _grabStart;
+ private Vector3 _grabStartTendrilBase;
private Vector3 _tendrilBasePos;
private Vector3 _tendrilBendTarget;
private Vector3 _tendrilTargetPos;
private float _fadePoint;
- // Named distinctly from the global GrabPhase (CapabilityEvents.cs): this is FieldDriver's own
- // internal tendril-animation timing, still owned here until a real pickup capability exists to
- // publish per-phase GrabEvent transitions (see Grab(GrabEvent, Transform, Vector3) below).
- private enum TendrilPhase
- {
- Extend,
- Envelop,
- Pull
- }
-
private struct FieldHit
{
public float3 Position;
@@ -181,32 +165,41 @@ public class FieldDriver : MonoBehaviour, IAbsorbPresenter, IGrabPresenter, IMel
_meleeTime = 0;
}
- public bool CanGrab => _grabObject == null;
-
- public void GrabObject(Transform t, Vector3 v)
- {
- _grabPhase = TendrilPhase.Extend;
- _grabObject = t;
- _grabObjectStartPos = t.position;
- _grabObjectVelocity = v;
- _grabObjectScale = t.localScale.x;
- _tendrilBasePos = _grabObjectStartTendrilBasePos = _collider.ClosestPoint(_grabObjectStartPos);
- _fadePoint = .999f;
- }
-
// IAbsorbPresenter: delegates straight to the existing hit-buffer mechanism. e.DamageType is not
// read -- the field shield has no per-damage-type visual today; it rides along in the event for
// presentations that do vary by type (the mask itself is absorb-capability data, out of scope here).
public void Absorb(AbsorbEvent e) => AddHit(e.Position, e.Direction, e.Magnitude);
- // IGrabPresenter: only the Started phase does anything today. FieldDriver still times the
- // extend/envelop/pull animation itself (TendrilPhase above, driven by GrabExtendTime/
- // GrabEnvelopTime/GrabPullTime) because no capability yet publishes those phase transitions;
- // once one does, this is where FieldDriver would react to Envelop/Pull/Completed/Cancelled too.
- public void Grab(GrabEvent e, Transform target, Vector3 initialVelocity)
+ // IGrabPresenter: the simulation owns the grab; this draws the tendril from the events alone. Started records
+ // where the item is held and where the tendril leaves the field; Extend, Envelop and Pull set the phase and
+ // restart the real-time phase clock over the event's duration (it clamps at 1 until the next event, so a
+ // slowed simulation stretches the wait, not the animation); Completed and Cancelled end it.
+ public void Grab(GrabEvent e)
{
- if (e.Phase == GrabPhase.Started && target != null)
- GrabObject(target, initialVelocity);
+ switch (e.Phase)
+ {
+ case GrabPhase.Started:
+ _grabbing = true;
+ _grabPhase = GrabPhase.Started;
+ _grabStart = e.TargetPosition.ToUnity();
+ _tendrilBasePos = _grabStartTendrilBase = _collider.ClosestPoint(_grabStart);
+ _tendrilTargetPos = _grabStart;
+ _fadePoint = .999f;
+ break;
+ case GrabPhase.Extend:
+ case GrabPhase.Envelop:
+ case GrabPhase.Pull:
+ if (!_grabbing) break;
+ _grabPhase = e.Phase;
+ _grabTime = 0;
+ _phaseDuration = e.PhaseDuration;
+ break;
+ case GrabPhase.Completed:
+ case GrabPhase.Cancelled:
+ _grabbing = false;
+ _field.SetFloat("_TendrilInfluence", 0);
+ break;
+ }
}
// IMeleePresenter: the field shield's swing shape comes from its own authored curves
@@ -277,74 +270,47 @@ public class FieldDriver : MonoBehaviour, IAbsorbPresenter, IGrabPresenter, IMel
}
- if(_grabObject != null)
+ if (_grabbing && _grabPhase != GrabPhase.Started)
{
- _grabTime += Time.deltaTime / _grabPhase switch
+ _grabTime = min(1, _grabTime + Time.deltaTime / max(_phaseDuration, 1e-4f));
+ _tendrilBasePos = damp(_tendrilBasePos.ToCultMath(), _tendrilTargetPos.ToCultMath(), TendrilBaseDamping, Time.deltaTime).ToUnity();
+ switch (_grabPhase)
{
- TendrilPhase.Extend => GrabExtendTime,
- TendrilPhase.Envelop => GrabEnvelopTime,
- TendrilPhase.Pull => GrabPullTime,
- _ => throw new ArgumentOutOfRangeException()
- };
- if (_grabTime > 1)
- {
- _grabTime = 0;
- if (_grabPhase == TendrilPhase.Envelop)
- {
- _grabObjectEndPos = _grabObject.position;
- }
- if (_grabPhase == TendrilPhase.Pull)
- {
- Destroy(_grabObject.gameObject);
- _grabObject = null;
- _field.SetFloat("_TendrilInfluence", 0);
- }
- else _grabPhase++;
- }
-
- if (_grabObject != null)
- {
- _tendrilBasePos = damp(_tendrilBasePos.ToCultMath(), _grabObject.position.ToCultMath(), TendrilBaseDamping, Time.deltaTime).ToUnity();
- switch (_grabPhase)
- {
- case TendrilPhase.Extend:
- _tendrilBendTarget = _grabObjectStartPos;
- _grabObject.position += _grabObjectVelocity * Time.deltaTime;
- _tendrilTargetPos = lerp(
- lerp(_grabObjectStartTendrilBasePos.ToCultMath(), _grabObjectStartPos.ToCultMath(), _grabTime),
- lerp(_grabObjectStartPos.ToCultMath(), _grabObject.position.ToCultMath(), _grabTime),
- pow(_grabTime, TendrilExtensionExponent)).ToUnity();
- _field.SetFloat("_TendrilInfluence", pow(_grabTime, TendrilExtendBaseAnimationExponent));
- _field.SetFloat("_TendrilSize", lerp(TendrilBaseRadius/2,TendrilBaseRadius,pow(_grabTime, TendrilExtendBaseAnimationExponent)));
- _field.SetFloat("_TendrilRadius", _grabObjectScale * pow(_grabTime, TendrilTipRadiusAnimationExponent) * TendrilTipRadius);
- break;
- case TendrilPhase.Envelop:
- _tendrilBendTarget = _grabObjectStartPos;
- _tendrilTargetPos = _grabObject.position += _grabObjectVelocity * Time.deltaTime * (1-_grabTime);
- _field.SetFloat("_TendrilInfluence", 1);
- _field.SetFloat("_TendrilSize", TendrilBaseRadius);
- _field.SetFloat("_TendrilRadius", _grabObjectScale * TendrilTipRadius);
- break;
- case TendrilPhase.Pull:
- _tendrilTargetPos = _grabObject.position = lerp(_grabObjectEndPos.ToCultMath(), transform.position.ToCultMath(), _grabTime*_grabTime).ToUnity();
- _tendrilBendTarget = lerp(_grabObjectStartPos.ToCultMath(), _grabObjectEndPos.ToCultMath(), _grabTime*_grabTime).ToUnity();
- if (_fadePoint > .99 && transform.InverseTransformPoint(_grabObject.position).sqrMagnitude < 1)
- _fadePoint = _grabTime;
- _field.SetFloat("_TendrilInfluence", pow(smoothstep(1, _fadePoint, _grabTime), TendrilFadeExponent));
- _field.SetFloat("_TendrilSize", TendrilBaseRadius);
- _field.SetFloat("_TendrilRadius", _grabObjectScale * TendrilTipRadius);
- break;
- default:
- throw new ArgumentOutOfRangeException();
- }
- var tendrilRadii = EnvelopeRadiiOrFallback();
- _field.SetVector("_TendrilBase", Vector3.Scale(transform.InverseTransformPoint(_tendrilBasePos).normalized, tendrilRadii));
- _field.SetVector("_TendrilBend", Vector3.Scale(transform.InverseTransformPoint(_tendrilBendTarget), tendrilRadii));
- _field.SetVector("_TendrilTarget", Vector3.Scale(transform.InverseTransformPoint(_tendrilTargetPos), tendrilRadii));
+ case GrabPhase.Extend:
+ _tendrilBendTarget = _grabStart;
+ _tendrilTargetPos = lerp(
+ lerp(_grabStartTendrilBase.ToCultMath(), _grabStart.ToCultMath(), _grabTime),
+ _grabStart.ToCultMath(),
+ pow(_grabTime, TendrilExtensionExponent)).ToUnity();
+ _field.SetFloat("_TendrilInfluence", pow(_grabTime, TendrilExtendBaseAnimationExponent));
+ _field.SetFloat("_TendrilSize", lerp(TendrilBaseRadius/2,TendrilBaseRadius,pow(_grabTime, TendrilExtendBaseAnimationExponent)));
+ _field.SetFloat("_TendrilRadius", TendrilTipScale * pow(_grabTime, TendrilTipRadiusAnimationExponent) * TendrilTipRadius);
+ break;
+ case GrabPhase.Envelop:
+ _tendrilBendTarget = _grabStart;
+ _tendrilTargetPos = _grabStart;
+ _field.SetFloat("_TendrilInfluence", 1);
+ _field.SetFloat("_TendrilSize", TendrilBaseRadius);
+ _field.SetFloat("_TendrilRadius", TendrilTipScale * TendrilTipRadius);
+ break;
+ case GrabPhase.Pull:
+ // The curve of Zone's held pose (Zone.HeldPull): the tip rides the item the simulation pulls in.
+ _tendrilTargetPos = lerp(_grabStart.ToCultMath(), transform.position.ToCultMath(), Zone.HeldPull(_grabTime)).ToUnity();
+ _tendrilBendTarget = _grabStart;
+ if (_fadePoint > .99 && transform.InverseTransformPoint(_tendrilTargetPos).sqrMagnitude < 1)
+ _fadePoint = _grabTime;
+ _field.SetFloat("_TendrilInfluence", pow(smoothstep(1, _fadePoint, _grabTime), TendrilFadeExponent));
+ _field.SetFloat("_TendrilSize", TendrilBaseRadius);
+ _field.SetFloat("_TendrilRadius", TendrilTipScale * TendrilTipRadius);
+ break;
}
+ var tendrilRadii = EnvelopeRadiiOrFallback();
+ _field.SetVector("_TendrilBase", Vector3.Scale(transform.InverseTransformPoint(_tendrilBasePos).normalized, tendrilRadii));
+ _field.SetVector("_TendrilBend", Vector3.Scale(transform.InverseTransformPoint(_tendrilBendTarget), tendrilRadii));
+ _field.SetVector("_TendrilTarget", Vector3.Scale(transform.InverseTransformPoint(_tendrilTargetPos), tendrilRadii));
}
}
-
+
private float almostIdentity( float x )
{
return x*x*(2.0f-x);
@@ -358,7 +324,7 @@ public class FieldDriver : MonoBehaviour, IAbsorbPresenter, IGrabPresenter, IMel
private const int GIZMO_STEPS = 16;
private void OnDrawGizmosSelected()
{
- if (_grabObject != null)
+ if (_grabbing)
{
Vector3 previous = _tendrilBasePos;
for (int i = 1; i <= GIZMO_STEPS; i++)
diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs
index 2548f1a13..65e134755 100644
--- a/Assets/Scripts/Gameplay/GameSettings.cs
+++ b/Assets/Scripts/Gameplay/GameSettings.cs
@@ -11,14 +11,10 @@ using UnityEngine;
public class GameSettings : ScriptableObject
{
public string StartingHullName = "Longinus";
- public float PickupLifetime = 30;
- public float LootDropProbability = .25f;
- public float LootDropVelocity = 25;
public float HeatstrokePhasingFloor = 0;
public float HeatstrokePhasingFrequency = 5;
public float WormholeDistanceRatio;
public float DefaultViewDistance;
- public float MinimapZoneGravityRange;
public float[] MinimapZoomLevels;
public int DefaultMinimapZoom;
public ExponentialCurve IconSize;
diff --git a/Assets/Scripts/Gameplay/GridObject.cs b/Assets/Scripts/Gameplay/GridObject.cs
deleted file mode 100644
index 82d64199a..000000000
--- a/Assets/Scripts/Gameplay/GridObject.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-using CultMath;
-using CultMath.UnityBridge;
-using UnityEngine;
-using static CultMath.math;
-using Random = UnityEngine.Random;
-
-public class GridObject : MonoBehaviour
-{
- public float RotationSpeed;
- public float GridOffset;
- public float GridAttraction;
- public float Gravity;
- public float Drag = .1f;
- public float LaunchDrag;
-
- private float2 _selfVelocity;
- private float _timeOffset;
-
- public Zone Zone { get; set; }
- public Vector3 Velocity { get; set; }
-
- private void Start()
- {
- _timeOffset = Random.value * 100;
- }
-
- void Update()
- {
- var t = transform;
- t.localRotation = Quaternion.Euler(sin(Time.time - _timeOffset * RotationSpeed) * 90, 0, cos(Time.time - _timeOffset * RotationSpeed) * 90);
-
- if (Zone == null) return;
-
- var position = t.position;
- var gridHeight = Zone.GetHeight(position.Flatland().ToCultMath()) + GridOffset;
- Velocity += Vector3.up * (sign(gridHeight - position.y) * GridAttraction * Time.deltaTime);
- Velocity *= max(0, 1 - LaunchDrag * Time.deltaTime);
- var normal = Zone.GetNormal(position.Flatland().ToCultMath());
- var force = new float2(normal.x, normal.z);
- var forceMagnitude = lengthsq(force);
- if (forceMagnitude > .001f)
- {
- var fa = 1 / (1 - forceMagnitude) - 1;
- _selfVelocity += normalize(force) * Zone.Settings.GravityStrength * fa * Gravity;
- }
-
- _selfVelocity *= max(0, 1 - Drag * Time.deltaTime);
- t.position = position + (Velocity + new Vector3(_selfVelocity.x, 0, _selfVelocity.y)) * Time.deltaTime;
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/GridObject.cs.meta b/Assets/Scripts/Gameplay/GridObject.cs.meta
deleted file mode 100644
index 335d81a85..000000000
--- a/Assets/Scripts/Gameplay/GridObject.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 737f47c158214f0995ba2835f040ed96
-timeCreated: 1618441439
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/HullCollider.cs b/Assets/Scripts/Gameplay/HullCollider.cs
index 8d9275eb4..795de4755 100644
--- a/Assets/Scripts/Gameplay/HullCollider.cs
+++ b/Assets/Scripts/Gameplay/HullCollider.cs
@@ -1,17 +1,12 @@
using UnityEngine;
-using CultMath.UnityBridge;
// Cut 4 (docs/fire-control-cut.md): Hit, Splash, SendHit and SendSplash are deleted -- their last callers
// (ConstantLaser, ConstantLightning, ConstantParticleWeapon, HitscanEffect) are gone too (see those
// files and FireControl.Detonate, 12.4(b)'s renamed Splash). Nothing decides or applies damage through a Unity
-// collider any more (R8):
-// this component is now purely a physics surface for ship-on-ship collision impulse, not hit detection.
+// collider any more (R8), and no collision callback writes an Entity (cut sim-contact): ship contact is
+// Zone's, through Contacts.Step. This component holds the hull's collider for authoring, smokes and click
+// picking, and writes nothing.
public class HullCollider : MonoBehaviour
{
public Entity Entity { get; set; }
-
- private void OnCollisionEnter(Collision other)
- {
- Entity.Velocity += other.impulse.ToCultMath().xz / Time.deltaTime;
- }
}
diff --git a/Assets/Scripts/Gameplay/ImpactFeedback.cs b/Assets/Scripts/Gameplay/ImpactFeedback.cs
new file mode 100644
index 000000000..6c1f43df1
--- /dev/null
+++ b/Assets/Scripts/Gameplay/ImpactFeedback.cs
@@ -0,0 +1,39 @@
+using Cinemachine;
+using UnityEngine;
+
+// Presentation tuning for landed impacts (ImpactPresenter reads it, nothing in the simulation does): the hull
+// reaction's effect prefab and size, how strongly a hit's share of the hull reads (Feedback.Cue's intensityScale),
+// and the camera impulse. A scene component, so the scene is where it is tuned; absent in menus and test scenes,
+// where ImpactPresenter does nothing.
+public class ImpactFeedback : MonoBehaviour
+{
+ public static ImpactFeedback Instance { get; private set; }
+
+ // A scene instance of a pooled hit effect (Prototype); a hit spawns one under the struck EntityInstance.
+ public Prototype HullEffect;
+
+ // Multiplies a hit's share of the receiver's max durability before it saturates to 0..1 (Feedback.Cue).
+ public float IntensityScale = 10f;
+
+ // The effect's scale never drops below this, so the lightest hit still reads.
+ public float MinEffectScale = .3f;
+
+ public CinemachineImpulseDefinition Impulse = new CinemachineImpulseDefinition();
+
+ // Impulses raised since the scene loaded; the batchmode smoke reads it.
+ public int KicksRaised { get; private set; }
+
+ private void Awake() => Instance = this;
+
+ private void OnDestroy()
+ {
+ if (Instance == this) Instance = null;
+ }
+
+ // Raises one camera impulse of the given force, travelling along `direction` from `position`.
+ public void Kick(Vector3 position, Vector3 direction, float force)
+ {
+ KicksRaised++;
+ Impulse.CreateEvent(position, direction.normalized * force);
+ }
+}
diff --git a/Assets/Scripts/Gameplay/ImpactFeedback.cs.meta b/Assets/Scripts/Gameplay/ImpactFeedback.cs.meta
new file mode 100644
index 000000000..1d5613e95
--- /dev/null
+++ b/Assets/Scripts/Gameplay/ImpactFeedback.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: bfdc38a81d00b0347bb55ad6469535ff
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/ImpactPresenter.cs b/Assets/Scripts/Gameplay/ImpactPresenter.cs
new file mode 100644
index 000000000..9796ec753
--- /dev/null
+++ b/Assets/Scripts/Gameplay/ImpactPresenter.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+using CultMath.UnityBridge;
+using UnityEngine;
+
+// How one entity's landed impacts look and feel: the hull reaction at the drawn impact point, and the player's camera
+// kick. The simulation publishes each impact once on the entity's Capabilities (FireControl); Feedback.Cue decides how
+// hard it reads and whether the camera feels it, DrawAhead.Carried decides where it is drawn; this decides nothing.
+// The hull effect is drawn only where the player's instruments place the ship (ActionGameManager.DrawsAt).
+// The shield ripple is ShieldManager's. Everything here is display-only and runs in real time.
+public class ImpactPresenter : MonoBehaviour, IAbsorbPresenter
+{
+ public Entity Entity;
+
+ private readonly List _live = new List();
+
+ public void Absorb(AbsorbEvent e)
+ {
+ var feedback = ImpactFeedback.Instance;
+ if (feedback == null || Entity == null) return;
+
+ var manager = ActionGameManager.Instance;
+ var cue = Feedback.Cue(e, Entity.EquippedHull.Data.Durability,
+ manager != null && Entity == manager.CurrentEntity,
+ ActionGameManager.PlayerSettings.GraphicsSettings.ScreenShake, feedback.IntensityScale);
+ var point = DrawAhead.Carried(Entity, cue.Position, ActionGameManager.Clock.Lead).ToUnity();
+
+ if (e.Layer == AbsorbLayer.Hull && feedback.HullEffect != null && ActionGameManager.DrawsAt(Entity))
+ {
+ _live.RemoveAll(live => live == null || !live.gameObject.activeSelf);
+ var effect = feedback.HullEffect.Instantiate();
+ var size = Mathf.Max(feedback.MinEffectScale, cue.Intensity);
+ effect.transform.SetParent(transform, false);
+ effect.transform.position = point;
+ effect.transform.localScale = Vector3.one * (size / Mathf.Max(transform.lossyScale.x, 1e-3f));
+ _live.Add(effect);
+ }
+
+ if (cue.Shake > 0f)
+ feedback.Kick(point, new Vector3(cue.Direction.x, 0f, cue.Direction.z), cue.Shake);
+ }
+
+ // A live effect is a pooled child of this instance; hand it back before the instance takes it down with it.
+ private void OnDestroy()
+ {
+ foreach (var live in _live)
+ if (live != null && live.gameObject.activeSelf) live.ReturnToPool();
+ }
+}
diff --git a/Assets/Scripts/Gameplay/ImpactPresenter.cs.meta b/Assets/Scripts/Gameplay/ImpactPresenter.cs.meta
new file mode 100644
index 000000000..4c69429bc
--- /dev/null
+++ b/Assets/Scripts/Gameplay/ImpactPresenter.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 775c61f785344d54b9f41ad3328cecee
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/ItemPickup.cs b/Assets/Scripts/Gameplay/ItemPickup.cs
index 2a6621194..1378d6e28 100644
--- a/Assets/Scripts/Gameplay/ItemPickup.cs
+++ b/Assets/Scripts/Gameplay/ItemPickup.cs
@@ -4,9 +4,14 @@ using CultMath;
using CultMath.UnityBridge;
using UnityEngine;
using static CultMath.math;
+using Random = UnityEngine.Random;
+// How one floating item looks. Zone owns the item's every fact (existence, position, expiry, pickup); once bound,
+// this reads the latest sim body and draws, spun for show, and writes nothing back (rulings unity-presents-only-r3
+// and sim-speed-presentation). An unbound pickup (FieldTester's test scene) leaves its transform alone.
public class ItemPickup : MonoBehaviour
{
+ public float RotationSpeed = 1f;
public float LabelFadeDuration = .5f;
public float LabelPersistDuration = 3;
public float LabelDisplayAngle = 15;
@@ -15,28 +20,51 @@ public class ItemPickup : MonoBehaviour
public TextMeshPro ScanLabel;
public ItemInstance Item { get; set; }
- public ZoneRenderer ZoneRenderer { get; set; }
public float3 ViewOrigin { get; set; }
public float3 ViewDirection { get; set; }
private float _displayTime;
+ private float _timeOffset;
+ private Zone _zone;
+ private GameplaySettings _settings;
+ private FloatingItem _floating;
+
+ public void Bind(Zone zone, FloatingItem floating, GameplaySettings settings)
+ {
+ _zone = zone;
+ _settings = settings;
+ _floating = floating;
+ Item = floating.Item;
+ _timeOffset = Random.value * 100;
+ Place();
+ }
+
+ private void Place()
+ {
+ var lead = ActionGameManager.Clock.Lead;
+ var p = DrawAhead.Position(_floating.Body, lead);
+ transform.position = new Vector3(p.x, DrawAhead.FloaterHeight(_zone, _settings, p, lead), p.y);
+ }
private void Update()
{
+ if (_floating != null)
+ {
+ Place();
+ transform.localRotation = Quaternion.Euler(
+ sin(Time.time - _timeOffset * RotationSpeed) * 90, 0, cos(Time.time - _timeOffset * RotationSpeed) * 90);
+ }
+
var diff = transform.position.ToCultMath() - ViewOrigin;
var toThis = normalize(diff);
var viewAngle = acos(dot(toThis, ViewDirection)) * Mathf.Rad2Deg;
if (length(diff) < LabelDisplayMaxDistance && viewAngle < LabelDisplayAngle)
_displayTime = Time.time;
+ if (_floating?.Holder != null) _displayTime = Time.time;
var targetAlpha = Time.time - _displayTime < LabelPersistDuration ? 1 : 0;
var c = ScanLabel.color;
c.a = c.a + sign(targetAlpha - c.a) * (Time.deltaTime / LabelFadeDuration);
ScanLabel.color = c;
ScanLabelContainer.rotation = Quaternion.LookRotation((-toThis).ToUnity());
}
-
- private void OnDestroy()
- {
- ZoneRenderer?.DestroyLoot(this);
- }
-}
\ No newline at end of file
+}
diff --git a/Assets/Scripts/Gameplay/MineInstance.cs b/Assets/Scripts/Gameplay/MineInstance.cs
new file mode 100644
index 000000000..006f7d631
--- /dev/null
+++ b/Assets/Scripts/Gameplay/MineInstance.cs
@@ -0,0 +1,76 @@
+using CultMath;
+using CultMath.UnityBridge;
+using UnityEngine;
+using static CultMath.math;
+using Random = UnityEngine.Random;
+
+// How one laid mine looks. Zone owns the mine's every fact (position, arming, trigger, end); this reads them and
+// draws, and writes nothing back. The pose is the latest sim body, spun for show; the pulse runs in real time
+// (rulings unity-presents-only-r3 and sim-speed-presentation).
+public class MineInstance : MonoBehaviour
+{
+ public MeshRenderer MeshRenderer;
+ public int EmissionSubmesh = 2;
+ public AnimationCurve EmissionCurve;
+ public float ActiveCycleDuration = 1f;
+ public float ArmedCycleDuration = .25f;
+ public float ActiveEmission = 100f;
+ public float ArmedEmission = 1000f;
+ public float RotationSpeed = 1f;
+ // The blast's particles; the effect prefab destroys itself when its particle system stops.
+ public GameObject HitEffect;
+ public float HitEffectScale = 10f;
+
+ private Zone _zone;
+ private GameplaySettings _settings;
+ private Mine _mine;
+ private Material _material;
+ private float _timeOffset;
+ private float _pulse;
+ private float _emission;
+
+ public void Bind(Zone zone, Mine mine, GameplaySettings settings)
+ {
+ _zone = zone;
+ _settings = settings;
+ _mine = mine;
+ _material = MeshRenderer.materials[EmissionSubmesh];
+ _timeOffset = Random.value * 100;
+ Place();
+ }
+
+ private void Update()
+ {
+ Place();
+ transform.localRotation = Quaternion.Euler(
+ sin(Time.time - _timeOffset * RotationSpeed) * 90, 0, cos(Time.time - _timeOffset * RotationSpeed) * 90);
+
+ // None before the mine arms, then slow while it waits and fast once its fuse is lit.
+ var armed = _mine.Armed(_zone.Time);
+ var counting = _mine.TriggeredAt != null;
+ var target = !armed ? 0f : counting ? ArmedEmission : ActiveEmission;
+ _emission = lerp(_emission, target, Time.deltaTime * 10);
+ _pulse = (_pulse + Time.deltaTime / (counting ? ArmedCycleDuration : ActiveCycleDuration)) % 1;
+ _material.SetFloat("_Emission", _emission * EmissionCurve.Evaluate(_pulse));
+ }
+
+ private void Place()
+ {
+ var lead = ActionGameManager.Clock.Lead;
+ var p = DrawAhead.Position(_mine.Body, lead);
+ transform.position = new Vector3(p.x, DrawAhead.FloaterHeight(_zone, _settings, p, lead), p.y);
+ }
+
+ // The mine left Zone.Mines, which only its blast does: show it where it was drawn last.
+ public void Blast()
+ {
+ var effect = Instantiate(HitEffect, transform.position, Quaternion.identity);
+ effect.transform.localScale = Vector3.one * HitEffectScale;
+ Destroy(gameObject);
+ }
+
+ private void OnDestroy()
+ {
+ if (_material) Destroy(_material);
+ }
+}
diff --git a/Assets/Scripts/Gameplay/MineInstance.cs.meta b/Assets/Scripts/Gameplay/MineInstance.cs.meta
new file mode 100644
index 000000000..6640716ed
--- /dev/null
+++ b/Assets/Scripts/Gameplay/MineInstance.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 35c62f5e26769f645b1a1614a70422e1
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/ShieldManager.cs b/Assets/Scripts/Gameplay/ShieldManager.cs
index 05a303e6d..0514cf1e7 100644
--- a/Assets/Scripts/Gameplay/ShieldManager.cs
+++ b/Assets/Scripts/Gameplay/ShieldManager.cs
@@ -5,14 +5,37 @@ using System.Linq;
using CultMath;
using CultMath.UnityBridge;
using static CultMath.math;
+using UniRx;
using UnityEngine;
-public class ShieldManager : MonoBehaviour
+public class ShieldManager : MonoBehaviour, IAbsorbPresenter
{
public Prototype ShieldPrototype;
public float CollisionHitDuration = 3;
- public Entity Entity { get; set; }
+ private Entity _entity;
+ private IDisposable _contacts;
+
+ // Ship-on-ship contact is Zone's (Contacts.Step); this shield only presents it.
+ public Entity Entity
+ {
+ get => _entity;
+ set
+ {
+ _contacts?.Dispose();
+ _entity = value;
+ _contacts = value?.Zone.Contacted.Subscribe(Present);
+ }
+ }
+
+ private void OnDestroy() => _contacts?.Dispose();
+
+ private void Present(ContactEvent contact)
+ {
+ if (contact.A != Entity && contact.B != Entity) return;
+ if (Entity.Shield != null && Entity.Shield.Item.Active.Value)
+ ShowHit(DrawAhead.Carried(Entity, float3(contact.Point.x, Entity.Position.y, contact.Point.y), ActionGameManager.Clock.Lead).ToUnity(), CollisionHitDuration);
+ }
private ShieldEnvelope _envelope;
private bool _loggedMissingEnvelope;
@@ -29,55 +52,12 @@ public class ShieldManager : MonoBehaviour
Debug.LogWarning("ShieldManager has no ShieldEnvelope; falling back to its own transform for the hit direction.", this);
}
- private void OnCollisionEnter(Collision other)
+ // A shot the shield took ripples it where the shot landed, drawn on the hull as it is drawn. The hull layer is
+ // ImpactPresenter's.
+ public void Absorb(AbsorbEvent e)
{
- var otherShield = other.collider.GetComponent();
- if (!otherShield)
- {
- var gridObject = other.collider.GetComponent();
- if (gridObject)
- {
- var itemPickup = other.collider.GetComponent();
- if (itemPickup)
- {
- if (Entity.CargoBays.Any(c => c.TryStore(itemPickup.Item)))
- {
- // TODO: Pickup notification!
- Destroy(itemPickup.gameObject);
- }
- else
- {
- // TODO: Pickup failed notification!
- var cp = other.GetContact(0);
- gridObject.Velocity += cp.normal * 25;
- Debug.Log("Attempted item pickup, but no space in cargo bay!");
- }
- }
- else
- {
- Debug.Log("Shield collision occurred with grid object, but other collider isn't an item pickup!");
- }
- }
- else
- Debug.Log("Shield collision occurred, but other collider isn't a shield or a grid object!");
- return;
- }
- var contact = other.GetContact(0);
- var normal = normalize(float2(contact.normal.x, contact.normal.z));
- var tangent = normal.Rotate(ItemRotation.CounterClockwise);
- var v1n = dot(normal, Entity.Velocity);
- var v1t = dot(tangent, Entity.Velocity);
- var v2n = dot(normal, otherShield.Entity.Velocity);
- //var v2t = dot(tangent, otherShield.Entity.Velocity);
-
- var v1np = PostCollisionVelocity(v1n, Entity.Mass, v2n, otherShield.Entity.Mass);
- Entity.Velocity = tangent * v1t + normal * v1np;
- if(Entity.Shield != null && Entity.Shield.Item.Active.Value) ShowHit(contact.point, CollisionHitDuration);
- }
-
- private float PostCollisionVelocity(float v1, float m1, float v2, float m2)
- {
- return (v1 * (m1 - m2) + m2 * v2) / (m1 + m2);
+ if (e.Layer != AbsorbLayer.Shield || Entity == null || Entity.Shield == null || !Entity.Shield.Item.Active.Value || !ActionGameManager.DrawsAt(Entity)) return;
+ ShowHit(DrawAhead.Carried(Entity, e.Position, ActionGameManager.Clock.Lead).ToUnity(), CollisionHitDuration);
}
public void ShowHit(Vector3 point, float duration)
diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs
index cc110fc8f..3befea9b0 100644
--- a/Assets/Scripts/Gameplay/ShipInstance.cs
+++ b/Assets/Scripts/Gameplay/ShipInstance.cs
@@ -18,16 +18,7 @@ public class ShipInstance : EntityInstance
public int MaxParticleCount;
}
- private class AetherDriveInstance
- {
- public AetherDrive Drive;
- public ParticleSystem Particles;
- public float BaseEmission;
- public float BaseForce;
- }
-
private ThrusterInstance[] _thrusters;
- private AetherDriveInstance _aetherDrive;
public Ship Ship { get; private set; }
@@ -47,20 +38,6 @@ public class ShipInstance : EntityInstance
return;
}
Ship = ship;
- var drive = ship.GetBehavior();
- if (drive != null)
- {
- var particles = Instantiate(EngineAssets.Load(drive.DriveData.Particles), transform, false);
- var main = particles.main;
- main.customSimulationSpace = LocalSpace;
- _aetherDrive = new AetherDriveInstance
- {
- Drive = drive,
- BaseEmission = particles.emission.rateOverTimeMultiplier,
- Particles = particles,
- BaseForce = particles.forceOverLifetime.z.curveMultiplier
- };
- }
_thrusters = ship.GetBehaviors().Select(thruster =>
{
var effectData = (ThrusterData) thruster.Data;
@@ -115,19 +92,6 @@ public class ShipInstance : EntityInstance
TractorBeam.Power = Entity.TractorPower;
TractorBeam.Direction = Entity.Aim.ToUnity();
- if (_aetherDrive != null)
- {
- var thrust = length(_aetherDrive.Drive.ThrustDirection);
- var forceOverLifetime = _aetherDrive.Particles.forceOverLifetime;
- forceOverLifetime.xMultiplier = _aetherDrive.Drive.ThrustDirection.x * _aetherDrive.BaseForce;
- forceOverLifetime.zMultiplier = _aetherDrive.Drive.ThrustDirection.y * _aetherDrive.BaseForce;
- var emissionModule = _aetherDrive.Particles.emission;
- // Cut 8 (operator ask 2026-09-19): intent (thrust) times condition -- presentation reads the
- // simulation's own ratio rather than recomputing any part of it. AetherDrive.Condition is the
- // equivalent of Thruster.Condition below (Torque in place of Thrust).
- emissionModule.rateOverTimeMultiplier = _aetherDrive.BaseEmission * thrust * _aetherDrive.Drive.Condition;
- }
-
foreach (var thrusterInstance in _thrusters)
{
var emissionModule = thrusterInstance.System.emission;
@@ -138,6 +102,6 @@ public class ShipInstance : EntityInstance
emissionModule.rateOverTimeMultiplier = thrusterInstance.BaseEmission * thrusterInstance.Thruster.Axis * thrusterInstance.Thruster.Condition;
}
- transform.rotation = Ship.Rotation.ToUnity();
+ transform.rotation = DrawAhead.Rotation(Ship, ActionGameManager.Clock.Lead).ToUnity();
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/TimedDestroy.cs b/Assets/Scripts/Gameplay/TimedDestroy.cs
deleted file mode 100644
index fbbd86f8c..000000000
--- a/Assets/Scripts/Gameplay/TimedDestroy.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using UnityEngine;
-
-public class TimedDestroy : MonoBehaviour
-{
- public float Duration;
-
- private float _startTime;
-
- private void Start()
- {
- _startTime = Time.time;
- }
-
- public void Update()
- {
- if(Time.time - _startTime > Duration) Destroy(gameObject);
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/TimedDestroy.cs.meta b/Assets/Scripts/Gameplay/TimedDestroy.cs.meta
deleted file mode 100644
index 2f6bac661..000000000
--- a/Assets/Scripts/Gameplay/TimedDestroy.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 5d5539a23b814254b038a16f32f1d8a9
-timeCreated: 1618453298
\ No newline at end of file
diff --git a/Assets/Scripts/Gameplay/TractorBeam.cs b/Assets/Scripts/Gameplay/TractorBeam.cs
index 579cc813f..64a6a5f1a 100644
--- a/Assets/Scripts/Gameplay/TractorBeam.cs
+++ b/Assets/Scripts/Gameplay/TractorBeam.cs
@@ -1,33 +1,51 @@
using System;
using UnityEngine;
+using CultMath.UnityBridge;
-public class TractorBeam : MonoBehaviour
+// Presents the ship's grab: while the simulation holds an item, the beam looks along the ground-plane vector to the
+// point the item was held from and emits at Power. Zone pulls the held item along the segment from the ship to that
+// point (docs/aetheria-release-map.md L11), which is why GrabEvent.TargetPosition on Started is the exact aim and no
+// pose lookup is needed. Idle, the beam turns with Direction and emits nothing. The simulation decides every grab fact.
+public class TractorBeam : MonoBehaviour, IGrabPresenter
{
public ParticleSystem ParticleSystem;
- public float Radius;
- public float Traction;
- public float Distance;
-
+
public float Power { get; set; }
public Vector3 Direction { get; set; }
+ private bool _grabbing;
+ private Vector3 _heldPoint;
+ private Vector3 _heldDirection;
+
+ // Cancelled can carry no position (a vanished item), so only Started is read for one.
+ public void Grab(GrabEvent e)
+ {
+ switch (e.Phase)
+ {
+ case GrabPhase.Started:
+ _grabbing = true;
+ _heldPoint = e.TargetPosition.ToUnity();
+ _heldDirection = Direction;
+ break;
+ case GrabPhase.Completed:
+ case GrabPhase.Cancelled:
+ _grabbing = false;
+ break;
+ }
+ }
+
public void Update()
{
- transform.rotation = Quaternion.LookRotation(Direction);
- var emission = ParticleSystem.emission;
- if (Power > .01f)
+ var look = Direction;
+ if (_grabbing)
{
- var objectFound = false;
- foreach (var o in Physics.SphereCastAll(transform.position, Radius, Direction, Distance, 1 << 21))
- {
- var gridObject = o.collider.GetComponent();
- if (gridObject == null) continue;
- objectFound = true;
- gridObject.Velocity += Vector3.Normalize(transform.position - gridObject.transform.position) * (Traction * Time.deltaTime);
- }
-
- emission.rateOverTimeMultiplier = objectFound ? Power : 0;
+ var toHeld = _heldPoint - transform.position;
+ toHeld.y = 0;
+ if (toHeld.sqrMagnitude > 1e-6f) _heldDirection = toHeld;
+ look = _heldDirection;
}
- else emission.rateOverTimeMultiplier = 0;
+ transform.rotation = Quaternion.LookRotation(look);
+ var emission = ParticleSystem.emission;
+ emission.rateOverTimeMultiplier = _grabbing ? Power : 0;
}
-}
\ No newline at end of file
+}
diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs
index 26a6db650..7e02d2613 100644
--- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs
+++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectile.cs
@@ -87,7 +87,7 @@ public class GuidedProjectile : MonoBehaviour
// The resolution. A round that detonated (a hit, or a burst) bursts now, at the simulation's burst point when
// it has one; a round the simulation resolved without a detonation (a contact or delayed round that missed,
// one whose target is gone) just falls away, with no explosion to show.
- public void Resolve(bool detonated, Vector3? point)
+ public void Resolve(bool detonated, Vector3? point, bool showHitEffect)
{
// A round that already faded out (overshot, out of flight) still shows the simulation's detonation: only a
// round that has been killed is done. The fade is stopped so it cannot Kill the round a second time.
@@ -102,7 +102,7 @@ public class GuidedProjectile : MonoBehaviour
// short of it), and is skipped when the round never knew where its target was.
Vector3? effectAt = point ?? (TargetPosition != null ? TargetPosition() : Target ? Target.position : (Vector3?) null);
if (point.HasValue) transform.position = point.Value;
- if (HitEffect != null && effectAt.HasValue)
+ if (HitEffect != null && showHitEffect && effectAt.HasValue)
{
var ht = HitEffect.Instantiate();
ht.position = effectAt.Value;
diff --git a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs
index 876dda1f6..1b5290640 100644
--- a/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs
+++ b/Assets/Scripts/Gameplay/Weapons/GuidedProjectileManager.cs
@@ -17,7 +17,8 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
var bindings = new CompositeDisposable();
zone.ShotCommitted.Where(o => o.ShotId == shotId && o.HasBurstPoint).Subscribe(o => p.BurstAt(At(o))).AddTo(bindings);
zone.ShotResolved.Where(o => o.ShotId == shotId)
- .Subscribe(o => p.Resolve(o.Result == ShotResult.Hit || o.Result == ShotResult.Burst, o.HasBurstPoint ? At(o) : (Vector3?) null))
+ .Subscribe(o => p.Resolve(o.Result == ShotResult.Hit || o.Result == ShotResult.Burst, o.HasBurstPoint ? At(o) : (Vector3?) null,
+ ActionGameManager.DrawsAt(o.Target)))
.AddTo(bindings);
// The binding outlives a fade-out until the shot's own arrival (the moment the simulation resolves it), plus a
// second of margin; a shot no longer pending has nothing left to resolve.
@@ -44,7 +45,7 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
p.SourceEntity = source.Entity;
if (target != null) p.Target = target.transform;
else p.TargetPosition = () => burst;
- p.Frequency = launcher.DodgeFrequency;
+ p.Frequency = item.Evaluate(MunitionParts.Of(item).EvasionFrequency);
var hp = item.Hardpoint;
var barrel = source.GetBarrel(hp);
p.StartPosition = (p.transform.position = barrel.position).ToCultMath();
@@ -53,8 +54,8 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
p.LiftCurve = launcher.LiftCurve.ToCurve();
p.ThrustCurve = launcher.ThrustCurve.ToCurve();
p.Velocity = barrel.forward * weapon.Velocity;
- p.Thrust = item.Evaluate(launcher.Thrust);
- p.TopSpeed = item.Evaluate(launcher.MissileVelocity);
+ p.Thrust = item.Evaluate(MunitionParts.Of(item).Acceleration);
+ p.TopSpeed = item.Evaluate(MunitionParts.Of(item).MaxSpeed);
Bind(p, source.Entity.Zone, shotId);
// A round with no target (a fused round fired at none) has no transform to hand a listener.
OnFireGuided.OnNext((source.Entity, target != null ? target.transform : null, p));
@@ -65,7 +66,7 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
p.ShotId = shotId;
p.Source = source.transform;
p.SourceEntity = source.Entity;
- p.Frequency = guidance.DodgeFrequency;
+ p.Frequency = item.Evaluate(MunitionParts.Of(item).EvasionFrequency);
var hp = item.Hardpoint;
var barrel = source.GetBarrel(hp);
p.StartPosition = (p.transform.position = barrel.position).ToCultMath();
@@ -74,9 +75,13 @@ public class GuidedProjectileManager : InstantWeaponEffectManager
p.LiftCurve = guidance.LiftCurve.ToCurve();
p.ThrustCurve = guidance.ThrustCurve.ToCurve();
p.Velocity = barrel.forward * weapon.Velocity;
- p.Thrust = item.Evaluate(guidance.Thrust);
- p.TopSpeed = item.Evaluate(guidance.MissileVelocity);
- p.TargetPosition = () => (source.Entity.Position + length(source.LookAtPoint.position.ToCultMath() - source.Entity.Position) * source.Entity.Aim).ToUnity();
+ p.Thrust = item.Evaluate(MunitionParts.Of(item).Acceleration);
+ p.TopSpeed = item.Evaluate(MunitionParts.Of(item).MaxSpeed);
+ p.TargetPosition = () =>
+ {
+ var drawn = DrawAhead.Position(source.Entity, ActionGameManager.Clock.Lead);
+ return (drawn + length(source.LookAtPoint.position.ToCultMath() - drawn) * source.Entity.Aim).ToUnity();
+ };
Bind(p, source.Entity.Zone, shotId);
}
else Debug.LogError($"Weapon {item.Data.Name} linked to {name} effect, but is not a Launcher!");
diff --git a/Assets/Scripts/Gameplay/Weapons/Projectile.cs b/Assets/Scripts/Gameplay/Weapons/Projectile.cs
index 70b591649..e5f0b1e86 100644
--- a/Assets/Scripts/Gameplay/Weapons/Projectile.cs
+++ b/Assets/Scripts/Gameplay/Weapons/Projectile.cs
@@ -1,59 +1,97 @@
-using System.Collections;
+using System;
+using System.Collections;
+using UniRx;
using UnityEngine;
-using static CultMath.math;
-// Cut 3 (docs/fire-control-cut.md): the raycast, shield branch and SendHit are deleted -- FireControl already
-// decided this shot's fate before this object was ever spawned (R8). What is left is pure flight-path
-// presentation: fly, and disappear at Range or ShotId's resolution, whichever comes first.
-// Cut 6b, 6.2 (12.4(b): Apply's own switch on the frozen Fuse decides this now, not Step): the flak-round
-// blast resolves in the simulation, through FireControl.Detonate -- a MonoBehaviour calling it would be
-// exactly the authority Cut 3 spent itself deleting, so the blast-distance/blast-radius fields this object
-// used to carry for that are gone. This object's job stays fly-and-disappear.
+// A ballistic round, drawn by DrawAhead.Round from what the simulation publishes and deciding nothing. The simulation
+// owns the round's facts (the PendingShot copy taken at spawn, replaced by the sim's record at ShotCommitted, and the
+// outcome it publishes), so this object stores no motion state of its own and computes no position, time, range or
+// impact point: each frame it asks DrawAhead.Round where the round is at sim time plus the clock's Lead (the same
+// draw-ahead ships use). The round ends on the sim's word: ShotResolved ends one that hit or burst, and
+// DrawAhead.RoundOver ends one the sim published as a miss. The barrel is only where the round is first seen: its
+// offset from the drawn line decays to zero over BlendTime sim seconds. The trail's fade after the end stays real time
+// (pure presentation, ruling sim-speed-presentation).
public class Projectile : MonoBehaviour
{
public TrailRenderer Trail;
- public float Gravity;
- public float Drag = .1f;
public Prototype HitEffect;
+ // Sim seconds over which the barrel's offset from the sim line decays to nothing.
+ public float BlendTime = .1f;
+
+ private PendingShot _shot;
+ private Zone _zone;
+ private CultMath.float3 _barrel;
+ private ShotOutcome _known;
private bool _alive;
+ private CompositeDisposable _binding;
- // Cut 3: FireControl.Fire's ShotId -- this projectile's handle onto Zone.ShotCommitted/ShotResolved.
- public int ShotId { get; set; }
- public Zone Zone { get; set; }
-
- public Vector3 StartPosition { get; set; }
- public Vector3 Velocity { get; set; }
- public Entity SourceEntity { get; set; }
- public float Range { get; set; }
-
- private void OnEnable()
+ // Takes the shot as the sim holds it, the zone whose sim time it is drawn at, and where the barrel is as this round is first seen.
+ public void Launch(Zone zone, PendingShot shot, Vector3 barrel)
{
+ _zone = zone;
+ _shot = shot;
+ _barrel = new CultMath.float3(barrel.x, barrel.y, barrel.z);
+ _known = null;
+ _binding?.Dispose();
+ _binding = new CompositeDisposable(
+ zone.ShotCommitted.Where(o => o.ShotId == shot.ShotId).Subscribe(Committed),
+ zone.ShotResolved.Where(o => o.ShotId == shot.ShotId).Subscribe(Resolve));
_alive = true;
+ transform.forward = new Vector3(shot.TravelDirection.x, 0, shot.TravelDirection.y);
+ Draw();
}
- // Update is called once per frame
void Update()
{
- if (SourceEntity == null) return;
-
- if(_alive)
- {
- var t = transform;
- Velocity -= Vector3.up * (Gravity * Time.deltaTime);
- Velocity *= max(0, 1 - Drag * Time.deltaTime);
- t.forward = Velocity.normalized;
-
- transform.position += Velocity * Time.deltaTime;
- var distanceTraveled = (transform.position - StartPosition).magnitude;
- if(distanceTraveled > Range)
- StartCoroutine(Kill());
- }
+ if (_alive) Draw();
}
- IEnumerator Kill()
+ private void Draw()
+ {
+ var lead = ActionGameManager.Clock.Lead;
+ var drawn = DrawAhead.Time(_zone, lead);
+ transform.position = V(DrawAhead.Round(_shot, _known, _barrel, BlendTime, drawn));
+ if (DrawAhead.RoundOver(_shot, _known, drawn)) Finish();
+ }
+
+ // The sim's commit: the record it holds now (a contact burst's arrival is shortened here) and what it decided.
+ private void Committed(ShotOutcome outcome)
+ {
+ if (_zone.TryGetShot(outcome.ShotId, out var record)) _shot = record;
+ _known = outcome;
+ }
+
+ // The simulation's verdict. A round that hit or burst is drawn at its end and stops; a miss keeps flying.
+ private void Resolve(ShotOutcome outcome)
+ {
+ if (!_alive) return;
+ _known = outcome;
+ if (outcome.Result == ShotResult.Miss) return;
+ Draw();
+ if (HitEffect != null && ActionGameManager.DrawsAt(outcome.Target)) HitEffect.Instantiate().position = transform.position;
+ Finish();
+ }
+
+ private static Vector3 V(CultMath.float3 p) => new Vector3(p.x, p.y, p.z);
+
+ private void Finish()
{
_alive = false;
+ _binding?.Dispose();
+ _binding = null;
+ StartCoroutine(Fade());
+ }
+
+ void OnDisable()
+ {
+ _alive = false;
+ _binding?.Dispose();
+ _binding = null;
+ }
+
+ IEnumerator Fade()
+ {
var startTime = Time.time;
var lifetime = Trail.time;
while (Time.time - startTime < lifetime)
diff --git a/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs b/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs
index 56cfdcf80..216756cf9 100644
--- a/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs
+++ b/Assets/Scripts/Gameplay/Weapons/ProjectileManager.cs
@@ -1,32 +1,17 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using Random = UnityEngine.Random;
+using UnityEngine;
public class ProjectileManager : InstantWeaponEffectManager
{
public Prototype ProjectilePrototype;
- public bool InheritVelocity;
+ // The round is drawn by DrawAhead from what the simulation publishes, so there is nothing to aim, jitter
+ // or inherit here: spread is priced by FireControl, and the sim's round inherits nothing from its shooter.
public override void Fire(InstantWeapon weapon, EquippedItem item, EntityInstance source, EntityInstance target, int shotId)
{
+ var zone = source.Entity.Zone;
+ if (!zone.TryGetShot(shotId, out var shot)) return;
var p = ProjectilePrototype.Instantiate();
- var hp = item.Hardpoint;
- var barrel = source.GetBarrel(hp);
- var angle = weapon.Spread / 2;
- p.ShotId = shotId;
- p.SourceEntity = source.Entity;
- p.Velocity = Quaternion.Euler(
- Random.Range(-angle, angle),
- Random.Range(-angle, angle),
- Random.Range(-angle, angle)) *
- barrel.forward *
- weapon.Velocity;
- p.StartPosition = p.transform.position = barrel.position + p.Velocity * (Random.value * Time.deltaTime);
- if(InheritVelocity)
- p.Velocity += new Vector3(source.Entity.Velocity.x, 0, source.Entity.Velocity.y);
- p.Range = weapon.Range;
- p.Zone = source.Entity.Zone;
+ p.Launch(zone, shot, source.GetBarrel(item.Hardpoint).position);
p.Trail.Clear();
}
}
diff --git a/Assets/Scripts/ServerShared/AetheriaStores.cs b/Assets/Scripts/ServerShared/AetheriaStores.cs
index f265151c9..4697fe272 100644
--- a/Assets/Scripts/ServerShared/AetheriaStores.cs
+++ b/Assets/Scripts/ServerShared/AetheriaStores.cs
@@ -1,4 +1,5 @@
using System;
+using System.IO;
using System.Linq;
using GameCult.Caching;
using GameCult.Caching.MessagePack;
@@ -6,16 +7,22 @@ using GameCult.Caching.MessagePack;
// Aetheria's stores: one home store per type, composed here and nowhere else.
public static class AetheriaStores
{
- public static readonly Type[] CatalogTypes = { typeof(ItemData), typeof(ShipAuthoring), typeof(Faction), typeof(FactionProductData), typeof(PersonalityAttribute), typeof(NameFile), typeof(InputLayout), typeof(Loadout), typeof(FieldKindData) };
+ public static readonly Type[] CatalogTypes = { typeof(ItemData), typeof(ShipAuthoring), typeof(Faction), typeof(FactionProductData), typeof(PersonalityAttribute), typeof(NameFile), typeof(InputLayout), typeof(Loadout), typeof(FieldKindData), typeof(VerseGrammar), typeof(VerseVerb) };
public static readonly Type[] RunTypes = { typeof(OrbitData), typeof(BodyData), typeof(SavedZone), typeof(SavedGame), typeof(ProvenanceLedger) };
public static readonly Type[] PlayerTypes = { typeof(PlayerSettings) };
// Attaches (hydrates) the catalog read-only unless catalogWritable, then the run and player stores when given.
// Throws when a [CultGlobal] type routed to the catalog has no record. The one exemption is a writable catalog with
// no records at all, a seed store being authored from nothing; a populated catalog is held to it however it opens.
- public static CultCache Open(string catalogPath, string runPath = null, string playerPath = null, bool catalogWritable = false)
+ // The registry is the process-wide one unless the caller scopes it (the test host does, so its own document types never
+ // become catalog globals); the global check above is judged against whichever registry opened the cache.
+ public static CultCache Open(string catalogPath, string runPath = null, string playerPath = null, bool catalogWritable = false,
+ CultDocumentRegistry registry = null)
{
- var cache = new CultCache();
+ // A read-only open of an absent catalog would hydrate an empty game; a shipped player missing its catalog stops here.
+ if (!catalogWritable && !File.Exists(catalogPath))
+ throw new FileNotFoundException($"Catalog {catalogPath} does not exist; a read-only open never invents one.", catalogPath);
+ var cache = new CultCache(registry);
try
{
cache.AddBackingStore(new SingleFileMessagePackBackingStore(catalogPath, !catalogWritable), CatalogTypes);
@@ -33,6 +40,7 @@ public static class AetheriaStores
// cut.md), stat modifiers, role usage (Cut 7). Fails loudly, naming the item.
foreach (var data in cache.GetAll()) CultRecordRefs.Validate(data);
foreach (var data in cache.GetAll()) CultRecordRefs.Validate(data);
+ VerseGrammarValidation.ValidateAll(cache.GetAll());
return cache;
}
catch
@@ -72,11 +80,15 @@ public static class CultRecordRefs
{
StatValidation.ValidateHeatResponse(data);
StatValidation.ValidateStatModifiers(data.Name, data.Behaviors);
+ StatValidation.ValidateMunitionParts(data.Name, data.Behaviors);
+ StatValidation.ValidateMineLayerFlat(data.Name, data.Behaviors);
StatValidation.ValidateRoleUsage(data.Name, data.Roles, data.Behaviors);
}
if (document is ConsumableItemData consumable)
{
StatValidation.ValidateStatModifiers(consumable.Name, consumable.Behaviors);
+ StatValidation.ValidateMunitionParts(consumable.Name, consumable.Behaviors);
+ StatValidation.ValidateMineLayerFlat(consumable.Name, consumable.Behaviors);
StatValidation.ValidateRoleUsage(consumable.Name, consumable.Roles, consumable.Behaviors);
}
}
diff --git a/Assets/Scripts/ServerShared/Agents/States/Combat.cs b/Assets/Scripts/ServerShared/Agents/States/Combat.cs
index b64cd7d06..52a235637 100644
--- a/Assets/Scripts/ServerShared/Agents/States/Combat.cs
+++ b/Assets/Scripts/ServerShared/Agents/States/Combat.cs
@@ -33,22 +33,24 @@ public class CombatState : BaseState
_availableLockingWeapons.Clear();
var toTarget = target.Position - _agent.Ship.Position;
- var targetDistance = length(toTarget);
+ var targetDistance = length(toTarget.xz);
// Cut 2 (docs/fire-control-cut.md): aim at whichever revealed weapon on the target hits hardest at
// this range, or clear the aim point when nothing qualifies -- the same predicate
- // (FireControl.IsRevealed) and the same writer (TrySelectTargetItem) the player path uses.
+ // (FireControl.IsRevealed) and the same writer (TrySelectTargetItem) the player path uses. Which weapons it
+ // believes the target has, and how hard each hits, come from its book's claims, not the target's live gear
+ // (aetheria-ew, classify-from-belief; ew-claim-weapon-measure-ruled: the claimed design's rated figures); the
+ // reveal's Item is the aim and stays the truth.
EquippedItem bestTargetItem = null;
var bestTargetDps = float.MinValue;
- foreach (var targetItem in target.Equipment)
+ foreach (var reveal in _agent.Ship.RevealedWeapons(target))
{
- if (!(targetItem.Behaviors.FirstOrDefault(b => b is Weapon) is Weapon targetWeapon)) continue;
- if (!FireControl.IsRevealed(_agent.Ship, targetItem)) continue;
- var dps = targetWeapon.RangeDamagePerSecond(targetDistance);
+ if (!FireControl.IsRevealed(_agent.Ship, reveal.Item)) continue;
+ var dps = reveal.Claimed.Behaviors.OfType().First().RatedRangeDamagePerSecond(targetDistance);
if (dps > bestTargetDps)
{
bestTargetDps = dps;
- bestTargetItem = targetItem;
+ bestTargetItem = reveal.Item;
}
}
_agent.Ship.TrySelectTargetItem(bestTargetItem);
@@ -108,9 +110,8 @@ public class CombatState : BaseState
// Cut 3 (docs/fire-control-cut.md): the one prediction function, shared with FireControl.Fire's
// own snapshot and the roll's deviation measurement -- two separate predictions here and in the
// roll would let an AI aim at one point and get judged for missing a different one.
- var targetHullData = _agent.ItemManager.GetData(target.Hull) as HullData;
var predictedPosition = FireControl.PredictedIntercept(testWeapon, _agent.Ship, target);
- predictedPosition.y = _agent.Ship.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset;
+ predictedPosition.y = target.RideHeight(predictedPosition.xz);
toTarget = normalize(predictedPosition - _agent.Ship.Position);
}
@@ -138,8 +139,8 @@ public class CombatState : BaseState
var maxRange = Single.MinValue;
foreach (var weapon in _agent.Ship.Weapons)
{
- if (weapon.Range < minRange)
- minRange = weapon.Range;
+ if (weapon.MinRange < minRange)
+ minRange = weapon.MinRange;
if (weapon.Range > maxRange)
maxRange = weapon.Range;
}
@@ -152,7 +153,7 @@ public class CombatState : BaseState
float dps = 0;
foreach (var weapon in _agent.Ship.Weapons)
{
- if (weapon.Item.Online.Value && weapon.MinRange < range && range < weapon.Range)
+ if (weapon.Item.Online.Value)
dps += weapon.RangeDamagePerSecond(range);
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs
deleted file mode 100644
index e8498ca7f..000000000
--- a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs
+++ /dev/null
@@ -1,185 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-using GameCult.Caching;
-using MessagePack;
-using Newtonsoft.Json;
-using CultMath;
-using static CultMath.math;
-
-[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), EntityTypeRestriction(HullType.Ship), RuntimeInspectable]
-public class AetherDriveData : BehaviorData
-{
- [Inspectable, JsonProperty("diameters"), Key(1)]
- public float3 RotorDiameter;
-
- [Inspectable, JsonProperty("masses"), Key(2)]
- public float3 RotorMass;
-
- [Inspectable, JsonProperty("rpm"), Key(3), RuntimeInspectable]
- public PerformanceStat MaximumRpm;
-
- [Inspectable, JsonProperty("couplingLambdas"), Key(4)]
- public float3 CouplingLambda;
-
- [Inspectable, JsonProperty("lambdaMultiplier"), Key(5)]
- public PerformanceStat LambdaMultiplier;
-
- [Inspectable, JsonProperty("couplingEfficiency"), Key(6), RuntimeInspectable]
- public PerformanceStat CouplingEfficiency;
-
- [Inspectable, JsonProperty("torque"), Key(7), RuntimeInspectable]
- public PerformanceStat Torque;
-
- [Inspectable, JsonProperty("torqueProfile"), Key(8), RuntimeInspectable]
- public BezierCurve TorqueProfile;
-
- [Inspectable, JsonProperty("draw"), Key(9), RuntimeInspectable]
- public PerformanceStat EnergyDraw;
-
- [Inspectable, JsonProperty("passiveCoupling"), Key(10), RuntimeInspectable]
- public PerformanceStat PassiveCoupling;
-
- [Inspectable, JsonProperty("rpmAudio"), Key(11), RuntimeInspectable]
- public uint RpmAudioParameter;
-
- [Inspectable, JsonProperty("torqueAudio"), Key(12), RuntimeInspectable]
- public uint TorqueRatioAudioParameter;
-
- [Inspectable, CultInspectorAssetGuid, JsonProperty("particles"), Key(13)]
- public string Particles;
-
- public override Behavior CreateInstance(EquippedItem item)
- {
- return new AetherDrive(this, item);
- }
-
- public override Behavior CreateInstance(ConsumableItemEffect item)
- {
- return new AetherDrive(this, item);
- }
-}
-
-public class AetherDrive : Behavior, IPowerConsumer
-{
- private AetherDriveData _data;
- private float3 _axis;
-
- public float3 Thrust { get; private set; }
- public float3 Rpm { get; private set; }
- public float MaximumRpm { get; private set; }
- public float2 ThrustDirection { get; private set; }
-
- public AetherDriveData DriveData => _data;
-
- // Cut 8 (operator ask 2026-09-19): the equivalent quantity to Thruster.Condition -- Torque is the stat that
- // actually governs this behaviour's rotor spin-up (PowerRequest/Execute above both read it), so it is what
- // "broken" means for a drive. 1f for the item-less ConsumableItemEffect case, same reasoning as Thruster.
- public float Condition => Item?.ConditionRatio(_data.Torque) ?? 1f;
-
- public float3 Axis
- {
- get => _axis;
- set => _axis = clamp(value, -1, 1);
- }
-
- public AetherDrive(AetherDriveData data, EquippedItem item) : base(data, item)
- {
- _data = data;
- }
-
- public AetherDrive(AetherDriveData data, ConsumableItemEffect item) : base(data, item)
- {
- _data = data;
- }
-
- // Cut 3 (docs/stats-and-power-cut.md): the request PowerBus needs before Execute runs. Only the rotor
- // spin-up (torque accelerating Rpm toward MaximumRpm) costs power -- spending existing spin into thrust
- // (Execute's decay-to-thrust arithmetic below) is free, same as before. Pure and side-effect-free: it reads
- // Rpm but does not write it, so Execute's own identical arithmetic a few lines later -- which does perform
- // the real decay -- produces the same numbers Rpm actually moves by. Accepts the recompute (Q3's ruling).
- //
- // Nominal-request ruling (docs/stats-and-power-cut.md, operator ruling 2026-09-19): Torque, LambdaMultiplier,
- // MaximumRpm, PassiveCoupling and EnergyDraw are all registered request fields (StatValidation.
- // PowerRequestFields) -- read nominally (what full power would produce) so Torque carrying its own
- // PowerSupply term (Cut 7's brownout curve) no longer makes this tick's request depend on this tick's own
- // grant. Execute below is unchanged: it calls the real, curved Evaluate, so the actual spin-up still
- // degrades with whatever the bus actually grants.
- public float PowerRequest(float dt)
- {
- var couplingLambda = _data.CouplingLambda * Item.EvaluateNominalPower(_data.LambdaMultiplier) * max(abs(_axis), EvaluateNominalPower(_data.PassiveCoupling));
- var rpmAfterDecay = decay(Rpm, couplingLambda, dt);
- var maximumRpm = EvaluateNominalPower(_data.MaximumRpm);
- var torqueProfile = float3(
- _data.TorqueProfile.Evaluate(rpmAfterDecay.x / maximumRpm),
- _data.TorqueProfile.Evaluate(rpmAfterDecay.y / maximumRpm),
- _data.TorqueProfile.Evaluate(rpmAfterDecay.z / maximumRpm));
- var potentialTorque = EvaluateNominalPower(_data.Torque) * torqueProfile;
- var potentialRpmDelta = potentialTorque / length(_data.RotorMass) * dt;
- var actualRpmDelta = min(maximumRpm - rpmAfterDecay, potentialRpmDelta);
- var torqueRatio = actualRpmDelta / potentialRpmDelta;
- var draw = torqueRatio * EvaluateNominalPower(_data.EnergyDraw) / 3;
- return (draw.x + draw.y + draw.z) * dt;
- }
-
- // Cut 5 (docs/stats-and-power-cut.md §1.3, PowerTiers.cs): Medium -- mobility, same as Thruster.
- public int DefaultPowerTier => PowerTiers.Medium;
-
- public override bool Execute(float dt)
- {
- var rotorSpeed = Rpm * _data.RotorDiameter / 100;
-
- var forward = normalize(Entity.Direction);
- var right = forward.Rotate(ItemRotation.Clockwise);
-
- var speed = float2(dot(Entity.Velocity, forward), dot(Entity.Velocity, right));
- var couplingEfficiency = Evaluate(_data.CouplingEfficiency);
- var efficiency = float3(saturate(1 - speed / max(rotorSpeed.xy, 1) * sign(_axis.xy)) * couplingEfficiency, 1);
-
- Thrust = (Rpm - decay(Rpm, _data.CouplingLambda, dt)) * _data.RotorMass * efficiency;
-
- var couplingLambda = _data.CouplingLambda * Item.Evaluate(_data.LambdaMultiplier) * max(abs(_axis), Evaluate(_data.PassiveCoupling));
- var previousRpm = Rpm;
- Rpm = decay(Rpm, couplingLambda, dt);
- var rpmLoss = previousRpm - Rpm;
- var force = rpmLoss * _data.RotorMass * efficiency;
-
- var heat = rpmLoss * _data.RotorMass * (1 - couplingEfficiency);
- AddHeat((heat.x + heat.y + heat.z)*ItemManager.GameplaySettings.AetherHeatMultiplier);
-
- ThrustDirection = forward * (_axis.x * force.x / Entity.Mass) + right * (_axis.y * force.y / Entity.Mass);
- Entity.Velocity += ThrustDirection;
-
- Entity.Direction = mul(Entity.Direction,
- CultMath.float2x2.Rotate(force.z * _axis.z * ItemManager.GameplaySettings.AetherTorqueMultiplier / Entity.Mass));
-
- if(float.IsNaN(Entity.Velocity.x))
- ItemManager.Log("FUCK FUCK FUCK FUCK");
-
- MaximumRpm = Evaluate(_data.MaximumRpm);
- var torqueProfile = float3(
- _data.TorqueProfile.Evaluate(Rpm.x / MaximumRpm),
- _data.TorqueProfile.Evaluate(Rpm.y / MaximumRpm),
- _data.TorqueProfile.Evaluate(Rpm.z / MaximumRpm));
- var potentialTorque = Evaluate(_data.Torque) * torqueProfile;
- var potentialRpmDelta = potentialTorque / length(_data.RotorMass) * dt;
- var actualRpmDelta = min(MaximumRpm - Rpm, potentialRpmDelta);
- var torqueRatio = actualRpmDelta / potentialRpmDelta;
-
- Item.SetAudioParameter(SpecialAudioParameter.Intensity, max(max(abs(_axis.x), abs(_axis.y)), abs(_axis.z)));
- Item.SetAudioParameter(_data.RpmAudioParameter, (Rpm.x + Rpm.y + Rpm.z) / 3 / MaximumRpm);
- Item.SetAudioParameter(_data.TorqueRatioAudioParameter, max(max(torqueRatio.x, torqueRatio.y), torqueRatio.z));
-
- // Cut 7 (docs/stats-and-power-target.md): actualRpmDelta already derives from Evaluate(_data.Torque)
- // above, so a Torque stat carrying a PowerSupply term already shrinks the rotor's spin-up under a
- // partial grant -- this no longer demands a full one, only that supply has not been cut to true zero.
- if (Item.PowerSupply > 1e-4f)
- {
- Rpm += actualRpmDelta;
- return true;
- }
-
- return false;
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta b/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta
deleted file mode 100644
index 96fd33b04..000000000
--- a/Assets/Scripts/ServerShared/Behaviors/AetherDrive.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 2022c838bbc64a0d86cfbd477e6a379c
-timeCreated: 1618332827
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs
index 4bc5731a7..0cbe11186 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs
@@ -93,11 +93,6 @@ public interface IActivatedBehavior
void Deactivate();
}
-public interface IAnalogBehavior
-{
- float Axis { get; set; }
-}
-
public interface IEventBehavior
{
void ResetEvents();
@@ -157,7 +152,7 @@ public interface IPowerConsumer
Union(9, typeof(WearData)),
Union(10, typeof(VelocityConversionData)),
Union(11, typeof(VelocityLimitData)),
- Union(12, typeof(AetherDriveData)),
+ // Union(12): retired, do not reuse -- was AetherDriveData (retire-longinusx; parked/aether-drive)
// Union(14, typeof(TowingControllerData)),
Union(15, typeof(CooldownData)),
Union(16, typeof(HeatData)),
@@ -187,6 +182,17 @@ public interface IPowerConsumer
// superseded draft quoted -- checked directly here rather than trusted from that document.
Union(39, typeof(TargetingSystemData)),
Union(40, typeof(MineLayerData)),
+ Union(41, typeof(ThrottleLockData)),
+ Union(42, typeof(VapourDumpData)),
+ Union(43, typeof(MunitionHullData)),
+ Union(44, typeof(MunitionThrusterData)),
+ Union(45, typeof(MunitionSeekerData)),
+ Union(46, typeof(MunitionControlData)),
+ Union(47, typeof(MunitionFuelData)),
+ Union(48, typeof(PickupData)),
+ Union(49, typeof(LaunchSuppressorData)),
+ Union(50, typeof(ListenerData)),
+ Union(51, typeof(ScannerData)),
JsonObject(MemberSerialization.OptIn)]
public abstract class BehaviorData
{
diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs
index bc80bc1e5..8d048083d 100644
--- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs
@@ -54,6 +54,15 @@ public class ChargedWeaponData : InstantWeaponData
{
return new ChargedWeapon(this, item);
}
+
+ // The one formula of a charged weapon's damage per second at a range (see InstantWeaponData.RangeDamagePerSecond).
+ internal static float RangeDamagePerSecond(float damage, float chargeFiringDamageMultiplier, float cooldown, float chargeTime,
+ float rangeFactor) =>
+ damage * chargeFiringDamageMultiplier * rangeFactor / (cooldown + chargeTime);
+
+ public override float RatedRangeDamagePerSecond(float range) =>
+ RangeDamagePerSecond(PerRound(Damage.Max, Count.Max), ChargeFiringDamageMultiplier, Cooldown.Max, ChargeTime.Max,
+ RatedRangeFactor(range));
}
public class ChargedWeapon : InstantWeapon
@@ -75,13 +84,14 @@ public class ChargedWeapon : InstantWeapon
// authored charge-up speed IS its sustained rate of fire, not a second, disconnected number.
protected override float RateOverride => Evaluate(_data.ChargeEnergy);
- public override float DamagePerSecond => Damage * _data.ChargeFiringDamageMultiplier / (Cooldown + ChargeTime);
+ // The charge multiplier lives in the formula alone: Damage is lerped by charge for the shot itself (UpdateStats), so the
+ // live reads take the uncharged damage, and a nominal weapon reads its design's rated figure at every charge.
+ private float _unchargedDamage;
+ public override float DamagePerSecond => _unchargedDamage * _data.ChargeFiringDamageMultiplier / (Cooldown + ChargeTime);
public override float RangeDamagePerSecond(float range)
{
- return Damage *
- _data.ChargeFiringDamageMultiplier *
- _data.DamageCurve.Evaluate(saturate(unlerp(MinRange, Range, range))) /
- (Cooldown + ChargeTime);
+ return ChargedWeaponData.RangeDamagePerSecond(_unchargedDamage, _data.ChargeFiringDamageMultiplier, Cooldown, ChargeTime,
+ RangeFactor(range));
}
public event Action OnStartCharging;
@@ -121,6 +131,7 @@ public class ChargedWeapon : InstantWeapon
ChargeTime = Evaluate(_data.ChargeTime);
ChargeEnergy = Evaluate(_data.ChargeEnergy);
ChargeHeat = Evaluate(_data.ChargeHeat);
+ _unchargedDamage = Damage;
Damage *= lerp(1, _data.ChargeFiringDamageMultiplier, saturate(_charge));
Heat *= lerp(1, _data.ChargeFiringHeatMultiplier, saturate(_charge));
Spread *= lerp(1, _data.ChargeFiringSpreadMultiplier, saturate(_charge));
@@ -134,7 +145,6 @@ public class ChargedWeapon : InstantWeapon
if (_charging)
{
_charge += dt / ChargeTime;
- Item.SetAudioParameter(SpecialAudioParameter.ChargeLevel, saturate(_charge));
if (!_charged)
{
AddHeat(ChargeHeat * (dt / ChargeTime));
@@ -151,7 +161,6 @@ public class ChargedWeapon : InstantWeapon
_coolingDown = true;
_charge = 0;
OnFailed?.Invoke();
- Item.FireAudioEvent(ChargedWeaponAudioEvent.Fail);
CauseDamage(_data.FailureDamage);
}
}
@@ -166,7 +175,6 @@ public class ChargedWeapon : InstantWeapon
if(!_charging && CanFire && !FireControl.Refuses(this, Entity))
{
OnStartCharging?.Invoke();
- Item.FireAudioEvent(ChargedWeaponAudioEvent.Start);
_charging = true;
_charged = false;
}
@@ -182,7 +190,6 @@ public class ChargedWeapon : InstantWeapon
_charge = 0;
}
OnStopCharging?.Invoke();
- Item.FireAudioEvent(ChargedWeaponAudioEvent.Stop);
_charging = false;
}
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs
index e9dab4ce6..cc0015dbe 100644
--- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs
@@ -23,6 +23,12 @@ public class ConstantWeaponData : WeaponData
{
return new ConstantWeapon(this, item);
}
+
+ // The one formula of a beam's damage per second at a range (see InstantWeaponData.RangeDamagePerSecond).
+ internal static float RangeDamagePerSecond(float damage, float rangeFactor) => damage * rangeFactor;
+
+ public override float RatedRangeDamagePerSecond(float range) =>
+ RangeDamagePerSecond(Damage.Max, RatedRangeFactor(range));
}
public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerConsumer
@@ -49,7 +55,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerC
public override float DamagePerSecond => Damage;
public override float RangeDamagePerSecond(float range)
{
- return Damage * _data.DamageCurve.Evaluate(saturate(unlerp(MinRange, Range, range)));
+ return ConstantWeaponData.RangeDamagePerSecond(Damage, RangeFactor(range));
}
public event Action OnReloadBegin;
@@ -170,7 +176,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerC
CauseWearDamage(dt);
AddHeat(Evaluate(_data.Heat) * dt);
- Entity.VisibilitySources[this] = Evaluate(_data.Visibility);
+ Entity.SetSignature(this, SignatureChannel.LaunchFlash, Evaluate(_data.Visibility), Item);
// Cut 4 (docs/fire-control-cut.md): a beam is a sequence of rolls, not a continuous truth -- one
// FireControl.Fire per BeamResolveInterval, for that interval's worth of Damage, through the same
diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs
index 2801110c9..043df920c 100644
--- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs
@@ -30,6 +30,16 @@ public class InstantWeaponData : WeaponData
{
return new InstantWeapon(this, item);
}
+
+ // The one formula of an instant weapon's damage per second at a range; the live weapon calls it with its evaluated
+ // stats, the design with its rated ones. A burst's round carries its share of the totals: PerRound, the one divisor
+ // UpdateStats and the rated read both use.
+ internal static float PerRound(float total, float burstCount) => total / (int) burstCount;
+
+ internal static float RangeDamagePerSecond(float damage, float cooldown, float rangeFactor) => damage * rangeFactor / cooldown;
+
+ public override float RatedRangeDamagePerSecond(float range) =>
+ RangeDamagePerSecond(PerRound(Damage.Max, Count.Max), Cooldown.Max, RatedRangeFactor(range));
}
public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerConsumer
@@ -61,7 +71,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerCo
public override float DamagePerSecond => Damage / Cooldown;
public override float RangeDamagePerSecond(float range)
{
- return Damage * _data.DamageCurve.Evaluate(saturate(unlerp(MinRange, Range, range))) / Cooldown;
+ return InstantWeaponData.RangeDamagePerSecond(Damage, Cooldown, RangeFactor(range));
}
public override int Ammo
@@ -129,9 +139,9 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerCo
BurstTime = Evaluate(_data.BurstTime);
Cooldown = Evaluate(_data.Cooldown);
- Damage /= (int) BurstCount;
- Heat /= (int) BurstCount;
- Energy /= (int) BurstCount;
+ Damage = InstantWeaponData.PerRound(Damage, BurstCount);
+ Heat = InstantWeaponData.PerRound(Heat, BurstCount);
+ Energy = InstantWeaponData.PerRound(Energy, BurstCount);
}
// Cut 4 (docs/stats-and-power-cut.md §7 Q4): capacity and rate, resolved fresh rather than off the cached
@@ -230,7 +240,6 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerCo
}
}
- var firedThisFrame = false;
_burstTimer += dt;
while (_burstRemaining > 0 && _burstTimer > 0)
{
@@ -270,14 +279,9 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior, IPowerCo
// Evaluate it into a local first.
var shotId = FireControl.Fire(this, Item, Entity);
OnFire?.Invoke(shotId);
- if(!firedThisFrame)
- {
- Item.FireAudioEvent(WeaponAudioEvent.Fire);
- firedThisFrame = true;
- }
CauseWearDamage(1);
AddHeat(Heat);
- Entity.VisibilitySources[this] = Visibility;
+ Entity.SetSignature(this, SignatureChannel.LaunchFlash, Visibility, Item);
}
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/LaunchSuppressor.cs b/Assets/Scripts/ServerShared/Behaviors/LaunchSuppressor.cs
new file mode 100644
index 000000000..47d79ec52
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/LaunchSuppressor.cs
@@ -0,0 +1,62 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using MessagePack;
+using Newtonsoft.Json;
+using static CultMath.math;
+
+// Electronic warfare, hide-launch (campaign aetheria-ew, invariants lie-is-own-emission and lies-cost-real-heat): a
+// gear that thins its own ship's launch flash. It never stores a factor and never writes a signature: Entity.SetSignature
+// asks each equipped suppressor at write time, so the order in which a weapon and a suppressor execute decides nothing.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+public class LaunchSuppressorData : BehaviorData
+{
+ // The multiplier on the flash, clamped to 0..1: a suppressor never brightens a launch.
+ [Inspectable, JsonProperty("factor"), Key(1), RuntimeInspectable]
+ public PerformanceStat Factor = new PerformanceStat();
+
+ // Heat paid to the suppressor's own cell per unit of strength it removed.
+ [Inspectable, JsonProperty("heatPerUnit"), Key(2)]
+ public PerformanceStat HeatPerUnit = new PerformanceStat();
+
+ // Above this item temperature the suppressor scales nothing and pays nothing.
+ [Inspectable, JsonProperty("ratedTemperature"), Key(3)]
+ public PerformanceStat RatedTemperature = new PerformanceStat();
+
+ public override Behavior CreateInstance(EquippedItem item)
+ {
+ return new LaunchSuppressor(this, item);
+ }
+ public override Behavior CreateInstance(ConsumableItemEffect item)
+ {
+ return new LaunchSuppressor(this, item);
+ }
+}
+
+public class LaunchSuppressor : Behavior
+{
+ private readonly LaunchSuppressorData _data;
+
+ public LaunchSuppressor(LaunchSuppressorData data, EquippedItem item) : base(data, item)
+ {
+ _data = data;
+ }
+ public LaunchSuppressor(LaunchSuppressorData data, ConsumableItemEffect item) : base(data, item)
+ {
+ _data = data;
+ }
+
+ // Called by Entity.SetSignature for every light signature the ship writes; the strength passes through unchanged
+ // unless this is a launch flash and the suppressor is running below its rated temperature.
+ internal float Suppress(SignatureChannel channel, float strength)
+ {
+ if (channel != SignatureChannel.LaunchFlash || Item == null || !Item.Active.Value || Temperature > Evaluate(_data.RatedTemperature))
+ return strength;
+ var scaled = strength * clamp(Evaluate(_data.Factor), 0f, 1f);
+ AddHeat((strength - scaled) * Evaluate(_data.HeatPerUnit));
+ return scaled;
+ }
+
+ public override bool Execute(float dt) => true;
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/LaunchSuppressor.cs.meta b/Assets/Scripts/ServerShared/Behaviors/LaunchSuppressor.cs.meta
new file mode 100644
index 000000000..f25a2a088
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/LaunchSuppressor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: be58ee6eb8c74ea89518ee8200add0ba
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs
index e443bdf1d..439394df0 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs
@@ -18,14 +18,7 @@ public class LauncherData : LockWeaponData
[InspectableAnimationCurve, JsonProperty("liftCurve"), Key(28)]
public float4[] LiftCurve;
- [Inspectable, JsonProperty("thrust"), Key(29)]
- public PerformanceStat Thrust = new PerformanceStat();
-
- [Inspectable, JsonProperty("frequency"), Key(30)]
- public float DodgeFrequency;
-
- [Inspectable, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable]
- public PerformanceStat MissileVelocity = new PerformanceStat();
+ // Keys 29-31 were Thrust, DodgeFrequency and MissileVelocity, retired for the munition parts (MunitionParts.cs); do not reuse.
public override Behavior CreateInstance(EquippedItem item)
{
@@ -45,14 +38,7 @@ public class GuidedWeaponData : InstantWeaponData
[InspectableAnimationCurve, JsonProperty("liftCurve"), Key(23)]
public float4[] LiftCurve;
- [Inspectable, JsonProperty("thrust"), Key(24)]
- public PerformanceStat Thrust = new PerformanceStat();
-
- [Inspectable, JsonProperty("frequency"), Key(25)]
- public float DodgeFrequency;
-
- [Inspectable, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable]
- public PerformanceStat MissileVelocity = new PerformanceStat();
+ // Keys 24-26 were Thrust, DodgeFrequency and MissileVelocity, retired for the munition parts (MunitionParts.cs); do not reuse.
public override Behavior CreateInstance(EquippedItem item)
{
diff --git a/Assets/Scripts/ServerShared/Behaviors/Listener.cs b/Assets/Scripts/ServerShared/Behaviors/Listener.cs
new file mode 100644
index 000000000..beb622741
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/Listener.cs
@@ -0,0 +1,44 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using MessagePack;
+using Newtonsoft.Json;
+
+// Passive listening gear (ruling sensor-stat-set): hears other ships' emissions at a multiple of their own range,
+// bearing only. It emits nothing; Entity.HearingMultiple asks each active listener at hearing time. Its power is the
+// design's EnergyDraw and its activity is the item's Active, as for sensors.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+public class ListenerData : BehaviorData
+{
+ // How many times an emitter's own reach this listener hears it at.
+ [Inspectable, JsonProperty("multiple"), Key(1), RuntimeInspectable]
+ public PerformanceStat Multiple = new PerformanceStat();
+
+ public override Behavior CreateInstance(EquippedItem item)
+ {
+ return new Listener(this, item);
+ }
+ public override Behavior CreateInstance(ConsumableItemEffect item)
+ {
+ return new Listener(this, item);
+ }
+}
+
+public class Listener : Behavior
+{
+ private readonly ListenerData _data;
+
+ public Listener(ListenerData data, EquippedItem item) : base(data, item)
+ {
+ _data = data;
+ }
+ public Listener(ListenerData data, ConsumableItemEffect item) : base(data, item)
+ {
+ _data = data;
+ }
+
+ public float Multiple => Evaluate(_data.Multiple);
+
+ public override bool Execute(float dt) => true;
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Listener.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Listener.cs.meta
new file mode 100644
index 000000000..be694c775
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/Listener.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5b0e1f6c2d7a4e39a8c4d1f27e6b3a90
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs
index 16f56b72d..271aa64c3 100644
--- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs
@@ -23,6 +23,11 @@ public class LockWeaponData : InstantWeaponData
[Inspectable, JsonProperty("decay"), Key(25)]
public PerformanceStat Decay = new PerformanceStat();
+
+ // The ratio of how far this lock sees to how far others hear it (ruling sensor-stat-set); a design without it
+ // reads as 1.
+ [Inspectable, JsonProperty("interceptFactor"), Key(34)]
+ public PerformanceStat InterceptFactor;
public override Behavior CreateInstance(EquippedItem item)
{
@@ -50,6 +55,7 @@ public class LockWeapon : InstantWeapon
public float LockAngle { get; private set; }
public float DirectionImpact { get; private set; }
public float Decay { get; private set; }
+ public float InterceptFactor => _data.InterceptFactor == null ? 1f : Evaluate(_data.InterceptFactor);
public override float Progress => saturate(_cooldown > 0 ? _cooldown : _lock);
@@ -102,6 +108,8 @@ public class LockWeapon : InstantWeapon
{
var lerp = 1 - unlerp(0, 90, degrees);
_lock = saturate(_lock + pow(lerp, DirectionImpact) * dt * LockSpeed * pow(Entity.EntityInfoGathered[target], SensorImpact));
+ target.ReceivePaint(Entity, Item, PaintMode.Track, Lock);
+ Entity.Emit(Item, Range / InterceptFactor);
}
else _lock = saturate(_lock - dt * Decay);
}
@@ -109,4 +117,3 @@ public class LockWeapon : InstantWeapon
return base.Execute(dt);
}
}
-
diff --git a/Assets/Scripts/ServerShared/Behaviors/MunitionParts.cs b/Assets/Scripts/ServerShared/Behaviors/MunitionParts.cs
new file mode 100644
index 000000000..d25cd4f41
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/MunitionParts.cs
@@ -0,0 +1,125 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using System;
+using System.Linq;
+using MessagePack;
+using Newtonsoft.Json;
+
+// A missile type's stats, as five dedicated gear-part behaviours on the launcher's own design, one per gear
+// category the entity cut will derive them from (ruling drones-and-munitions-are-entities: "dedicated gear so a
+// missile thruster is not the same as a ship thruster"). Ruling missile-stats-now-gear-later, in the operator's
+// words: "For now these stats will belong to the missile, later they will be derived from gear." Each part becomes
+// a derivation from (or moves onto) that munition gear when munitions are entities.
+//
+// Each part is its own BehaviorData because every stat walker (role validation, StatModifier targeting, AetherDb
+// roles, the trade panel) reads PerformanceStat fields one level deep. The parts are inert: nothing here executes,
+// and no ship-wide reader (thrust allocator, sensing, signatures) reads them, because a missile thruster is not a
+// ship thruster and a seeker is not a ship sensor. MunitionParts.Of is the one read path.
+public abstract class MunitionPartData : BehaviorData
+{
+ public override Behavior CreateInstance(EquippedItem item) => new MunitionPart(this, item);
+ public override Behavior CreateInstance(ConsumableItemEffect consumable) => new MunitionPart(this, consumable);
+}
+
+// What a part instantiates to: no state and no override, so Execute stays the default true.
+public sealed class MunitionPart : Behavior
+{
+ public MunitionPart(MunitionPartData data, EquippedItem item) : base(data, item) { }
+ public MunitionPart(MunitionPartData data, ConsumableItemEffect consumable) : base(data, consumable) { }
+}
+
+public static class MunitionParts
+{
+ // The design's one part of that type. Catalog load and Upsert refuse a munition without exactly one of each.
+ public static T Of(EquippedItem item) where T : MunitionPartData =>
+ item.Behaviors.Select(b => b.Data).OfType().Single();
+}
+
+// The missile hull.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)]
+public sealed class MunitionHullData : MunitionPartData
+{
+ [Inspectable, JsonProperty("durability"), Key(1), RuntimeInspectable]
+ public PerformanceStat Durability = new PerformanceStat();
+
+ // Metres.
+ [Inspectable, JsonProperty("radius"), Key(2)]
+ public PerformanceStat Radius = new PerformanceStat();
+}
+
+// The missile thruster.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)]
+public sealed class MunitionThrusterData : MunitionPartData
+{
+ // The main motor, m/s^2.
+ [Inspectable, JsonProperty("acceleration"), Key(1), RuntimeInspectable]
+ public PerformanceStat Acceleration = new PerformanceStat();
+
+ // The sideways acceleration cap, m/s^2.
+ [Inspectable, JsonProperty("lateral"), Key(2)]
+ public PerformanceStat Lateral = new PerformanceStat();
+
+ // m/s.
+ [Inspectable, JsonProperty("maxSpeed"), Key(3), RuntimeInspectable]
+ public PerformanceStat MaxSpeed = new PerformanceStat();
+
+ // The strength of this motor's DrivePlume at full throttle, as ThrusterData.Visibility. A datum only: it is
+ // never registered as the launching ship's signature.
+ [Inspectable, JsonProperty("visibility"), Key(4)]
+ public PerformanceStat Visibility = new PerformanceStat();
+}
+
+// The seeker. Passive here: it reads a target and emits nothing.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)]
+public sealed class MunitionSeekerData : MunitionPartData
+{
+ // Detection power, as SensorData.Sensitivity.
+ [Inspectable, JsonProperty("sensitivity"), Key(1)]
+ public PerformanceStat Sensitivity = new PerformanceStat();
+
+ // The full cone, in degrees (ruling sensor-stat-set's name and unit).
+ [Inspectable, JsonProperty("beamWidth"), Key(2)]
+ public PerformanceStat BeamWidth = new PerformanceStat();
+
+ // Metres.
+ [Inspectable, JsonProperty("range"), Key(3)]
+ public PerformanceStat Range = new PerformanceStat();
+}
+
+// Guidance and its cognition.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)]
+public sealed class MunitionControlData : MunitionPartData
+{
+ // The proportional-navigation constant.
+ [Inspectable, JsonProperty("navigation"), Key(1)]
+ public PerformanceStat Navigation = new PerformanceStat();
+
+ // The share of Lateral spent jinking.
+ [Inspectable, JsonProperty("evasion"), Key(2)]
+ public PerformanceStat Evasion = new PerformanceStat();
+
+ // Hz.
+ [Inspectable, JsonProperty("evasionFrequency"), Key(3), RuntimeInspectable]
+ public PerformanceStat EvasionFrequency = new PerformanceStat();
+
+ // Seconds.
+ [Inspectable, JsonProperty("lifetime"), Key(4)]
+ public PerformanceStat Lifetime = new PerformanceStat();
+
+ // The missile's own skill, 0 to 1 (ruling missile-cognition: "a smarter missile can better spend its delta v").
+ // Four uses: guidance efficiency, when to jink against point defense, how much fuel it keeps for the terminal,
+ // and the price of the hit.
+ [Inspectable, JsonProperty("cognition"), Key(5)]
+ public PerformanceStat Cognition = new PerformanceStat();
+}
+
+// The tank.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn)]
+public sealed class MunitionFuelData : MunitionPartData
+{
+ // Total manoeuvre budget, m/s.
+ [Inspectable, JsonProperty("deltaV"), Key(1)]
+ public PerformanceStat DeltaV = new PerformanceStat();
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/MunitionParts.cs.meta b/Assets/Scripts/ServerShared/Behaviors/MunitionParts.cs.meta
new file mode 100644
index 000000000..cf0a1097e
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/MunitionParts.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6d4eac117ca042aaba71d1f6491b4617
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/Pickup.cs b/Assets/Scripts/ServerShared/Behaviors/Pickup.cs
new file mode 100644
index 000000000..29cd9c383
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/Pickup.cs
@@ -0,0 +1,171 @@
+using System;
+using System.Linq;
+using CultMath;
+using MessagePack;
+using Newtonsoft.Json;
+using static CultMath.math;
+using float2 = CultMath.float2;
+
+// The tractor beam: the capability that lets a ship collect floating items. It spins its beam up in sim time toward
+// the pilot's command, and once the beam is up claims the free item nearest its axis and runs one timed grab
+// (extend, envelop, pull) that ends in Zone.TryPickUp, the one commit of a pickup. Its stats are flat
+// (Min == Max), as the other behaviours that carry their own timings.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+public class PickupData : BehaviorData
+{
+ // How far along the beam's axis an item can be claimed, and how far off the axis.
+ [Inspectable, JsonProperty("range"), Key(1), RuntimeInspectable]
+ public PerformanceStat Range = new PerformanceStat();
+
+ [Inspectable, JsonProperty("beamRadius"), Key(2), RuntimeInspectable]
+ public PerformanceStat BeamRadius = new PerformanceStat();
+
+ // The spin-up (0..1) needed to claim an item, and to keep a grab going.
+ [Inspectable, JsonProperty("grabPower"), Key(3), RuntimeInspectable]
+ public PerformanceStat GrabPower = new PerformanceStat();
+
+ // Seconds of each phase of a grab.
+ [Inspectable, JsonProperty("extendTime"), Key(4), RuntimeInspectable]
+ public PerformanceStat ExtendTime = new PerformanceStat();
+
+ [Inspectable, JsonProperty("envelopTime"), Key(5), RuntimeInspectable]
+ public PerformanceStat EnvelopTime = new PerformanceStat();
+
+ [Inspectable, JsonProperty("pullTime"), Key(6), RuntimeInspectable]
+ public PerformanceStat PullTime = new PerformanceStat();
+
+ // Spin-up and spin-down, in power per sim second.
+ [Inspectable, JsonProperty("spinRate"), Key(7), RuntimeInspectable]
+ public PerformanceStat SpinRate = new PerformanceStat();
+
+ public override Behavior CreateInstance(EquippedItem item)
+ {
+ return new Pickup(this, item);
+ }
+
+ // A beam is a piece of gear the pilot holds on; no consumable carries one.
+ public override Behavior CreateInstance(ConsumableItemEffect item) =>
+ throw new NotSupportedException("pickup: gear only");
+}
+
+// Owns this ship's beam power and its one grab. Power is written only here; Zone owns the held item's pose.
+public class Pickup : Behavior, IAlwaysUpdatedBehavior
+{
+ private readonly PickupData _data;
+ // Power and the grab clock are kept in double so a fixed tick count lands on the same side of a boundary
+ // whatever dt the zone steps by.
+ private double _power;
+ private bool _grabbing;
+ private FloatingBodyId _target;
+ private double _elapsed;
+ // How many of Envelop and Pull have been published so far (0, 1 or 2).
+ private int _published;
+
+ public Pickup(PickupData data, EquippedItem item) : base(data, item)
+ {
+ _data = data;
+ }
+
+ // The beam's spun-up state in [0, 1]: what the pilot's command has driven it to.
+ public float Power => (float) _power;
+
+ public void Update(float dt)
+ {
+ var active = Item.Active.Value;
+ var command = active ? Math.Clamp(Entity.TractorCommand, 0f, 1f) : 0f;
+ var step = (double) Evaluate(_data.SpinRate) * dt;
+ _power = Math.Clamp(_power + Math.Clamp(command - _power, -step, step), 0.0, 1.0);
+
+ var zone = Entity.Zone;
+ var grabPower = Evaluate(_data.GrabPower);
+ var extend = (double) Evaluate(_data.ExtendTime);
+ var envelop = (double) Evaluate(_data.EnvelopTime);
+ var pull = (double) Evaluate(_data.PullTime);
+ var range = Evaluate(_data.Range);
+ var radius = Evaluate(_data.BeamRadius);
+ var origin = Entity.Position.xz;
+
+ if (!_grabbing)
+ {
+ if (!active || _power < grabPower) return;
+ var item = Select(zone, origin, range, radius);
+ if (item == null || !zone.TryHold(Entity, item.Id)) return;
+ _grabbing = true;
+ _target = item.Id;
+ _elapsed = 0;
+ _published = 0;
+ Publish(GrabPhase.Started, item, 0);
+ Publish(GrabPhase.Extend, item, (float) extend);
+ return;
+ }
+
+ var held = zone.FloatingItems.FirstOrDefault(f => f.Id.Equals(_target));
+ if (held == null || !ReferenceEquals(held.Holder, Entity))
+ {
+ _grabbing = false;
+ Entity.Capabilities.PublishGrab(new GrabEvent(_target, GrabPhase.Cancelled, float3(0), 0));
+ return;
+ }
+
+ var pulling = _elapsed >= extend + envelop;
+ if (!active || _power < grabPower || (!pulling && !InBeam(held.Body.Position, origin, range, radius, out _)))
+ {
+ _grabbing = false;
+ zone.Free(_target);
+ Publish(GrabPhase.Cancelled, held, 0);
+ return;
+ }
+
+ _elapsed += dt;
+ if (_published < 1 && _elapsed >= extend) { _published = 1; Publish(GrabPhase.Envelop, held, (float) envelop); }
+ if (_published < 2 && _elapsed >= extend + envelop) { _published = 2; Publish(GrabPhase.Pull, held, (float) pull); }
+ if (_published == 2)
+ zone.SetHeldProgress(_target, pull > 0 ? (float) ((_elapsed - extend - envelop) / pull) : 1f);
+ if (_elapsed < extend + envelop + pull) return;
+
+ _grabbing = false;
+ if (zone.TryPickUp(Entity, _target)) Publish(GrabPhase.Completed, held, 0);
+ else
+ {
+ zone.Free(_target);
+ Publish(GrabPhase.Cancelled, held, 0);
+ }
+ }
+
+ // The one beam region: within Range along the aim axis (never behind) and BeamRadius off it. Selection claims
+ // from it and the grab holds on to its item only while the item stays in it. A zero aim has no region.
+ private bool InBeam(float2 position, float2 origin, float range, float radius, out float off)
+ {
+ off = 0;
+ var aim = Entity.Aim.xz;
+ if (lengthsq(aim) <= 0) return false;
+ var axis = normalize(aim);
+ var to = position - origin;
+ var along = dot(to, axis);
+ off = length(to - axis * along);
+ return along >= 0 && along <= range && off <= radius;
+ }
+
+ // The free item nearest the beam axis within the beam region that some cargo bay can store whole (the bay's own
+ // TryFindSpace, the test TryStore opens with); ties go to the lowest id. A zero aim selects nothing.
+ private FloatingItem Select(Zone zone, float2 origin, float range, float radius)
+ {
+ FloatingItem best = null;
+ var bestOff = float.MaxValue;
+ foreach (var floating in zone.FloatingItems)
+ {
+ if (floating.Holder != null) continue;
+ if (!InBeam(floating.Body.Position, origin, range, radius, out var off)) continue;
+ if (!Entity.CargoBays.Any(bay => bay.TryFindSpace(floating.Item))) continue;
+ if (off < bestOff || (off == bestOff && floating.Id.Value < best.Id.Value))
+ {
+ best = floating;
+ bestOff = off;
+ }
+ }
+ return best;
+ }
+
+ private void Publish(GrabPhase phase, FloatingItem item, float duration) =>
+ Entity.Capabilities.PublishGrab(new GrabEvent(item.Id, phase, float3(item.Body.Position.x, DrawAhead.FloaterHeight(Entity.Zone, Entity.ItemManager.GameplaySettings, item.Body.Position, 0), item.Body.Position.y), duration));
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Pickup.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Pickup.cs.meta
new file mode 100644
index 000000000..34947e359
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/Pickup.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ac7678d240564331be7486588d28c5ee
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs
index a43a1a5c7..0c9239a0a 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs
@@ -118,7 +118,7 @@ public class Radiator : Behavior, IAlwaysUpdatedBehavior, IInitializableBehavior
Emissivity = Evaluate(_data.Emissivity);
var rad = pow(RadiatorTemperature, ItemManager.GameplaySettings.HeatRadiationExponent) * ItemManager.GameplaySettings.HeatRadiationMultiplier * Emissivity;
RadiatorTemperature -= rad * delta;
- Entity.VisibilitySources[this] = rad;
+ Entity.SetSignature(this, SignatureChannel.Thermal, rad, Item);
}
public void Initialize()
diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs
index e5321ac17..14cc1424c 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs
@@ -94,8 +94,6 @@ public class Reactor : Behavior
Draw = 0;
}
- Item.SetAudioParameter(SpecialAudioParameter.Intensity, max(.25f, 1 - 1 / CurrentLoadRatio));
-
AddHeat(heat);
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs
index b5c4b4ad6..6b7f70a10 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs
@@ -43,7 +43,7 @@ public class Reflector : Behavior
public override bool Execute(float dt)
{
- Entity.VisibilitySources[this] = Evaluate(_data.CrossSection) * Entity.Zone.GetLight(Entity.Position.xz);
+ Entity.SetSignature(this, SignatureChannel.Reflection, Evaluate(_data.CrossSection) * Entity.Zone.GetLight(Entity.Position.xz), Item);
return true;
}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Scanner.cs b/Assets/Scripts/ServerShared/Behaviors/Scanner.cs
new file mode 100644
index 000000000..c1e9ede41
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/Scanner.cs
@@ -0,0 +1,100 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using MessagePack;
+using Newtonsoft.Json;
+using static CultMath.math;
+
+// Inspection (campaign aetheria-release, rulings quiet-gear-identifiable-hull-layout-known, scan-held-beam,
+// scan-is-an-act): a gear that, held on the ship's tracked target within Range for ScanTime, reveals everything fitted to
+// that target, quiet gear that never acts included. The scan is an emission like a lock: the target is painted and
+// third parties hear it at Range over the intercept factor.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+public class ScannerData : BehaviorData
+{
+ // The planar distance to the target within which a scan builds.
+ [Inspectable, JsonProperty("range"), Key(1), RuntimeInspectable]
+ public PerformanceStat Range = new PerformanceStat();
+
+ // Seconds a held scan takes to finish; a broken scan decays over the same span.
+ [Inspectable, JsonProperty("scanTime"), Key(2), RuntimeInspectable]
+ public PerformanceStat ScanTime = new PerformanceStat();
+
+ // The ratio of how far this scanner sees to how far others hear it (ruling sensor-stat-set); a design without it
+ // reads as 1.
+ [Inspectable, JsonProperty("interceptFactor"), Key(3)]
+ public PerformanceStat InterceptFactor;
+
+ public override Behavior CreateInstance(EquippedItem item)
+ {
+ return new Scanner(this, item);
+ }
+ public override Behavior CreateInstance(ConsumableItemEffect item)
+ {
+ return new Scanner(this, item);
+ }
+}
+
+public class Scanner : Behavior, IProgressBehavior
+{
+ private readonly ScannerData _data;
+ private Entity _target;
+ private float _built;
+ private double _heldAt;
+
+ // The scan's progress now: what Execute last built, less ScanTime-relative decay over the time since a tick last held
+ // it (ruling scan-held-beam: a broken scan decays over ScanTime, the item inactive or destroyed included). Derived from
+ // the zone clock, never from tick order, so a scanner decays on the tick it breaks whether its host runs Execute
+ // before the always-updated pass (EquippedItem) or after it (ConsumableItemEffect). The one decay site. It is the
+ // progress against the ship's target now: a scan built on another ship reads 0 the moment the target changes, whether
+ // or not the item is running to reset it.
+ public float Progress => _target == Entity.Target.Value.Entity ? Remaining(_heldAt) : 0f;
+
+ public Scanner(ScannerData data, EquippedItem item) : base(data, item)
+ {
+ _data = data;
+ }
+ public Scanner(ScannerData data, ConsumableItemEffect item) : base(data, item)
+ {
+ _data = data;
+ }
+
+ private float Remaining(double since)
+ {
+ if (_built <= 0f) return 0f;
+ var now = Entity.Zone?.ExactTime ?? since;
+ return saturate(_built - (float) (now - since) / Evaluate(_data.ScanTime));
+ }
+
+ // Runs only while the item is Active. The scan builds while the ship's own Target is a tracked ship within Range, and
+ // is painted and emitted on every tick it builds; at 1 the target's fitted items enter the book and the scan starts over.
+ // A tick that does not hold the scan builds nothing, and the zone clock carries its decay (Progress).
+ public override bool Execute(float dt)
+ {
+ var target = Entity.Target.Value.Entity;
+ if (_target != target)
+ {
+ _built = 0f;
+ _target = target;
+ }
+
+ var range = Evaluate(_data.Range);
+ if (target != null && Entity.VisibleEntities.Contains(target) && Entity.TargetRange <= range)
+ {
+ // Decay over the ticks since the last held one, not counting this tick, which holds.
+ var progress = saturate(Remaining(_heldAt + dt) + dt / Evaluate(_data.ScanTime));
+ _built = progress;
+ _heldAt = Entity.Zone?.ExactTime ?? _heldAt;
+ target.ReceivePaint(Entity, Item, PaintMode.Scan, progress);
+ Entity.Emit(Item, range / (_data.InterceptFactor == null ? 1f : Evaluate(_data.InterceptFactor)));
+ if (progress >= 1f)
+ {
+ Entity.RecordInspection(target);
+ _built = 0f;
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/Scanner.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Scanner.cs.meta
new file mode 100644
index 000000000..1eb6935e7
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/Scanner.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bf9e034c7a31410ea1c516f46b43825c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs
index 8eeadbb7d..cf9d161f0 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs
@@ -24,8 +24,7 @@ public class SensorData : BehaviorData
[Inspectable, JsonProperty("pingEnergy"), Key(6), RuntimeInspectable]
public PerformanceStat PingEnergy;
- [Inspectable, JsonProperty("pingVisibility"), Key(7), RuntimeInspectable]
- public PerformanceStat PingVisibility;
+ // Key 7 (pingVisibility) is retired: never reuse it.
[Inspectable, JsonProperty("pingRange"), Key(8), RuntimeInspectable]
public PerformanceStat PingRange;
@@ -38,6 +37,16 @@ public class SensorData : BehaviorData
[Inspectable, JsonProperty("pingRadiusExponent"), Key(11)]
public float PingRadiusExponent = .5f;
+
+ // The width in degrees of the cone a ping sweeps, about the sensor's facing (ruling illuminator-beamforming:
+ // how much a ping reveals is a stat). 360 or more is omnidirectional; a design without it reads as 360.
+ [Inspectable, JsonProperty("beamWidth"), Key(12)]
+ public PerformanceStat BeamWidth;
+
+ // The ratio of how far this sensor sees to how far others hear it (ruling sensor-stat-set); a design without it
+ // reads as 1.
+ [Inspectable, JsonProperty("interceptFactor"), Key(13)]
+ public PerformanceStat InterceptFactor;
public override Behavior CreateInstance(EquippedItem item)
{
@@ -61,7 +70,14 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
private float _pingLerp;
private bool _pinging;
private float _pingRadius;
- private HashSet _pingedEntities = new HashSet();
+
+ // The subjects this ping's wavefront has reached, in the beam or not; each is crossed at most once per ping.
+ // Ping() is the one reset. A sweeping tick drops every subject no longer in the zone, so a subject that
+ // leaves and comes back inside the front is reached again, as a ship arriving inside the front is.
+ private readonly HashSet _reached = new HashSet();
+
+ // The zone the ping began in: a ping belongs to it, and ends when the pinger is anywhere else.
+ private Zone _pingZone;
public float Cooldown
{
@@ -73,6 +89,19 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
get => _pingRadius;
}
+ public float BeamWidth => _data.BeamWidth == null ? 360f : Evaluate(_data.BeamWidth);
+
+ public float InterceptFactor => _data.InterceptFactor == null ? 1f : Evaluate(_data.InterceptFactor);
+
+ public float2 Facing => Direction.xz;
+
+ // Whether the offset `diff` (length `dist`) from this sensor lies inside its beam.
+ private bool InBeam(float2 diff, float dist)
+ {
+ var beam = BeamWidth;
+ return beam >= 360f || dot(Facing, diff) >= dist * cos(beam * .5f * .0174533f);
+ }
+
public float PingBrightness => pow(1 - _pingLerp, _data.PingRadiusExponent);
public event Action OnPingStart;
@@ -114,12 +143,12 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
// nothing would ever fill this capacitor; bypass it rather than starving such an instance forever.
if(_pingCooldown < 0 && (Item == null || _capacitor.TrySpend(_capacitor.Capacity)))
{
- Entity.VisibilitySources[this] = Evaluate(_data.PingVisibility);
_pinging = true;
+ _pingZone = Entity.Zone;
_pingCooldown = 1;
_pingLerp = 0;
_pingRadius = 0;
- _pingedEntities.Clear();
+ _reached.Clear();
OnPingStart?.Invoke();
}
}
@@ -140,15 +169,15 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
// instance never reaches PowerBus.Step (see Ping()) and so never accrues charge.
if (Item != null)
_capacitor.AddCharge(_capacitor.RequestedFill(dt) * Item.PowerSupply);
+ if (_pinging && Entity.Zone != _pingZone) EndPing();
+ var sweeping = _pinging;
if (_pinging)
{
_pingLerp += dt / _data.PingDuration;
_pingRadius = lerp(0, Evaluate(_data.PingRange), pow(_pingLerp, _data.PingRadiusExponent));
- if (_pingLerp > 1)
- {
- _pinging = false;
- OnPingEnd?.Invoke();
- }
+ _reached.IntersectWith(Entity.Zone.Entities);
+ Entity.Emit(Item, Evaluate(_data.PingRange) / InterceptFactor);
+ if (_pingLerp > 1) EndPing();
}
_pingCooldown -= dt / Evaluate(_data.PingCooldown);
@@ -160,17 +189,44 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
var diff = entity.Position.xz - Entity.Position.xz;
var dist = length(diff);
+ var obscuration = Entity.Zone.Obscuration(Entity.Position.xz, entity.Position.xz);
float previous, next;
Entity.EntityInfoGathered.TryGetValue(entity, out previous);
- if (!_pingedEntities.Contains(entity) && dist < _pingRadius)
+
+ var sensitivity = Evaluate(_data.Sensitivity);
+ var response = _data.PingBoost == null ? 0f : Evaluate(_data.PingBoost);
+ var credit = 0f;
+ var heard = false;
+
+ // The first sweeping tick this ping's wavefront is past the entity is its one crossing. Inside the beam
+ // it paints the subject (it learns it is swept), credits this sensor, and is returned to every ally; an
+ // ally hears it silently (ruling sensor-stat-set item 3): credit, no paint, no emission.
+ if (sweeping && dist < _pingRadius && _reached.Add(entity) && InBeam(diff, dist))
{
- _pingedEntities.Add(entity);
- next = saturate(previous + Gain(entity.Visibility, Evaluate(_data.Sensitivity), Evaluate(_data.PingBoost), dist, dt, true));
+ heard = true;
+ entity.ReceivePaint(Entity, Item, PaintMode.Search, 0);
+ credit += Gain(entity.Visibility, sensitivity, response, dist, dt, true, obscuration);
+ var pingReturn = new PingReturn(entity, dist, obscuration, Evaluate(_data.PingRange));
+ foreach (var ally in Entity.Zone.Entities)
+ if (ally != Entity && ally != entity && ally.Faction != null && ally.Faction == Entity.Faction && !ally.IsHostileTo(Entity))
+ ally.ReceiveReturn(pingReturn);
}
+
+ // An ally's ping returned off this subject (ruling ally-echo-bistatic-oval): heard while the
+ // illuminated and received ranges sit inside the oval Rt x Rr < PingRange^2, credited at their geometric mean.
+ foreach (var r in Entity.PingReturns)
+ {
+ if (r.Subject != entity || r.IlluminatedRange * dist >= r.MaxRange * r.MaxRange) continue;
+ heard = true;
+ credit += Gain(entity.Visibility, sensitivity, response, sqrt(r.IlluminatedRange * dist), dt, true, sqrt(r.IlluminatedObscuration * obscuration));
+ }
+
+ if (heard)
+ next = saturate(previous + credit);
else
{
var angle = acos(dot(forward, normalize(diff)));
- next = saturate(previous + Gain(entity.Visibility, Evaluate(_data.Sensitivity), _data.SensitivityCurve.Evaluate(angle / PI), dist, dt, false));
+ next = saturate(previous + Gain(entity.Visibility, sensitivity, _data.SensitivityCurve.Evaluate(angle / PI), dist, dt, false, obscuration));
}
next *= 1 - ItemManager.GameplaySettings.TargetInfoDecay * dt;
//Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%");
@@ -179,15 +235,23 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
return true;
}
+ private void EndPing()
+ {
+ _pinging = false;
+ OnPingEnd?.Invoke();
+ }
+
// Mining Cut 3 (docs/mining-cut-refresh.md): the one detection gain rule -- the info one observation of a
// target adds. A ping adds `visibility × sensitivity × PingBoost × distance` once; a passive tick adds
// `visibility × sensitivity × curve(angle/π) × dt / distance`. `response` is PingBoost for a ping and the
- // sensitivity curve at the bearing for a passive tick. The entity loop above and the chunk query
- // (Entity.ChunkInfo, through PassiveRate) both call this; nothing else multiplies these terms.
- public static float Gain(float visibility, float sensitivity, float response, float distance, float dt, bool ping) =>
- ping
+ // sensitivity curve at the bearing for a passive tick. `obscuration` is the fraction of the signal that
+ // survives the vapour clouds on the sight line (Zone.Obscuration, 1f with none), scaling both. The entity
+ // loop above and the chunk query (Entity.ChunkInfo, through PassiveRate) both call this; nothing else
+ // multiplies these terms.
+ public static float Gain(float visibility, float sensitivity, float response, float distance, float dt, bool ping, float obscuration) =>
+ (ping
? visibility * sensitivity * response * distance
- : visibility * sensitivity * response * dt / distance;
+ : visibility * sensitivity * response * dt / distance) * obscuration;
// The passive gain per second this sensor draws from a target of `visibility` at the planar `position`:
// Gain over one second, with the bearing measured from this sensor's own facing exactly as Execute does.
@@ -195,7 +259,8 @@ public class Sensor : Behavior, IEventBehavior, IPowerConsumer
{
var diff = position - Entity.Position.xz;
var angle = acos(dot(Direction.xz, normalize(diff)));
- return Gain(visibility, Evaluate(_data.Sensitivity), _data.SensitivityCurve.Evaluate(angle / PI), length(diff), 1f, false);
+ return Gain(visibility, Evaluate(_data.Sensitivity), _data.SensitivityCurve.Evaluate(angle / PI), length(diff), 1f, false,
+ Entity.Zone.Obscuration(Entity.Position.xz, position));
}
// An upper bound on sensitivity x response over every bearing, so PassiveRate(v, p) <= v x this / distance
diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs
index 5e56e4c42..430536591 100644
--- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs
@@ -95,13 +95,13 @@ public class StatModifier : Behavior, IInitializableBehavior, IDisposable, IAlwa
.Where(g => string.IsNullOrEmpty(data.RequireBehavior) ||
entity.ItemManager.GetData(g.EquippableItem).Behaviors.Any(b => b.GetType().Name == data.RequireBehavior));
return typeof(EquippableItemData).IsAssignableFrom(targetType)
- ? gear.Where(g => entity.ItemManager.GetData(g.EquippableItem).GetType() == targetType)
+ ? gear.Where(g => targetType.IsAssignableFrom(entity.ItemManager.GetData(g.EquippableItem).GetType()))
.Select(g => new Target(g, statField.GetValue(entity.ItemManager.GetData(g.EquippableItem)) as PerformanceStat))
.Where(t => t.Stat != null)
.ToArray()
- : gear.Where(g => entity.ItemManager.GetData(g.EquippableItem).Behaviors.Any(bd => bd.GetType() == targetType))
+ : gear.Where(g => entity.ItemManager.GetData(g.EquippableItem).Behaviors.Any(bd => targetType.IsAssignableFrom(bd.GetType())))
.SelectMany(g => entity.ItemManager.GetData(g.EquippableItem).Behaviors
- .Where(bd => bd.GetType() == targetType)
+ .Where(bd => targetType.IsAssignableFrom(bd.GetType()))
.Select(bd => new Target(g, statField.GetValue(bd) as PerformanceStat)))
.Where(t => t.Stat != null)
.ToArray();
diff --git a/Assets/Scripts/ServerShared/Behaviors/TargetingSystem.cs b/Assets/Scripts/ServerShared/Behaviors/TargetingSystem.cs
index 96d9f3703..b0b839258 100644
--- a/Assets/Scripts/ServerShared/Behaviors/TargetingSystem.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/TargetingSystem.cs
@@ -31,7 +31,7 @@ public class TargetingSystemData : BehaviorData
// Cut 6d (docs/fire-control-cut.md): grouping tightness, not a probability. FireControl.Sigma derives a
// Gaussian kernel's sigma as 1/Precision, in hull-schematic cell units -- a higher number groups tighter
- // around whatever is aimed at (Entity.TargetItem's cells, or the hull's own centre of mass unaimed).
+ // around whatever is aimed at (Entity.AimedAt: an item's cells or a mount's; the hull's own centre of mass unaimed).
// Consumed by Cut 3's roll (folded into HitProbability as pOnHull) and by Commit's cell draw, both through
// the one kernel function -- never re-derived separately.
[Inspectable, JsonProperty("precision"), Key(3), RuntimeInspectable]
diff --git a/Assets/Scripts/ServerShared/Behaviors/ThrottleLock.cs b/Assets/Scripts/ServerShared/Behaviors/ThrottleLock.cs
new file mode 100644
index 000000000..52fcc926f
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/ThrottleLock.cs
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using MessagePack;
+using Newtonsoft.Json;
+
+// Presence marks the lock: Entity.ThrottleLocked is true while an active effect carries one, and the thrust
+// allocator then bounds every forward-pushing column at full throttle from below in its solve. The behaviour
+// holds no state and does nothing itself; turning stays with the pilot.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+public class ThrottleLockData : BehaviorData
+{
+ public override Behavior CreateInstance(EquippedItem item)
+ {
+ return new ThrottleLock(this, item);
+ }
+ public override Behavior CreateInstance(ConsumableItemEffect item)
+ {
+ return new ThrottleLock(this, item);
+ }
+}
+
+public class ThrottleLock : Behavior
+{
+ public ThrottleLock(ThrottleLockData data, EquippedItem item) : base(data, item)
+ {
+ }
+
+ public ThrottleLock(ThrottleLockData data, ConsumableItemEffect item) : base(data, item)
+ {
+ }
+
+ public override bool Execute(float dt) => true;
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/ThrottleLock.cs.meta b/Assets/Scripts/ServerShared/Behaviors/ThrottleLock.cs.meta
new file mode 100644
index 000000000..01ac8c635
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/ThrottleLock.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 558ff9ad01ba4fd4987d5e6ba4f31e4d
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs
index be0d79900..a349ad744 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs
@@ -25,6 +25,11 @@ public class ThrusterData : BehaviorData
[Inspectable, CultInspectorAssetGuid, JsonProperty("Particles"), Key(5)]
public string ParticlesPrefab;
+
+ // The gimbal's slew rate in degrees per second: the part's own stat, as a weapon's traverse is
+ // (ruling mount-arc-gun-traverse). The swing limit is the hardpoint's FiringArc, the row its Row.
+ [Inspectable, JsonProperty("slew"), Key(6), RuntimeInspectable]
+ public PerformanceStat Slew = new PerformanceStat();
public override Behavior CreateInstance(EquippedItem item)
{
@@ -37,12 +42,24 @@ public class ThrusterData : BehaviorData
}
}
-public class Thruster : Behavior, IAnalogBehavior, IPowerConsumer
+public class Thruster : Behavior, IPowerConsumer
{
// Live: heat, quality, durability and power move this stat after construction, so it is read, never cached.
public float Thrust => Evaluate(_data.Thrust);
+ // Thrust at a full grant, the same stat read without the power-supply term: what a column promises. Live, like Thrust.
+ public float NominalThrust => EvaluateNominalPower(_data.Thrust);
public float Torque { get; }
+ // This thruster's effect per unit throttle at the given thrust, in the body frame: xy is the push (x starboard, y
+ // forward), z the clockwise yaw rate in rad/s. Zero when the item is absent or offline. The one geometry owner for
+ // the allocator and the envelope.
+ public float3 Column(float thrust)
+ {
+ if (Item == null || !Item.Active.Value) return default;
+ var push = -float2(0, 1).Rotate(Item.EquippableItem.Rotation) * thrust / Entity.Mass;
+ return float3(push.x, push.y, Torque * thrust * ItemManager.GameplaySettings.TorqueMultiplier / Entity.Mass);
+ }
+
public float Axis
{
get => _input;
@@ -84,53 +101,30 @@ public class Thruster : Behavior, IAnalogBehavior, IPowerConsumer
// registered request field (StatValidation.PowerRequestFields) -- read nominally, same reasoning as every
// other IPowerConsumer in this cut, though EnergyUsage carries no PowerSupply term in Thruster's own shipped
// catalog today; Thrust (the field Cut 7 curves) is a separate stat Execute reads with the real Evaluate.
- public float PowerRequest(float dt) => _input > .01f ? _input * EvaluateNominalPower(_data.EnergyUsage) : 0f;
+ public float PowerRequest(float dt) => _input > 0f ? _input * EvaluateNominalPower(_data.EnergyUsage) : 0f;
// Cut 5 (docs/stats-and-power-cut.md §1.3, PowerTiers.cs): Medium -- mobility. Losing thrust for a tick
// under brownout is an inconvenience, not the cascading failure a starved radiator or shield causes.
public int DefaultPowerTier => PowerTiers.Medium;
- // What this thruster adds to the ship's manoeuvre envelope: Execute's own arithmetic at full input, read live.
- // Its push is Thrust / Mass along its mount, into the matching body
- // axis, even for a flank thruster that only turns (it pushes whenever it turns); its turn is |Torque| * Thrust *
- // TorqueMultiplier / Mass into the side its Torque sign fires on, when |Torque| clears the floor. Zero when the
- // item is offline or unpowered, the same gates Execute applies.
- public ManoeuvreEnvelope Manoeuvre()
- {
- if (Item == null || !Item.Active.Value || Item.PowerSupply <= 1e-4f) return default;
- var settings = ItemManager.GameplaySettings;
- var thrust = Thrust;
- var acceleration = thrust / Entity.Mass;
- var forward = normalize(Entity.Direction);
- var right = forward.Rotate(ItemRotation.Clockwise);
- var push = -forward.Rotate(Item.EquippableItem.Rotation);
- var along = dot(push, forward);
- var across = dot(push, right);
- var turn = abs(Torque) > settings.TorqueFloor ? abs(Torque) * thrust * settings.TorqueMultiplier / Entity.Mass : 0f;
- return new ManoeuvreEnvelope(
- max(along, 0f) * acceleration, max(-along, 0f) * acceleration,
- max(-across, 0f) * acceleration, max(across, 0f) * acceleration,
- Torque > 0f ? turn : 0f, Torque < 0f ? turn : 0f);
- }
-
public override bool Execute(float dt)
{
- Item.SetAudioParameter(SpecialAudioParameter.Intensity, _input);
// Cut 7 (docs/stats-and-power-target.md): "continuous consumers brown out ... through a power supply
// curve on their performance stats." Thrust below is a plain Evaluate() read, so once the catalog's own
// Thrust stat carries a PowerSupply term, a partial grant already comes back reduced -- this gate no
// longer demands a full grant, only that the thruster is being asked to do anything (_input) and that it
// has not been cut to true zero supply (the epsilon PowerBus itself already treats as "nothing granted").
- if(_input > .01f && Item.PowerSupply > 1e-4f)
+ if(_input > 0f && Item.PowerSupply > 1e-4f)
{
var thrust = Thrust;
Entity.Velocity -= Direction.xz * _input * thrust / Entity.Mass * dt;
- Entity.Direction = mul(Entity.Direction,
- CultMath.float2x2.Rotate(_input * Torque * thrust * ItemManager.GameplaySettings.TorqueMultiplier / Entity.Mass * dt));
+ var turnRate = _input * Torque * thrust * ItemManager.GameplaySettings.TorqueMultiplier / Entity.Mass;
+ Entity.Direction = mul(Entity.Direction, CultMath.float2x2.Rotate(turnRate * dt));
+ Entity.TurnRate += turnRate;
AddHeat(_input * Evaluate(_data.Heat) * dt);
var vis = _input * Evaluate(_data.Visibility);
- if (!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this])
- Entity.VisibilitySources[this] = vis;
+ if (!Entity.VisibilitySources.TryGetValue(this, out var burn) || vis > burn.Strength)
+ Entity.SetSignature(this, SignatureChannel.DrivePlume, vis, Item);
return true;
}
return false;
diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs
index be092f7a0..cb65eba58 100644
--- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs
@@ -64,13 +64,12 @@ public class TurretController : Behavior, IInitializableBehavior
var diff = target.Position - Entity.Position;
if (_predictShots)
{
- var targetHullData = Entity.ItemManager.GetData(target.Hull) as HullData;
var targetVelocity = float3(target.Velocity.x, 0, target.Velocity.y);
var predictedPosition = first_order_intercept(
Entity.Position, float3.zero, _shotSpeed,
target.Position, targetVelocity
);
- predictedPosition.y = Entity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset;
+ predictedPosition.y = target.RideHeight(predictedPosition.xz);
Entity.Aim = normalize(predictedPosition - Entity.Position);
}
else
diff --git a/Assets/Scripts/ServerShared/Behaviors/VapourDump.cs b/Assets/Scripts/ServerShared/Behaviors/VapourDump.cs
new file mode 100644
index 000000000..3e035f9b8
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/VapourDump.cs
@@ -0,0 +1,61 @@
+using MessagePack;
+using Newtonsoft.Json;
+
+// A coolant dump that becomes a vapour cloud: the first time it runs it vents one cloud around its venter,
+// drifting with the venter's velocity. Radius, Opacity and Lifetime are evaluated through the host, so role
+// quality applies as for any other stat. Later runs vent nothing.
+[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable]
+public class VapourDumpData : BehaviorData
+{
+ [Inspectable, JsonProperty("radius"), Key(1), RuntimeInspectable]
+ public PerformanceStat Radius = new PerformanceStat();
+
+ // How much of a sight line's signal a fresh cloud removes, in [0, 1].
+ [Inspectable, JsonProperty("opacity"), Key(2), RuntimeInspectable]
+ public PerformanceStat Opacity = new PerformanceStat();
+
+ // Seconds from venting until the cloud has faded away and is removed.
+ [Inspectable, JsonProperty("lifetime"), Key(3), RuntimeInspectable]
+ public PerformanceStat Lifetime = new PerformanceStat();
+
+ public override Behavior CreateInstance(EquippedItem item)
+ {
+ return new VapourDump(this, item);
+ }
+
+ public override Behavior CreateInstance(ConsumableItemEffect item)
+ {
+ return new VapourDump(this, item);
+ }
+}
+
+public class VapourDump : Behavior
+{
+ private VapourDumpData _data;
+ private bool _vented;
+
+ public VapourDump(VapourDumpData data, EquippedItem item) : base(data, item)
+ {
+ _data = data;
+ }
+
+ public VapourDump(VapourDumpData data, ConsumableItemEffect item) : base(data, item)
+ {
+ _data = data;
+ }
+
+ public override bool Execute(float dt)
+ {
+ if (_vented) return true;
+ _vented = true;
+ Entity.Zone.Vent(new VapourCloud
+ {
+ Body = new KinematicBody { Position = Entity.Position.xz, Velocity = Entity.Velocity },
+ Radius = Evaluate(_data.Radius),
+ Opacity = Evaluate(_data.Opacity),
+ Lifetime = Evaluate(_data.Lifetime),
+ Venter = Entity
+ });
+ return true;
+ }
+}
diff --git a/Assets/Scripts/ServerShared/Behaviors/VapourDump.cs.meta b/Assets/Scripts/ServerShared/Behaviors/VapourDump.cs.meta
new file mode 100644
index 000000000..86ef08913
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Behaviors/VapourDump.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 961a74683c574807a300eb26694f206d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs
index 1311f7cff..07dcb3cf2 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs
@@ -15,6 +15,9 @@ public class VisibilityData : BehaviorData
[Inspectable, JsonProperty("visibilityDecay"), Key(2)]
public PerformanceStat VisibilityDecay = new PerformanceStat();
+
+ [Inspectable, JsonProperty("channel"), Key(3)]
+ public SignatureChannel Channel = SignatureChannel.Thermal;
public override Behavior CreateInstance(EquippedItem item)
{
@@ -41,7 +44,7 @@ public class Visibility : Behavior
public override bool Execute(float dt)
{
- Entity.VisibilitySources[this] = Evaluate(_data.Visibility);
+ Entity.SetSignature(this, _data.Channel, Evaluate(_data.Visibility), Item);
return true;
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs
index 82febb067..6a01f81ca 100644
--- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs
+++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs
@@ -37,8 +37,16 @@ public abstract class WeaponData : BehaviorData
[Inspectable, JsonProperty("range"), Key(6)]
public PerformanceStat Range = new PerformanceStat();
- [InspectableAnimationCurve, JsonProperty("damageCurve"), Key(7)]
- public BezierCurve DamageCurve;
+ // Key 7 was the damage curve, retired and never reused.
+
+ // The range up to which a round does its full damage; from here to Range damage lerps to DamageAtMaxRange. Unauthored
+ // is no falloff (Tracking's precedent): +infinity clamps to Range in RangeFactor.
+ [Inspectable, JsonProperty("effectiveRange"), Key(35)]
+ public PerformanceStat EffectiveRange = new PerformanceStat { Min = float.PositiveInfinity, Max = float.PositiveInfinity };
+
+ // The multiplier on damage at Range, the end of the lerp (0 is nothing arriving at maximum range).
+ [Inspectable, JsonProperty("damageAtMaxRange"), Key(36)]
+ public float DamageAtMaxRange;
[Inspectable, CultInspectorAssetGuid, JsonProperty("effect"), Key(8)]
public string EffectPrefab;
@@ -71,6 +79,25 @@ public abstract class WeaponData : BehaviorData
// weapon-tracking-authored). Unauthored is a mount that follows anything: FireControl.PMount reads +infinity as 1.
[Inspectable, JsonProperty("tracking"), Key(33), RuntimeInspectable]
public PerformanceStat Tracking = new PerformanceStat { Min = float.PositiveInfinity, Max = float.PositiveInfinity };
+
+ // What an observer who believes this is the design measures it by (aetheria-ew, ew-claim-weapon-measure-ruled): the
+ // design's rated figures, each stat's Max (what a stat with no terms resolves to), through the same formula the
+ // live weapon's RangeDamagePerSecond runs over its evaluated stats. Never the carrier's quality, heat, wear or power.
+ public abstract float RatedRangeDamagePerSecond(float range);
+ public float RatedRangeFactor(float at) => RangeFactor(MinRange.Max, EffectiveRange.Max, Range.Max, DamageAtMaxRange, at);
+
+ // The one function of how much of a weapon's damage arrives at a planar range: 0 outside [min, max] (inclusive, as
+ // FireControl.Designated), 1 up to the effective range, then one lerp to damageAtMax at max. An effective range outside
+ // [min, max] clamps into it.
+ public static float RangeFactor(float min, float effective, float max, float damageAtMax, float at)
+ {
+ if (at < min || at > max) return 0f;
+ var e = clamp(effective, min, max);
+ return e >= max ? 1f : lerp(1f, damageAtMax, saturate(unlerp(e, max, at)));
+ }
+
+ [IgnoreMember]
+ public float RatedRange => Range.Max;
}
public abstract class Weapon : Behavior, IActivatedBehavior
@@ -81,11 +108,13 @@ public abstract class Weapon : Behavior, IActivatedBehavior
public abstract float RangeDamagePerSecond(float range);
public abstract int Ammo { get; }
public WeaponData WeaponData => _data;
+ public float RangeFactor(float at) => WeaponData.RangeFactor(MinRange, EffectiveRange, Range, _data.DamageAtMaxRange, at);
public float Damage { get; protected set; }
public float Penetration { get; protected set; }
public float DamageSpread { get; protected set; }
public float MinRange { get; protected set; }
+ public float EffectiveRange { get; protected set; }
public float Range { get; protected set; }
public float Energy { get; protected set; }
public float Heat { get; protected set; }
@@ -112,14 +141,10 @@ public abstract class Weapon : Behavior, IActivatedBehavior
// so a weapon is never safed against one.
public bool StanceAllowsFire => Entity.Target.Value.Entity == null || Entity.IsHostileTo(Entity.Target.Value.Entity);
- // Cut 3 (docs/fire-control-cut.md, Q2): player fire is arc-gated like everyone else's. This is the same
- // predicate (FireControl.InArc) Combat.cs and TurretController.cs gate AI and turret fire with, read at
- // the one point every shooter's trigger passes through (InstantWeapon.Trigger) -- not a parallel check, and
- // not the AI's own AgentMinHitProbability heuristic, which is a "worth it" decision layered above this
- // gate, not the gate itself. With no target set, behaviour is unchanged (nothing to bear on).
- // Cut 5, 5.4 (Soul finding 11): the point-blank special case this used to carry moved into InArc itself --
- // one bearing test, one owner, so every caller (not just this one) gets a point-blank shot that bears.
- // FireControl owns the gate, including its one exemption: a fused weapon fires out of arc.
+ // The trigger gate for player and AI shooters alike, read at the one point every shooter's trigger passes
+ // through (InstantWeapon.Trigger). A gun fires on its solution (FireControl.Solution) without the aim, else
+ // along the aim when the aim is inside its arc, else it holds. An AI shooter's aim is its intercept, so its
+ // fire is unchanged. FireControl owns the gate, including its exemption: a fused weapon fires out of arc.
public bool ArcAllowsFire => FireControl.ArcPermitsFire(this, Entity);
public Weapon(WeaponData data, EquippedItem item) : base(data, item)
@@ -138,6 +163,7 @@ public abstract class Weapon : Behavior, IActivatedBehavior
Penetration = Evaluate(_data.Penetration);
DamageSpread = Evaluate(_data.DamageSpread);
MinRange = Evaluate(_data.MinRange);
+ EffectiveRange = Evaluate(_data.EffectiveRange);
Range = Evaluate(_data.Range);
Energy = Evaluate(_data.Energy);
Heat = Evaluate(_data.Heat);
diff --git a/Assets/Scripts/ServerShared/CapabilityEvents.cs b/Assets/Scripts/ServerShared/CapabilityEvents.cs
index 9e3c26635..025975815 100644
--- a/Assets/Scripts/ServerShared/CapabilityEvents.cs
+++ b/Assets/Scripts/ServerShared/CapabilityEvents.cs
@@ -7,30 +7,35 @@ using UniRx;
using CultMath;
// Capability event contract (docs/headless-playground-cut.md fork L, operator ruling 2026-09-17):
-// pickup, impact absorption, melee blade and propulsion are separate item capabilities. Simulation
-// (not yet built -- this file only stands up the wire shape) will own each capability's rules and
-// emit these events; any number of presentations (the field shield today, later an IFS shatter
-// plane or an advected particle field) subscribe to the event kinds they visualize and decide
-// nothing about the rule. This file has no engine dependency: it compiles into the headless
-// Aetheria.Shared build (see Aetheria.Shared.csproj) with no publisher wired up yet.
+// pickup, impact absorption, melee blade and propulsion are separate item capabilities. Simulation owns
+// each capability's rules and emits these events (FireControl publishes Absorb; the others are not yet
+// built); any number of presentations (the field shield today, later an IFS shatter plane or an advected
+// particle field) subscribe to the event kinds they visualize and decide nothing about the rule. This file
+// has no engine dependency: it compiles into the headless Aetheria.Shared build (see Aetheria.Shared.csproj).
-// One absorbed impact: a hit landing on the item's shield/armor capability. DamageType rides along
-// so presenters can vary visuals per type; the damage-type mask itself belongs to the absorb
-// capability's own data and is out of scope for this cut (operator, 2026-09-17) -- this struct only
-// carries the hit's existing type through, unfiltered.
+// Which layer of the receiver took an absorbed impact.
+public enum AbsorbLayer { Shield, Hull }
+
+// One absorbed impact on a shield or a hull, published once per receiver by FireControl on that entity's
+// Entity.Capabilities. Position is a world point on the receiver's sim pose at the tick the impact lands (a
+// presenter draws it with DrawAhead.Carried); Direction is the way the impact travels. DamageType rides along
+// so presenters can vary visuals per type; the damage-type mask itself belongs to the absorb capability's own
+// data and is out of scope (operator, 2026-09-17) -- this struct only carries the hit's existing type through.
public readonly struct AbsorbEvent
{
public readonly float3 Position;
public readonly float3 Direction;
public readonly float Magnitude;
public readonly DamageType DamageType;
+ public readonly AbsorbLayer Layer;
- public AbsorbEvent(float3 position, float3 direction, float magnitude, DamageType damageType)
+ public AbsorbEvent(float3 position, float3 direction, float magnitude, DamageType damageType, AbsorbLayer layer)
{
Position = position;
Direction = direction;
Magnitude = magnitude;
DamageType = damageType;
+ Layer = layer;
}
}
@@ -47,19 +52,18 @@ public enum GrabPhase
Cancelled
}
-// The target is identified by a plain handle, not a Unity type: the simulation will own the real
-// target identity (a loot drop or item instance id) once the pickup capability exists. Today's only
-// publisher (the FieldShieldTest scene) hands out its own handles; nothing here interprets them.
+// One phase of a grab. The target is the floating item the Pickup behaviour holds (the FieldShieldTest scene
+// publishes its own handles as ids); nothing here interprets it.
public readonly struct GrabEvent
{
- public readonly int TargetHandle;
+ public readonly FloatingBodyId Target;
public readonly GrabPhase Phase;
public readonly float3 TargetPosition;
public readonly float PhaseDuration;
- public GrabEvent(int targetHandle, GrabPhase phase, float3 targetPosition, float phaseDuration)
+ public GrabEvent(FloatingBodyId target, GrabPhase phase, float3 targetPosition, float phaseDuration)
{
- TargetHandle = targetHandle;
+ Target = target;
Phase = phase;
TargetPosition = targetPosition;
PhaseDuration = phaseDuration;
@@ -101,10 +105,10 @@ public readonly struct ThrustEvent
}
}
-// Per-entity (or per-item) source of capability events. One instance is owned by whatever will
-// eventually decide these rules; today the FieldShieldTest scene stands in for that owner. Follows
-// the Subject-per-event-kind idiom already used on Entity (IncomingHit, HullDamage, etc): each
-// event kind gets its own stream, and a subscriber to one kind never sees another.
+// Per-entity source of capability events: one instance per Entity (Entity.Capabilities), published by
+// FireControl for Absorb; the FieldShieldTest scene keeps its own instance. Follows the Subject-per-event-kind
+// idiom already used on Entity (IncomingHit, HullDamage, etc): each event kind gets its own stream, and a
+// subscriber to one kind never sees another.
public class CapabilityEvents
{
private readonly Subject _absorb = new Subject();
diff --git a/Assets/Scripts/ServerShared/Contacts.cs b/Assets/Scripts/ServerShared/Contacts.cs
new file mode 100644
index 000000000..a5630ca5f
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Contacts.cs
@@ -0,0 +1,68 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using System.Linq;
+using CultMath;
+using static CultMath.math;
+using float2 = CultMath.float2;
+
+// A ship touching a ship (aetheria-release cut sim-contact; ruling unity-presents-only-r3): the simulation owns
+// contact between ships. Orbital entities (stations, turrets) sit on the orbital layer above the ship plane and floaters
+// below it, so neither touches a ship (ruling aetheria-gravity:orbitals-above-floaters-below). Each hull is a disc about its centre of mass that bounds every occupied cell, and
+// two discs that touch while closing along the line between their centres take the normal impulse
+// j = -(1 + e)(v_rel . n) / (1/m1 + 1/m2) (ruling ship-bounce-restitution-setting): momentum is conserved, the
+// result is frame-independent, and a pair that has separated is not bounced again. e is
+// GameplaySettings.ContactRestitution.
+// Presentations read Zone.Contacted; no Unity collision callback writes an Entity.
+public readonly struct ContactEvent
+{
+ public readonly Entity A;
+ public readonly Entity B;
+ public readonly float2 Point;
+ // Unit vector from A to B.
+ public readonly float2 Normal;
+
+ public ContactEvent(Entity a, Entity b, float2 point, float2 normal)
+ {
+ A = a;
+ B = b;
+ Point = point;
+ Normal = normal;
+ }
+}
+
+public static class Contacts
+{
+ public static float Radius(Entity e) => e.HullData.Reach(e.ItemManager.GameplaySettings.SchematicCellSize);
+
+ // For each unordered pair of the zone's ships, in list order: if their discs touch and are closing along
+ // the normal, the impulse moves each one's velocity along the normal only (the tangent components are
+ // untouched), and the contact is published. Pairs resolve one after another in list order, each from the
+ // velocities the earlier pairs left, so a body touching two others in one tick depends on that order; the
+ // total momentum does not. A docked entity (it has a Parent and takes its parent's pose) and an inactive one
+ // are not hulls in the zone. No positional push-out.
+ public static void Step(Zone zone)
+ {
+ var entities = zone.Entities.OfType().Where(e => e.Active && e.Parent == null).ToArray();
+ var radii = entities.Select(Radius).ToArray();
+ for (var i = 0; i < entities.Length; i++)
+ for (var j = i + 1; j < entities.Length; j++)
+ {
+ var a = entities[i];
+ var b = entities[j];
+ var offset = b.Position.xz - a.Position.xz;
+ var distance = length(offset);
+ // Coincident centres have no normal.
+ if (distance <= 0f || distance >= radii[i] + radii[j]) continue;
+ var n = offset / distance;
+ var closing = dot(n, b.Velocity - a.Velocity);
+ if (closing >= 0f) continue;
+
+ var impulse = -(1f + a.ItemManager.GameplaySettings.ContactRestitution) * closing / (1f / a.Mass + 1f / b.Mass);
+ a.Velocity -= n * (impulse / a.Mass);
+ b.Velocity += n * (impulse / b.Mass);
+ zone.Contacted.OnNext(new ContactEvent(a, b, a.Position.xz + n * radii[i], n));
+ }
+ }
+}
diff --git a/Assets/Scripts/ServerShared/Contacts.cs.meta b/Assets/Scripts/ServerShared/Contacts.cs.meta
new file mode 100644
index 000000000..1cba80257
--- /dev/null
+++ b/Assets/Scripts/ServerShared/Contacts.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7c1e5a3b9d4f4e2a8b6c0d1f2e3a4b5c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/DrawAhead.cs b/Assets/Scripts/ServerShared/DrawAhead.cs
new file mode 100644
index 000000000..49ca0a3d0
--- /dev/null
+++ b/Assets/Scripts/ServerShared/DrawAhead.cs
@@ -0,0 +1,162 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+using CultMath;
+using GameCult.Caching;
+using static CultMath.math;
+
+// Pure presentation statics over sim state, never called by ServerShared, with no state of their own: the sim owns every
+// pose and no presenter stores one, a previous state or a velocity of its own.
+// The rule: a presenter draws every moving thing at the drawn time T = Zone.ExactTime + Clock.Lead. A pose the sim defines
+// in closed form of time (an orbit, a belt chunk, a well, the field's height, the flow scroll) is that function evaluated
+// at T; a pose the sim integrates (a ship, a kinematic body) is its last step plus its step velocity times Lead; a child
+// is drawn where its parent is. DrawAhead.Time is the one definition of T. Ships ride the field at that drawn xz and T (a
+// ship's height is the field's there, not the last step's). A ballistic round's flight is presentation
+// (ruling projectile-flight-is-presentation), drawn from the sim's facts: its frozen line, the published outcome, the
+// commit tick, the impact cell on the target's drawn pose, the burst point.
+public static class DrawAhead
+{
+ // The drawn time: the one definition of T.
+ public static double Time(Zone zone, float lead) => zone.ExactTime + lead;
+
+ // An orbit's node at the drawn time: the rail law at T, not the step's memo.
+ public static float2 Orbit(Zone zone, CultRecordKey orbit, float lead) => zone.OrbitPositionAt(orbit, Time(zone, lead));
+
+ // The field's height at a point at the drawn time, its wells where their rails put them at T.
+ public static float Height(Zone zone, float2 planar, float lead) => zone.GetHeight(planar, Time(zone, lead));
+
+ // The drawn height of a floater (loot, mines): the field at the drawn time plus the floater layer.
+ public static float FloaterHeight(Zone zone, GameplaySettings settings, float2 planar, float lead) => Height(zone, planar, lead) + settings.FloaterLayerHeight;
+
+ // A ship in a wormhole animation has its pose scripted by the step, not integrated from Velocity and TurnRate,
+ // so it is drawn where the step put it: extrapolating a scripted pose draws a streak that resets every step.
+ // A child is drawn where its parent is drawn, as the step copies the parent's pose onto it.
+ public static float3 Position(Entity entity, float lead)
+ {
+ if (entity is Ship { WormholeAnimationInProgress: true }) return entity.Position;
+ if (entity.Parent != null) return Position(entity.Parent, lead);
+ // A body on a rail (a station) is on its orbit at T: the rail is closed form, not integrated.
+ var planar = entity is OrbitalEntity { OrbitData: var orbit } && orbit.IsSet()
+ ? Orbit(entity.Zone, orbit, lead)
+ : entity.Position.xz + entity.Velocity * lead;
+ return float3(planar.x, entity.RideHeight(planar, Time(entity.Zone, lead)), planar.y);
+ }
+
+ // The point `distance` out along a planar bearing from the ship's drawn position: where the HUD anchors a marker to the
+ // ship the camera follows (an incoming lock, a remembered contact, a ping's flash).
+ public static float3 AtBearing(Entity origin, float2 bearing, float distance, float lead)
+ {
+ var at = Position(origin, lead);
+ return float3(at.x + bearing.x * distance, at.y, at.z + bearing.y * distance);
+ }
+
+ // One well as the shader takes it: its body's rail at the drawn time, with the strength, core and reference the sim's
+ // GetHeight sums with. GravityLowering copies it into the shader's record and decides nothing.
+ public readonly struct DrawnWell
+ {
+ public readonly float2 Position;
+ public readonly float Strength, CoreRadius, Reference;
+ public DrawnWell(float2 position, float strength, float coreRadius, float reference)
+ {
+ Position = position;
+ Strength = strength;
+ CoreRadius = coreRadius;
+ Reference = reference;
+ }
+ }
+
+ public static DrawnWell Well(Zone zone, Planet body, float lead) =>
+ new DrawnWell(Orbit(zone, body.BodyData.Orbit.Key, lead), body.WellStrength, body.RocheLimit, zone.WellReference(body));
+
+ // A free body (a vapour cloud) drawn where the frame falls lead sim seconds after the last step, by the velocity
+ // that step moved it with: the launch velocity and the drift together.
+ public static float2 Position(KinematicBody body, float lead) => body.Position + body.TotalVelocity * lead;
+
+ // The ship's rotation turned about its own up axis by the rate its last step turned, for lead seconds.
+ public static quaternion Rotation(Ship ship, float lead) =>
+ ship.WormholeAnimationInProgress ? ship.Rotation : Turned(ship.Rotation, ship.TurnRate * lead);
+
+ // q turned about its own up axis by the angle, in the sense Direction turns for a positive TurnRate.
+ public static quaternion Turned(quaternion q, float angle)
+ {
+ var u = float3(q.x, q.y, q.z);
+ var up = float3(0, 1, 0);
+ up += 2 * (q.w * cross(u, up) + cross(u, cross(u, up)));
+ var half = angle * .5f;
+ var s = sin(half);
+ var t = new quaternion(up.x * s, up.y * s, up.z * s, cos(half));
+ // Hamilton product t * q: CultMath carries no quaternion product (a gap in CultMath, not filled here).
+ return normalize(new quaternion(
+ t.w * q.x + t.x * q.w + t.y * q.z - t.z * q.y,
+ t.w * q.y - t.x * q.z + t.y * q.w + t.z * q.x,
+ t.w * q.z + t.x * q.y - t.y * q.x + t.z * q.w,
+ t.w * q.w - t.x * q.x - t.y * q.y - t.z * q.z));
+ }
+
+ // A ballistic round at the drawn time (DrawAhead.Time, passed in by the caller; the target's lead is that time less its zone's step time, derived here, never a second input): on its frozen line while the outcome is unknown or a
+ // miss, with the barrel's offset from that line decaying to nothing over blendTime sim seconds from the moment of firing.
+ // A round the sim published as a hit or burst steers from its line, from the commit tick, onto where it ends by the
+ // time damage lands: a burst's frozen point, else the impact cell on the target's drawn pose; and is held there after.
+ public static float3 Round(in PendingShot shot, ShotOutcome known, float3 barrel, float blendTime, double drawnTime)
+ {
+ var time = (float) drawnTime;
+ var drawn = Lifted(shot, Line(shot, known?.Result, time), barrel, blendTime, time);
+ if (known == null || known.Result == ShotResult.Miss) return drawn;
+ var end = known.HasBurstPoint
+ ? float3(known.BurstPoint.x, shot.FireOrigin.y, known.BurstPoint.y)
+ : Impact(known.Target, known.Cell, (float) (drawnTime - known.Target.Zone.ExactTime));
+ var commit = shot.ArrivalTime - known.ArrivalIn;
+ var steer = shot.ArrivalTime > commit ? saturate((time - commit) / (shot.ArrivalTime - commit)) : 1f;
+ return drawn + (end - drawn) * steer;
+ }
+
+ // The impact cell's centre on the target's drawn pose.
+ public static float3 Impact(Entity target, int2 cell, float lead)
+ {
+ var world = target.ToWorldPoint((float2) cell);
+ return Carried(target, float3(world.x, target.Position.y, world.y), lead);
+ }
+
+ // A world point on the target's sim pose, moved and turned with the target for lead seconds exactly as Position and
+ // Rotation draw the entity: the one owner of where a point on a hull is drawn, for the drawn round's end and for
+ // impact presenters.
+ public static float3 Carried(Entity target, float3 simPoint, float lead)
+ {
+ var at = Position(target, lead);
+ var offset = float2(simPoint.x - target.Position.x, simPoint.z - target.Position.z);
+ var turned = mul(offset, CultMath.float2x2.Rotate(Turn(target, lead)));
+ return float3(at.x + turned.x, at.y + (simPoint.y - target.Position.y), at.z + turned.y);
+ }
+
+ // Whether the drawn flight is over by time: only a published miss ends by the clock. A hit or burst ends on ShotResolved.
+ public static bool RoundOver(in PendingShot shot, ShotOutcome known, double drawnTime) =>
+ known != null && known.Result == ShotResult.Miss && (float) drawnTime >= RoundEnd(shot, ShotResult.Miss);
+
+ // The sim time a round's drawn line ends, for what is known of its outcome. A round that hit or burst (or whose outcome
+ // is not yet published) ends at its ArrivalTime; a round the sim has published as a Miss flies on to the weapon's frozen
+ // range and never ends short of its own arrival (a direct round's FireRange is measured to any target, in range or not).
+ public static float RoundEnd(in PendingShot shot, ShotResult? known) =>
+ known == ShotResult.Miss
+ ? max(shot.ArrivalTime, shot.FireTime + (shot.Speed > .01f ? shot.MaxRange / shot.Speed : 0f))
+ : shot.ArrivalTime;
+
+ // The frozen line a round follows until it steers: from its frozen origin along its frozen direction at its frozen
+ // speed, held at RoundEnd once it has flown that far. With no outcome known the round is drawn no further than its
+ // arrival point and waits there for the sim to publish one.
+ private static float2 Line(in PendingShot shot, ShotResult? known, float time)
+ {
+ if (shot.Speed <= .01f) return shot.FireOrigin.xz;
+ var flown = clamp(time - shot.FireTime, 0f, RoundEnd(shot, known) - shot.FireTime);
+ return shot.FireOrigin.xz + shot.TravelDirection * (shot.Speed * flown);
+ }
+
+ private static float Turn(Entity entity, float lead) =>
+ entity is Ship { WormholeAnimationInProgress: true } ? 0f : entity.TurnRate * lead;
+
+ private static float3 Lifted(in PendingShot shot, float2 planar, float3 barrel, float blendTime, float time)
+ {
+ var blend = blendTime > 0 ? saturate(1 - (time - shot.FireTime) / blendTime) : 0f;
+ return float3(planar.x, shot.FireOrigin.y, planar.y) + (barrel - shot.FireOrigin) * blend;
+ }
+}
diff --git a/Assets/Scripts/ServerShared/DrawAhead.cs.meta b/Assets/Scripts/ServerShared/DrawAhead.cs.meta
new file mode 100644
index 000000000..628d71b5d
--- /dev/null
+++ b/Assets/Scripts/ServerShared/DrawAhead.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 007fe4255cd84c26a010151a399f45c2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs
index e7a4b853f..3bd39b063 100644
--- a/Assets/Scripts/ServerShared/Entity.cs
+++ b/Assets/Scripts/ServerShared/Entity.cs
@@ -5,6 +5,7 @@
using GameCult.Caching;
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using MessagePack;
using UniRx;
@@ -14,14 +15,23 @@ using int2 = CultMath.int2;
public abstract class Entity
{
+ // Every hull cell's temperature (kelvin) when the entity is built.
+ public const float StartingCellTemperature = 280;
+
public Zone Zone;
public Faction Faction;
+ // The mark of a zone's boss, written only by ZoneGenerator and restored from the pack. RunGoal reads it.
+ public bool IsBoss;
public EquippableItem Hull;
public EquippedItem EquippedHull;
public float3 Position;
public float2 Direction = float2(0,1);
public float2 Velocity;
+ // Rad per sim second, signed as the step turns Direction: the sum of this step's rotation actuators' applied
+ // angle over the step. Runtime only, zeroed at the start of Update, so a staged, loaded or wormhole write to
+ // Direction is never a turn. Read only by presenters that draw ahead of the step.
+ public float TurnRate;
// Runtime only, never saved; Entity.Update is the one writer of both. Acceleration is the planar velocity change
// across the base update over its delta (thrust, not the drag or gravity a subclass applies before calling it),
@@ -59,24 +69,67 @@ public abstract class Entity
private readonly ReactiveProperty _target = new ReactiveProperty(TargetRef.None);
public IReadOnlyReactiveProperty Target => _target;
- // Cut 2 (docs/fire-control-cut.md): the stored aim-point slot. Written only by TrySelectTargetItem
- // below, and nulled whenever Target changes (subscribed in Activate). Do not read this field directly
- // outside Entity -- read ResolvedTargetItem, which re-validates on every call, so decay (or the item
- // leaving the target) drops the aim point the moment it is no longer earned, with no loop that has to
- // notice and clear it.
- public ReactiveProperty TargetItem = new ReactiveProperty((EquippedItem)null);
+ // The one aim slot on the Target (docs/fire-control-cut.md, Cut 2): a revealed item or a mount of the hull this
+ // observer believes the target to be, never both. Written only by TrySelectTargetItem (a revealed item: Combat's path
+ // and the player's) and TrySelectMount (a believed mount), and nulled whenever Target changes (subscribed in
+ // Activate). Do not read it outside Entity -- read ResolvedAim, which re-validates both gates on every call, so decay,
+ // a perceived destruction, or the item leaving the target drops the aim the moment it is no longer earned, with no
+ // loop that has to notice and clear it. (Not `Aim`: that is the pilot's pointing direction below.)
+ public AimTarget AimedAt { get; private set; }
// Where the pilot points: reticle, lock cone, tractor, guided rounds, fire direction. Steers nothing; the
// hull turns only by Ship.Turn.
public float3 Aim;
-
+
public string Name;
+
+ // Names the entity for assertion messages and logs: xunit and the debugger format an object by walking its graph
+ // unless it has a ToString, and an Entity's graph is the whole zone. Entity has no id; Name is the hull's or the scenario's.
+ public override string ToString() => $"{GetType().Name} '{Name}'";
// public int Population;
// public Dictionary Personality = new Dictionary();
public readonly Dictionary Messages = new Dictionary();
- public readonly Dictionary