finish category system

This commit is contained in:
minenice55 2023-12-13 23:47:33 -05:00
parent 2bc17d33d1
commit 0e7917e799
15 changed files with 736 additions and 204 deletions

View file

@ -681,7 +681,7 @@ Transform:
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 6234653029009288364} m_Father: {fileID: 6234653029009288364}
m_RootOrder: 5 m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3901862248944335408 --- !u!114 &3901862248944335408
MonoBehaviour: MonoBehaviour:
@ -878,6 +878,7 @@ GameObject:
- component: {fileID: 1168123228960484818} - component: {fileID: 1168123228960484818}
- component: {fileID: 1574772130180899299} - component: {fileID: 1574772130180899299}
- component: {fileID: 974770566238864437} - component: {fileID: 974770566238864437}
- component: {fileID: 7654832573267263516}
m_Layer: 31 m_Layer: 31
m_Name: GameView m_Name: GameView
m_TagString: Untagged m_TagString: Untagged
@ -940,6 +941,18 @@ MonoBehaviour:
y: 0 y: 0
width: 1 width: 1
height: 1 height: 1
--- !u!114 &7654832573267263516
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2832441949350437337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d556607141c07af40b1b5ee71c28c5a6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &3498225866970293299 --- !u!1 &3498225866970293299
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1169,6 +1182,68 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 221.5 m_PixelsPerUnitMultiplier: 221.5
--- !u!1 &4378940007735271137
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8911262839428776692}
- component: {fileID: 4066285641915621701}
- component: {fileID: 7781529375355758868}
m_Layer: 21
m_Name: PPVolume
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8911262839428776692
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4378940007735271137}
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: 6234653029009288364}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4066285641915621701
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4378940007735271137}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
m_Name:
m_EditorClassIdentifier:
sharedProfile: {fileID: 11400000, guid: b51cceebf153b484cb3ae8addf344bb3, type: 2}
isGlobal: 1
blendDistance: 0
weight: 1
priority: 0
--- !u!114 &7781529375355758868
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4378940007735271137}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e3cc0a4bae0c56540b9f598f4644539c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &4548882026653333708 --- !u!1 &4548882026653333708
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1384,6 +1459,168 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &5009365359458460369
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1049730448508550528}
- component: {fileID: 2170325723817611015}
- component: {fileID: 3655910237903630935}
- component: {fileID: 4529662476191353454}
- component: {fileID: 907286915261741163}
m_Layer: 0
m_Name: Main Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1049730448508550528
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5009365359458460369}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6234653029009288364}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &2170325723817611015
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5009365359458460369}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.01
far clip plane: 1000
field of view: 53.15
orthographic: 0
orthographic size: 5
m_Depth: 99
m_CullingMask:
serializedVersion: 2
m_Bits: 4631
m_RenderingPath: -1
m_TargetTexture: {fileID: 8400000, guid: da1c23fc8a9167c438d0d771189a6157, type: 2}
m_TargetDisplay: 0
m_TargetEye: 0
m_HDR: 0
m_AllowMSAA: 0
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 0
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!81 &3655910237903630935
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5009365359458460369}
m_Enabled: 1
--- !u!114 &4529662476191353454
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5009365359458460369}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a774f8053d895604cb8ded8c46de6733, type: 3}
m_Name:
m_EditorClassIdentifier:
camera: {fileID: 2170325723817611015}
baseColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!114 &907286915261741163
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5009365359458460369}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3}
m_Name:
m_EditorClassIdentifier:
volumeTrigger: {fileID: 1049730448508550528}
volumeLayer:
serializedVersion: 2
m_Bits: 2097152
stopNaNPropagation: 1
finalBlitToCameraTarget: 0
antialiasingMode: 0
temporalAntialiasing:
jitterSpread: 0.75
sharpness: 0.25
stationaryBlending: 0.95
motionBlending: 0.85
subpixelMorphologicalAntialiasing:
quality: 2
fastApproximateAntialiasing:
fastMode: 0
keepAlpha: 0
fog:
enabled: 1
excludeSkybox: 1
debugLayer:
lightMeter:
width: 512
height: 256
showCurves: 1
histogram:
width: 512
height: 256
channel: 3
waveform:
exposure: 0.12
height: 256
vectorscope:
size: 256
exposure: 0.12
overlaySettings:
linearDepth: 0
motionColorIntensity: 4
motionGridSize: 64
colorBlindnessType: 0
colorBlindnessStrength: 1
m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
m_ShowToolkit: 0
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
m_BeforeStackBundles:
- assemblyQualifiedName: PostProcessOutline, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_AfterStackBundles: []
--- !u!1 &5530727079185901299 --- !u!1 &5530727079185901299
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1735,105 +1972,6 @@ Camera:
m_OcclusionCulling: 0 m_OcclusionCulling: 0
m_StereoConvergence: 10 m_StereoConvergence: 10
m_StereoSeparation: 0.022 m_StereoSeparation: 0.022
--- !u!1 &6234653028453841298
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6234653028453841262}
- component: {fileID: 6234653028453841297}
- component: {fileID: 6234653028453841299}
- component: {fileID: 4269444482100919274}
m_Layer: 0
m_Name: Main Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6234653028453841262
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6234653028453841298}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6234653029009288364}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &6234653028453841297
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6234653028453841298}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.01
far clip plane: 1000
field of view: 53.15
orthographic: 0
orthographic size: 5
m_Depth: 99
m_CullingMask:
serializedVersion: 2
m_Bits: 4631
m_RenderingPath: -1
m_TargetTexture: {fileID: 8400000, guid: da1c23fc8a9167c438d0d771189a6157, type: 2}
m_TargetDisplay: 0
m_TargetEye: 0
m_HDR: 0
m_AllowMSAA: 0
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 0
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!81 &6234653028453841299
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6234653028453841298}
m_Enabled: 1
--- !u!114 &4269444482100919274
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6234653028453841298}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a774f8053d895604cb8ded8c46de6733, type: 3}
m_Name:
m_EditorClassIdentifier:
camera: {fileID: 6234653028453841297}
baseColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!1 &6234653029009288367 --- !u!1 &6234653029009288367
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1862,11 +2000,12 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 6234653028453841262} - {fileID: 1049730448508550528}
- {fileID: 6234653028281991656} - {fileID: 6234653028281991656}
- {fileID: 1942359490671534657} - {fileID: 1942359490671534657}
- {fileID: 4590016237509569025} - {fileID: 4590016237509569025}
- {fileID: 1850376182743320724} - {fileID: 1850376182743320724}
- {fileID: 8911262839428776692}
- {fileID: 3598754111961318833} - {fileID: 3598754111961318833}
- {fileID: 1590694521260573583} - {fileID: 1590694521260573583}
m_Father: {fileID: 0} m_Father: {fileID: 0}
@ -2703,7 +2842,7 @@ RectTransform:
m_Children: m_Children:
- {fileID: 657067078569207446} - {fileID: 657067078569207446}
m_Father: {fileID: 6234653029009288364} m_Father: {fileID: 6234653029009288364}
m_RootOrder: 6 m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 9c54cb8099a017249a30a903648a3bda guid: f5fbb1f743d01f24d96613dc6da68f30
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6

View file

@ -551,9 +551,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &9435782 --- !u!114 &9435782
@ -4154,9 +4154,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 32, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &121871281 --- !u!114 &121871281
@ -4378,9 +4378,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 72, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &129013734 --- !u!114 &129013734
@ -4514,9 +4514,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 112, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &151246938 --- !u!114 &151246938
@ -33916,9 +33916,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 40, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1345846031 --- !u!114 &1345846031
@ -43459,9 +43459,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 80, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1783491359 --- !u!114 &1783491359

View file

@ -377,7 +377,7 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &348185267 stripped --- !u!1 &348185267 stripped
GameObject: GameObject:
m_CorrespondingSourceObject: {fileID: 6234653028453841298, guid: 75ce9c0b59ff27f46a011e0cafc17fb3, type: 3} m_CorrespondingSourceObject: {fileID: 5009365359458460369, guid: 75ce9c0b59ff27f46a011e0cafc17fb3, type: 3}
m_PrefabInstance: {fileID: 348185263} m_PrefabInstance: {fileID: 348185263}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &348185268 stripped --- !u!1 &348185268 stripped

View file

@ -518,7 +518,7 @@ ParticleSystemRenderer:
m_MeshWeighting1: 1 m_MeshWeighting1: 1
m_MeshWeighting2: 1 m_MeshWeighting2: 1
m_MeshWeighting3: 1 m_MeshWeighting3: 1
m_MaskInteraction: 0 m_MaskInteraction: 2
--- !u!198 &136506958 --- !u!198 &136506958
ParticleSystem: ParticleSystem:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -5393,7 +5393,7 @@ ParticleSystemRenderer:
m_MeshWeighting1: 1 m_MeshWeighting1: 1
m_MeshWeighting2: 1 m_MeshWeighting2: 1
m_MeshWeighting3: 1 m_MeshWeighting3: 1
m_MaskInteraction: 0 m_MaskInteraction: 2
--- !u!198 &230967138 --- !u!198 &230967138
ParticleSystem: ParticleSystem:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -10394,7 +10394,10 @@ MonoBehaviour:
epilogueFitter: {fileID: 780969119} epilogueFitter: {fileID: 780969119}
bg: {fileID: 272774269} bg: {fileID: 272774269}
rankLogo: {fileID: 1569344340} rankLogo: {fileID: 1569344340}
justOk: {fileID: 921777198}
rankAnim: {fileID: 1569344344} rankAnim: {fileID: 1569344344}
okParticles1: {fileID: 136506958}
okParticles2: {fileID: 230967138}
scaler: {fileID: 1200697281} scaler: {fileID: 1200697281}
canvasAnim: {fileID: 1200697284} canvasAnim: {fileID: 1200697284}
--- !u!320 &560605780 --- !u!320 &560605780
@ -11073,7 +11076,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 432, y: 48} m_AnchoredPosition: {x: 512, y: 48}
m_SizeDelta: {x: 632, y: 184} m_SizeDelta: {x: 632, y: 184}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &906704162 --- !u!114 &906704162
@ -11127,6 +11130,143 @@ MonoBehaviour:
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
--- !u!1 &921777196
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 921777197}
- component: {fileID: 921777199}
- component: {fileID: 921777198}
m_Layer: 5
m_Name: JustOk
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &921777197
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 921777196}
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: 1569344341}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: -12, y: 12}
m_SizeDelta: {x: 256, y: 50}
m_Pivot: {x: 0.5, y: 0}
--- !u!114 &921777198
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 921777196}
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: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: ...but, just
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: fa00f193fe038984592034ad7d5c2a42, 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: 28
m_fontSizeBase: 28
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
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: 0
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: 0
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 &921777199
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 921777196}
m_CullTransparentMesh: 1
--- !u!1 &989164489 --- !u!1 &989164489
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -11678,7 +11818,7 @@ GameObject:
- component: {fileID: 1569344342} - component: {fileID: 1569344342}
- component: {fileID: 1569344344} - component: {fileID: 1569344344}
m_Layer: 5 m_Layer: 5
m_Name: JudgementGfxTemp m_Name: JudgementGfx
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -11701,12 +11841,13 @@ RectTransform:
- {fileID: 876844700} - {fileID: 876844700}
- {fileID: 513457787} - {fileID: 513457787}
- {fileID: 1625794068} - {fileID: 1625794068}
- {fileID: 921777197}
m_Father: {fileID: 17428505} m_Father: {fileID: 17428505}
m_RootOrder: 3 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0} m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -312, y: 44} m_AnchoredPosition: {x: -378, y: 44}
m_SizeDelta: {x: 480, y: 180} m_SizeDelta: {x: 480, y: 180}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1569344342 --- !u!114 &1569344342
@ -12219,7 +12360,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!224 &1702256961 --- !u!224 &1702256961
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View file

@ -696,10 +696,6 @@ namespace HeavenStudio
private IEnumerator PlayCo(double beat, float delay = 0f) private IEnumerator PlayCo(double beat, float delay = 0f)
{ {
if (delay > 0)
{
yield return new WaitForSeconds(delay);
}
bool paused = Conductor.instance.isPaused; bool paused = Conductor.instance.isPaused;
if (!paused) if (!paused)
@ -710,6 +706,14 @@ namespace HeavenStudio
SetCurrentEventToClosest(beat); SetCurrentEventToClosest(beat);
KillAllSounds(); KillAllSounds();
if (delay > 0)
{
yield return new WaitForSeconds(delay);
}
}
if (!paused)
{
Minigame miniGame = currentGameO?.GetComponent<Minigame>(); Minigame miniGame = currentGameO?.GetComponent<Minigame>();
if (miniGame != null) if (miniGame != null)
miniGame.OnPlay(beat); miniGame.OnPlay(beat);

View file

@ -341,7 +341,7 @@ namespace HeavenStudio
if (!Screen.fullScreen) if (!Screen.fullScreen)
{ {
// Set the resolution to the display's current resolution // Set the resolution to the display's current resolution
Screen.SetResolution(Display.main.systemWidth, Display.main.systemHeight, FullScreenMode.ExclusiveFullScreen); Screen.SetResolution(Display.main.systemWidth, Display.main.systemHeight, FullScreenMode.FullScreenWindow);
Screen.fullScreen = true; Screen.fullScreen = true;
PersistentDataManager.gameSettings.isFullscreen = true; PersistentDataManager.gameSettings.isFullscreen = true;
} }

View file

@ -16,6 +16,13 @@ namespace HeavenStudio
[RequireComponent(typeof(PlayableDirector), typeof(AudioSource))] [RequireComponent(typeof(PlayableDirector), typeof(AudioSource))]
public class JudgementManager : MonoBehaviour public class JudgementManager : MonoBehaviour
{ {
enum Rank
{
Ng = 0,
Ok = 1,
Hi = 2
}
public enum InputCategory : int public enum InputCategory : int
{ {
Normal = 0, Normal = 0,
@ -96,32 +103,163 @@ namespace HeavenStudio
[SerializeField] GameObject bg; [SerializeField] GameObject bg;
[SerializeField] GameObject rankLogo; [SerializeField] GameObject rankLogo;
[SerializeField] TMP_Text justOk;
[SerializeField] Animator rankAnim; [SerializeField] Animator rankAnim;
[SerializeField] ParticleSystem okParticles1, okParticles2;
[SerializeField] CanvasScaler scaler; [SerializeField] CanvasScaler scaler;
[SerializeField] Animator canvasAnim; [SerializeField] Animator canvasAnim;
AudioSource audioSource; AudioSource audioSource;
bool twoMessage = false, barStarted = false, didRank = false, didEpilogue = false; List<int> usedCategories;
float[] categoryInputs;
double[] categoryScores;
string msg0, msg1, msg2;
float barTime = 0, barStartTime = float.MaxValue; float barTime = 0, barStartTime = float.MaxValue;
Rank rank;
bool twoMessage = false, barStarted = false, didRank = false, didEpilogue = false, subRank = false;
public void PrepareJudgement() public void PrepareJudgement()
{ {
bg.SetActive(false); bg.SetActive(false);
rankLogo.SetActive(false); rankLogo.SetActive(false);
justOk.gameObject.SetActive(false);
subRank = false;
barText.text = "0"; barText.text = "0";
barSlider.value = 0; barSlider.value = 0;
barText.color = numColourNg; barText.color = numColourNg;
barSlider.fillRect.GetComponent<Image>().color = barColourNg; barSlider.fillRect.GetComponent<Image>().color = barColourNg;
// temp string propSuffix = "ng";
twoMessage = false; if (judgementInfo.finalScore < Minigame.rankOkThreshold)
// judgementInfo = new() {
// { rank = Rank.Ng;
// finalScore = 0.79, propSuffix = "ng";
// }; }
else if (judgementInfo.finalScore < Minigame.rankHiThreshold)
{
rank = Rank.Ok;
propSuffix = "ok";
}
else
{
rank = Rank.Hi;
propSuffix = "hi";
}
GetCategoryInfo();
int firstCat = 0, secondCat = 0;
double lastScore = 0;
if (usedCategories.Count == 1)
{
twoMessage = false;
if (playedBeatmap != null)
{
msg0 = playedBeatmap[$"resultcommon_{propSuffix}"];
}
else
{
msg0 = rank switch
{
Rank.Ng => "Try harder next time.",
Rank.Ok => "Eh. Passable.",
_ => "Good rhythm.",
};
}
}
else
{
switch (rank)
{
case Rank.Ok:
// check if any category has a hi score
foreach (int cat in usedCategories)
{
if (categoryScores[cat] > lastScore)
{
lastScore = categoryScores[cat];
firstCat = cat;
}
}
SetOkMessages(firstCat, lastScore);
break;
case Rank.Ng:
// find the first and second worst categories
firstCat = -1;
secondCat = -1;
lastScore = double.MaxValue;
foreach (int cat in usedCategories)
{
if (categoryScores[cat] < lastScore)
{
lastScore = categoryScores[cat];
firstCat = cat;
}
}
lastScore = double.MaxValue;
foreach (int cat in usedCategories)
{
if (cat == firstCat) continue;
if (categoryScores[cat] < lastScore)
{
lastScore = categoryScores[cat];
secondCat = cat;
}
}
// only show one message if only one category fails
twoMessage = categoryScores[secondCat] < Minigame.rankOkThreshold;
if (playedBeatmap != null)
{
msg0 = msg1 = playedBeatmap[$"resultcat{firstCat}_ng"];
msg2 = playedBeatmap[$"resultcat{secondCat}_ng"];
}
else
{
msg0 = msg1 = "Try harder next time.";
msg2 = "Try harder next time.";
}
break;
case Rank.Hi:
// find the first and second best categories
firstCat = -1;
secondCat = -1;
lastScore = 0;
foreach (int cat in usedCategories)
{
if (categoryScores[cat] > lastScore)
{
lastScore = categoryScores[cat];
firstCat = cat;
}
}
lastScore = 0;
foreach (int cat in usedCategories)
{
if (cat == firstCat) continue;
if (categoryScores[cat] > lastScore)
{
lastScore = categoryScores[cat];
secondCat = cat;
}
}
// only show one message if only one category passes
twoMessage = categoryScores[secondCat] >= Minigame.rankHiThreshold;
if (playedBeatmap != null)
{
msg0 = msg1 = playedBeatmap[$"resultcat{firstCat}_hi"];
msg2 = playedBeatmap[$"resultcat{secondCat}_hi"];
}
else
{
msg0 = msg1 = "Good rhythm.";
msg2 = "Good rhythm.";
}
break;
}
}
header.text = playedBeatmap != null ? playedBeatmap["resultcaption"] : "Rhythm League Notes"; header.text = playedBeatmap != null ? playedBeatmap["resultcaption"] : "Rhythm League Notes";
// end temp
if (twoMessage) if (twoMessage)
{ {
@ -139,14 +277,14 @@ namespace HeavenStudio
message0.text = " "; message0.text = " ";
} }
string imagePath = ""; string imagePath;
string imageName = ""; string imageName;
EntityTypes.Resource? imageResource; EntityTypes.Resource? imageResource;
if (judgementInfo.finalScore < Minigame.rankOkThreshold) if (rank == Rank.Ng)
{ {
imageResource = playedBeatmap != null ? playedBeatmap["epilogue_ng_res"] : null; imageResource = playedBeatmap != null ? playedBeatmap["epilogue_ng_res"] : null;
} }
else if (judgementInfo.finalScore < Minigame.rankHiThreshold) else if (rank == Rank.Ok)
{ {
imageResource = playedBeatmap != null ? playedBeatmap["epilogue_ok_res"] : null; imageResource = playedBeatmap != null ? playedBeatmap["epilogue_ok_res"] : null;
} }
@ -174,6 +312,71 @@ namespace HeavenStudio
} }
} }
void SetOkMessages(int cat, double score)
{
twoMessage = false;
if (score >= Minigame.rankHiThreshold)
{
// just OK
subRank = true;
if (playedBeatmap != null)
{
msg0 = playedBeatmap[$"resultcat{cat}_hi"];
}
else
{
msg0 = "Good rhythm.";
}
}
else
{
if (playedBeatmap != null)
{
msg0 = playedBeatmap[$"resultcommon_ok"];
}
else
{
msg0 = "Eh. Passable.";
}
}
}
void GetCategoryInfo()
{
int maxCat = 0;
usedCategories = new();
if (playedBeatmap == null || playedBeatmap.data.beatmapSections.Count == 0)
{
usedCategories.Add(0);
return;
}
foreach (var section in playedBeatmap.data.beatmapSections)
{
int cat = section["category"];
if (!usedCategories.Contains(cat))
{
usedCategories.Add(cat);
maxCat = Mathf.Max(maxCat, cat);
}
}
usedCategories.Sort();
categoryInputs = new float[maxCat + 1];
categoryScores = new double[maxCat + 1];
foreach (var input in judgementInfo.inputs)
{
categoryInputs[input.category] += input.weight;
categoryScores[input.category] += input.accuracyState * input.weight;
}
for (int i = 0; i < categoryScores.Length; i++)
{
if (categoryInputs[i] > 0)
{
categoryScores[i] /= categoryInputs[i];
}
}
}
IEnumerator LoadImage(string path) IEnumerator LoadImage(string path)
{ {
UnityWebRequest www = UnityWebRequestTexture.GetTexture("file://" + path); UnityWebRequest www = UnityWebRequestTexture.GetTexture("file://" + path);
@ -198,18 +401,7 @@ namespace HeavenStudio
{ {
if (twoMessage) return; if (twoMessage) return;
audioSource.PlayOneShot(messageLast); audioSource.PlayOneShot(messageLast);
if (judgementInfo.finalScore < Minigame.rankOkThreshold) message0.text = msg0;
{
message0.text = playedBeatmap != null ? playedBeatmap["resultcommon_ng"] : "Try harder next time.";
}
else if (judgementInfo.finalScore < Minigame.rankHiThreshold)
{
message0.text = playedBeatmap != null ? playedBeatmap["resultcommon_ok"] : "Eh. Passable.";
}
else
{
message0.text = playedBeatmap != null ? playedBeatmap["resultcommon_hi"] : "Good rhythm.";
}
} }
public void ShowMessage1() public void ShowMessage1()
@ -217,7 +409,7 @@ namespace HeavenStudio
if (!twoMessage) return; if (!twoMessage) return;
audioSource.PlayOneShot(messageMid); audioSource.PlayOneShot(messageMid);
// message1.text = "message line 1"; // message1.text = "message line 1";
message1.text = "skill issue"; message1.text = msg1;
} }
public void ShowMessage2() public void ShowMessage2()
@ -225,7 +417,7 @@ namespace HeavenStudio
if (!twoMessage) return; if (!twoMessage) return;
audioSource.PlayOneShot(messageLast); audioSource.PlayOneShot(messageLast);
// message2.text = "message line 2"; // message2.text = "message line 2";
message2.text = "lmao lmao"; message2.text = "Also..." + msg2;
} }
public void StartBar() public void StartBar()
@ -243,14 +435,19 @@ namespace HeavenStudio
{ {
rankLogo.SetActive(true); rankLogo.SetActive(true);
bg.SetActive(true); bg.SetActive(true);
if (judgementInfo.finalScore < Minigame.rankOkThreshold) if (rank == Rank.Ng)
{ {
rankAnim.Play("Ng"); rankAnim.Play("Ng");
audioSource.PlayOneShot(rankNg); audioSource.PlayOneShot(rankNg);
} }
else if (judgementInfo.finalScore < Minigame.rankHiThreshold) else if (rank == Rank.Ok)
{ {
rankAnim.Play("Ok"); rankAnim.Play("Ok");
if (subRank)
{
justOk.gameObject.SetActive(true);
justOk.text = "...but, just";
}
audioSource.PlayOneShot(rankOk); audioSource.PlayOneShot(rankOk);
} }
else else
@ -262,14 +459,14 @@ namespace HeavenStudio
public void StartRankMusic() public void StartRankMusic()
{ {
if (judgementInfo.finalScore < Minigame.rankOkThreshold) if (rank == Rank.Ng)
{ {
audioSource.PlayOneShot(musNgStart); audioSource.PlayOneShot(musNgStart);
audioSource.clip = musNg; audioSource.clip = musNg;
audioSource.loop = true; audioSource.loop = true;
audioSource.PlayScheduled(AudioSettings.dspTime + musNgStart.length); audioSource.PlayScheduled(AudioSettings.dspTime + musNgStart.length);
} }
else if (judgementInfo.finalScore < Minigame.rankHiThreshold) else if (rank == Rank.Ok)
{ {
audioSource.PlayOneShot(musOkStart); audioSource.PlayOneShot(musOkStart);
audioSource.clip = musOk; audioSource.clip = musOk;
@ -311,14 +508,16 @@ namespace HeavenStudio
if (didRank && !didEpilogue) if (didRank && !didEpilogue)
{ {
// start the sequence for epilogue // start the sequence for epilogue
okParticles1.Stop();
okParticles2.Stop();
canvasAnim.Play("EpilogueOpen"); canvasAnim.Play("EpilogueOpen");
audioSource.Stop(); audioSource.Stop();
if (judgementInfo.finalScore < Minigame.rankOkThreshold) if (rank == Rank.Ng)
{ {
epilogueMessage.text = playedBeatmap != null ? playedBeatmap["epilogue_ng"] : "Try Again picture"; epilogueMessage.text = playedBeatmap != null ? playedBeatmap["epilogue_ng"] : "Try Again picture";
audioSource.PlayOneShot(jglNg); audioSource.PlayOneShot(jglNg);
} }
else if (judgementInfo.finalScore < Minigame.rankHiThreshold) else if (rank == Rank.Ok)
{ {
epilogueMessage.text = playedBeatmap != null ? playedBeatmap["epilogue_ok"] : "OK picture"; epilogueMessage.text = playedBeatmap != null ? playedBeatmap["epilogue_ok"] : "OK picture";
audioSource.PlayOneShot(jglOk); audioSource.PlayOneShot(jglOk);
@ -352,12 +551,12 @@ namespace HeavenStudio
barText.text = ((int)(judgementInfo.finalScore * 100)).ToString(); barText.text = ((int)(judgementInfo.finalScore * 100)).ToString();
barSlider.value = (float)judgementInfo.finalScore; barSlider.value = (float)judgementInfo.finalScore;
if (judgementInfo.finalScore < Minigame.rankOkThreshold) if (rank == Rank.Ng)
{ {
barText.color = numColourNg; barText.color = numColourNg;
barSlider.fillRect.GetComponent<Image>().color = barColourNg; barSlider.fillRect.GetComponent<Image>().color = barColourNg;
} }
else if (judgementInfo.finalScore < Minigame.rankHiThreshold) else if (rank == Rank.Ok)
{ {
barText.color = numColourOk; barText.color = numColourOk;
barSlider.fillRect.GetComponent<Image>().color = barColourOk; barSlider.fillRect.GetComponent<Image>().color = barColourOk;

View file

@ -41,17 +41,11 @@ namespace HeavenStudio.Editor
} }
); );
inputField.onSelect.AddListener(
_ =>
Editor.instance.editingInputField = true
);
inputField.onEndEdit.AddListener( inputField.onEndEdit.AddListener(
_ => _ =>
{ {
slider.value = Convert.ToSingle(inputField.text); slider.value = Convert.ToSingle(inputField.text);
parameterManager.chart[propertyName] = (int) slider.value; parameterManager.chart[propertyName] = (int) slider.value;
Editor.instance.editingInputField = false;
} }
); );
break; break;
@ -72,17 +66,11 @@ namespace HeavenStudio.Editor
} }
); );
inputField.onSelect.AddListener(
_ =>
Editor.instance.editingInputField = true
);
inputField.onEndEdit.AddListener( inputField.onEndEdit.AddListener(
_ => _ =>
{ {
slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4); slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4);
parameterManager.chart[propertyName] = slider.value; parameterManager.chart[propertyName] = slider.value;
Editor.instance.editingInputField = false;
} }
); );
break; break;

View file

@ -36,6 +36,8 @@ namespace HeavenStudio.Editor
Sprite[] rankImages; Sprite[] rankImages;
bool initHooks; bool initHooks;
int currentEditingCat = -1;
List<int> usedCategories;
RemixPropertiesDialog diag; RemixPropertiesDialog diag;
Ranks currentEditingRank; Ranks currentEditingRank;
@ -45,27 +47,28 @@ namespace HeavenStudio.Editor
currentEditingRank = Ranks.Ok; currentEditingRank = Ranks.Ok;
rankImages = new Sprite[3]; rankImages = new Sprite[3];
diag.StartCoroutine(LoadRankImages()); diag.StartCoroutine(LoadRankImages());
UpdateInfo(); GetUsedCategories();
if (!initHooks) if (!initHooks)
{ {
initHooks = true; initHooks = true;
headerInput.onSelect.AddListener(
_ => for (int i = 0; i < catButtons.Length; i++)
Editor.instance.editingInputField = true {
); int cat = i;
catButtons[i].onClick.AddListener(() =>
{
SetCatEditing(cat);
});
}
headerInput.onValueChanged.AddListener( headerInput.onValueChanged.AddListener(
_ => _ =>
{ {
diag.chart["resultcaption"] = headerInput.text; diag.chart["resultcaption"] = headerInput.text;
Editor.instance.editingInputField = false;
} }
); );
epilogueInput.onSelect.AddListener(
_ =>
Editor.instance.editingInputField = true
);
epilogueInput.onValueChanged.AddListener( epilogueInput.onValueChanged.AddListener(
_ => _ =>
{ {
@ -76,16 +79,14 @@ namespace HeavenStudio.Editor
_ => "ok", _ => "ok",
}; };
diag.chart["epilogue_" + propSuffix] = epilogueInput.text; diag.chart["epilogue_" + propSuffix] = epilogueInput.text;
Editor.instance.editingInputField = false;
} }
); );
messageInput.onSelect.AddListener(
_ =>
Editor.instance.editingInputField = true
);
messageInput.onValueChanged.AddListener(DoMessageInput); messageInput.onValueChanged.AddListener(DoMessageInput);
} }
UpdateInfo();
SetCatEditing(usedCategories[0]);
} }
void UpdateInfo() void UpdateInfo()
@ -103,9 +104,7 @@ namespace HeavenStudio.Editor
_ => "ok", _ => "ok",
}; };
epilogueInput.text = (string)diag.chart["epilogue_" + propSuffix]; epilogueInput.text = (string)diag.chart["epilogue_" + propSuffix];
SetCatEditing(currentEditingCat);
//todo: check categories
messageInput.text = (string)diag.chart["resultcommon_" + propSuffix];
} }
void DoMessageInput(string _) void DoMessageInput(string _)
@ -116,8 +115,72 @@ namespace HeavenStudio.Editor
Ranks.Hi => "hi", Ranks.Hi => "hi",
_ => "ok", _ => "ok",
}; };
diag.chart["resultcommon_" + propSuffix] = messageInput.text;
Editor.instance.editingInputField = false; if (usedCategories.Count == 1)
{
diag.chart["resultcommon_" + propSuffix] = messageInput.text;
}
else
{
diag.chart["resultcat" + currentEditingCat + "_" + propSuffix] = messageInput.text;
}
}
void SetCatEditing(int cat)
{
string propSuffix = currentEditingRank switch
{
Ranks.Ng => "ng",
Ranks.Hi => "hi",
_ => "ok",
};
cat = Mathf.Clamp(cat, 0, catButtons.Length - 1);
if (usedCategories.Count == 1 || currentEditingRank == Ranks.Ok)
{
currentEditingCat = usedCategories[0];
for (int i = 0; i < catButtons.Length; i++)
{
catButtons[i].gameObject.SetActive(false);
}
messageInput.text = (string)diag.chart["resultcommon_" + propSuffix];
}
else
{
currentEditingCat = cat;
for (int i = 0; i < catButtons.Length; i++)
{
catButtons[i].gameObject.SetActive(usedCategories.Contains(i));
if (i == currentEditingCat)
catButtons[i].GetComponent<Image>().sprite = catSprites[i];
else
catButtons[i].GetComponent<Image>().sprite = catOff;
}
messageInput.text = (string)diag.chart["resultcat" + currentEditingCat + "_" + propSuffix];
}
}
void GetUsedCategories()
{
RiqBeatmap chart = diag.chart;
usedCategories = new();
if (chart.data.beatmapSections.Count == 0)
{
usedCategories.Add(0);
return;
}
foreach (var section in chart.data.beatmapSections)
{
int cat = section["category"];
if (!usedCategories.Contains(cat))
{
usedCategories.Add(cat);
}
}
usedCategories.Sort();
} }
public void GoPrevRank() public void GoPrevRank()

View file

@ -24,15 +24,10 @@ namespace HeavenStudio.Editor
inputFieldString.text = (string) parameterManager.chart[propertyName]; inputFieldString.text = (string) parameterManager.chart[propertyName];
inputFieldString.onSelect.AddListener(
_ =>
Editor.instance.editingInputField = true
);
inputFieldString.onValueChanged.AddListener( inputFieldString.onValueChanged.AddListener(
_ => _ =>
{; {;
parameterManager.chart[propertyName] = inputFieldString.text; parameterManager.chart[propertyName] = inputFieldString.text;
Editor.instance.editingInputField = false;
} }
); );
} }

View file

@ -47,6 +47,7 @@ namespace HeavenStudio.Editor
{ {
Editor.instance.canSelect = true; Editor.instance.canSelect = true;
Editor.instance.inAuthorativeMenu = false; Editor.instance.inAuthorativeMenu = false;
Editor.instance.editingInputField = false;
dialog.SetActive(false); dialog.SetActive(false);
tabsManager.CleanTabs(); tabsManager.CleanTabs();
@ -57,6 +58,7 @@ namespace HeavenStudio.Editor
ResetAllDialogs(); ResetAllDialogs();
Editor.instance.canSelect = false; Editor.instance.canSelect = false;
Editor.instance.inAuthorativeMenu = true; Editor.instance.inAuthorativeMenu = true;
Editor.instance.editingInputField = true;
dialog.SetActive(true); dialog.SetActive(true);
chart = GameManager.instance.Beatmap; chart = GameManager.instance.Beatmap;

View file

@ -399,6 +399,7 @@ namespace HeavenStudio.Editor.Track
foreach (var rect in GameObject.FindGameObjectsWithTag("BlocksEditor")) foreach (var rect in GameObject.FindGameObjectsWithTag("BlocksEditor"))
{ {
if (!rect.activeInHierarchy) continue;
if (rect.TryGetComponent(out RectTransform rectTransform)) if (rect.TryGetComponent(out RectTransform rectTransform))
{ {
if (RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Camera.main)) if (RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Camera.main))