Advanced Blocks (#720)

* play sfx and play animation blocks

i also changed prescheduleFunction to preFunction, and removed the unused preFunction argument in GameAction
i can revert this if need be but it just seemed vestigial

* count in rework + preloading, multisound addition

multisound was using an array that was converted to a list..?
very silly when you consider it's a list first so sometimes it's list -> array -> list lol

new Count-In and Play SFX block preloads sfx now!! epic.

* prefab-ify event properties, Button EntityType

* things are very nearly working!

however i just hit an insane hurdle. how do i modify a dropdown while still being able to access the index/int value of that param directly. UGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

* okay it's WORKING now

i just need to do some better dropdown stuff

* ITS WORKING ITS WORKING ITS WORKING

arbitrary animations, now accessible to those without prefab knowledge! and it's piss easy to use!!

* about to make a struct + class, tooltip improvements

gonna make the struct define it, then the class will actually be the dropdown
this is gonna make things so so so so much easier to comprehend

* finishing up, probably one more commit after this

* split up Dropdown into Dropdown and DropdownObj, which basically fixed all of my problems lol
* fixed a count bug
* added param tooltip toggle

* grah it's ALMOST DONE

* it's 99.9% finished.

just some touch ups, i don't think i even know of any bugs

* alright, looks like that's all the bugs gone

* EVERYTHING IS FINISHED!!
This commit is contained in:
AstrlJelly 2024-02-25 20:46:23 -05:00 committed by GitHub
parent 8dde3b8278
commit ec78a150a7
43 changed files with 7877 additions and 6212 deletions

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a79ff605eee949d4fb3db853e4e25490
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,465 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &161819469546819110
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819469546819109}
- component: {fileID: 161819469546819108}
m_Layer: 5
m_Name: Boolean
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &161819469546819109
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469546819110}
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: 161819469598736650}
- {fileID: 161819470580724529}
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}
m_AnchoredPosition: {x: 459.58514, y: -105}
m_SizeDelta: {x: 879.1703, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &161819469546819108
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469546819110}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9aa690f14ccbf9e4bb6bd339d500c3e7, type: 3}
m_Name:
m_EditorClassIdentifier:
caption: {fileID: 161819469598736649}
parameterManager: {fileID: 0}
propertyName:
toggle: {fileID: 161819470580724528}
--- !u!1 &161819469598736651
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819469598736650}
- component: {fileID: 161819469598736648}
- component: {fileID: 161819469598736649}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &161819469598736650
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469598736651}
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: 161819469546819109}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 215, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &161819469598736648
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469598736651}
m_CullTransparentMesh: 1
--- !u!114 &161819469598736649
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469598736651}
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Boolean
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2}
m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, 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: 25
m_fontSizeBase: 20
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 3
m_fontSizeMax: 25
m_fontStyle: 0
m_HorizontalAlignment: 1
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: 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: 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!1 &161819469616376894
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819469616376893}
- component: {fileID: 161819469616376891}
- component: {fileID: 161819469616376892}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &161819469616376893
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469616376894}
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: 161819469800340446}
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}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &161819469616376891
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469616376894}
m_CullTransparentMesh: 1
--- !u!114 &161819469616376892
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469616376894}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 0
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!1 &161819469800340447
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819469800340446}
- component: {fileID: 161819469800340444}
- component: {fileID: 161819469800340445}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &161819469800340446
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469800340447}
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: 161819469616376893}
m_Father: {fileID: 161819470580724529}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10, y: -10}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &161819469800340444
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469800340447}
m_CullTransparentMesh: 1
--- !u!114 &161819469800340445
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469800340447}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 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!1 &161819470580724530
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819470580724529}
- component: {fileID: 161819470580724528}
- component: {fileID: 161819470580724543}
m_Layer: 5
m_Name: Toggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &161819470580724529
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819470580724530}
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: 161819469800340446}
m_Father: {fileID: 161819469546819109}
m_RootOrder: 1
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: 215, y: -0.000015258789}
m_SizeDelta: {x: 160, y: 20}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &161819470580724528
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819470580724530}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
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: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 161819469800340445}
toggleTransition: 1
graphic: {fileID: 161819469616376892}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_IsOn: 1
--- !u!114 &161819470580724543
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819470580724530}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e4972b7ea15fb7943ad12ed39e229140, type: 3}
m_Name:
m_EditorClassIdentifier:
_events:
- name: Reset
action:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 161819469546819108}
m_TargetAssemblyTypeName: HeavenStudio.Editor.BoolPropertyPrefab, Assembly-CSharp
m_MethodName: ResetValue
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_masterTrans: {fileID: 0}
_dropDown: {fileID: 8384641343036272350, guid: 56a45ac5cd0da2a4ab398d1a63e18d9f, type: 3}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a105c1177b918bc4ab70c00bde16f626
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,512 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &161819469546819110
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819469546819109}
- component: {fileID: 1052898068547679516}
- component: {fileID: 1492239408036616687}
m_Layer: 5
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &161819469546819109
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469546819110}
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: 161819469598736650}
- {fileID: 1122443659071379076}
m_Father: {fileID: 0}
m_RootOrder: 0
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: 459.58514, y: 435}
m_SizeDelta: {x: 879.1703, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1052898068547679516
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469546819110}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7891bc13f0b17734e9a197bf22818300, type: 3}
m_Name:
m_EditorClassIdentifier:
caption: {fileID: 161819469598736649}
parameterManager: {fileID: 0}
propertyName:
minButtonSize: 100
buttonTextRect: {fileID: 1122443660375095479}
buttonRect: {fileID: 1122443659071379076}
buttonText: {fileID: 1122443660375095464}
--- !u!114 &1492239408036616687
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469546819110}
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: 3
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &161819469598736651
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 161819469598736650}
- component: {fileID: 161819469598736648}
- component: {fileID: 161819469598736649}
m_Layer: 5
m_Name: Caption
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &161819469598736650
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469598736651}
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: 161819469546819109}
m_RootOrder: 0
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: 175, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &161819469598736648
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469598736651}
m_CullTransparentMesh: 1
--- !u!114 &161819469598736649
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 161819469598736651}
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Button
'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2}
m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, 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: 25
m_fontSizeBase: 20
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 3
m_fontSizeMax: 25
m_fontStyle: 0
m_HorizontalAlignment: 1
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: 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: 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!1 &1122443659071379075
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1122443659071379076}
- component: {fileID: 1122443659071379079}
- component: {fileID: 1122443659071379078}
- component: {fileID: 1122443659071379077}
m_Layer: 5
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1122443659071379076
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443659071379075}
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: 1122443660375095479}
m_Father: {fileID: 161819469546819109}
m_RootOrder: 1
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: 213.47, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1122443659071379079
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443659071379075}
m_CullTransparentMesh: 1
--- !u!114 &1122443659071379078
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443659071379075}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 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!114 &1122443659071379077
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443659071379075}
m_Enabled: 1
m_EditorHideFlags: 0
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}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
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: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1122443659071379078}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1052898068547679516}
m_TargetAssemblyTypeName: HeavenStudio.Editor.ButtonPropertyPrefab, Assembly-CSharp
m_MethodName: OnClick
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &1122443660375095478
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1122443660375095479}
- component: {fileID: 1122443660375095465}
- component: {fileID: 1122443660375095464}
- component: {fileID: 1641598248478253416}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1122443660375095479
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443660375095478}
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: 1122443659071379076}
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}
m_AnchoredPosition: {x: -0.2649994, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1122443660375095465
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443660375095478}
m_CullTransparentMesh: 1
--- !u!114 &1122443660375095464
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443660375095478}
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: AWWWW :3 BWWWW
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: c2df694f599b22b42817910ff570a9df, type: 2}
m_sharedMaterial: {fileID: -5829441969153149921, guid: c2df694f599b22b42817910ff570a9df, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 0
m_fontColorGradient:
topLeft: {r: 0.6792453, g: 0.061943684, b: 0.061943684, a: 1}
topRight: {r: 0.6792453, g: 0.061943684, b: 0.061943684, a: 1}
bottomLeft: {r: 0.6792453, g: 0.061943684, b: 0.061943684, a: 1}
bottomRight: {r: 0.6792453, g: 0.061943684, b: 0.061943684, 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: 20
m_fontSizeBase: 20
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: 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: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 10, y: 0, z: 10, 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!114 &1641598248478253416
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1122443660375095478}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 0

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 950cb35d8fa268649aa7dd8f2eee60ad
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5ea2e04e4ea2f3a46bae219cfd0fceab
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d001cda1595359b4994b07211f2bc938
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 59791cf2ac17a4e4989da45598fa57dc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fe16d477643f72b44b519c07a3012363
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,596 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2205512538931500438
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2205512538931500439}
- component: {fileID: 2205512538931500440}
m_Layer: 5
m_Name: String
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2205512538931500439
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512538931500438}
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: 2205512539843875685}
- {fileID: 2205512539034658519}
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}
m_AnchoredPosition: {x: 459.58514, y: -235}
m_SizeDelta: {x: 879.1703, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2205512538931500440
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512538931500438}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c01fcc0bb14adee46a4869c1c009850e, type: 3}
m_Name:
m_EditorClassIdentifier:
caption: {fileID: 2205512539843875686}
parameterManager: {fileID: 0}
propertyName:
inputFieldString: {fileID: 2205512539034658520}
--- !u!1 &2205512539034658518
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2205512539034658519}
- component: {fileID: 2205512539034658522}
- component: {fileID: 2205512539034658521}
- component: {fileID: 2205512539034658520}
- component: {fileID: 2205512539034658523}
m_Layer: 5
m_Name: InputField (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2205512539034658519
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539034658518}
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: 2205512540549441180}
m_Father: {fileID: 2205512538931500439}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 175, y: 0}
m_SizeDelta: {x: -175, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &2205512539034658522
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539034658518}
m_CullTransparentMesh: 1
--- !u!114 &2205512539034658521
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539034658518}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 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!114 &2205512539034658520
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539034658518}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
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: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 2205512539034658521}
m_TextViewport: {fileID: 2205512540549441180}
m_TextComponent: {fileID: 2205512540570635569}
m_Placeholder: {fileID: 0}
m_VerticalScrollbar: {fileID: 0}
m_VerticalScrollbarEventHandler: {fileID: 0}
m_LayoutGroup: {fileID: 0}
m_ScrollSensitivity: 1
m_ContentType: 0
m_InputType: 0
m_AsteriskChar: 42
m_KeyboardType: 0
m_LineType: 2
m_HideMobileInput: 0
m_HideSoftKeyboard: 0
m_CharacterValidation: 0
m_RegexValue:
m_GlobalPointSize: 13
m_CharacterLimit: 0
m_OnEndEdit:
m_PersistentCalls:
m_Calls: []
m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnSelect:
m_PersistentCalls:
m_Calls: []
m_OnDeselect:
m_PersistentCalls:
m_Calls: []
m_OnTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnEndTextSelection:
m_PersistentCalls:
m_Calls: []
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
m_OnTouchScreenKeyboardStatusChanged:
m_PersistentCalls:
m_Calls: []
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_CustomCaretColor: 0
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
m_Text: AWWWWWWW BWWWWWWW
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_RichText: 0
m_GlobalFontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, 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 &2205512539034658523
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539034658518}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e4972b7ea15fb7943ad12ed39e229140, type: 3}
m_Name:
m_EditorClassIdentifier:
_events:
- name: Reset
action:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2205512538931500440}
m_TargetAssemblyTypeName: HeavenStudio.Editor.StringPropertyPrefab, Assembly-CSharp
m_MethodName: ResetValue
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_masterTrans: {fileID: 0}
_dropDown: {fileID: 8384641343036272350, guid: 56a45ac5cd0da2a4ab398d1a63e18d9f, type: 3}
--- !u!1 &2205512539843875684
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2205512539843875685}
- component: {fileID: 2205512539843875687}
- component: {fileID: 2205512539843875686}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2205512539843875685
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539843875684}
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: 2205512538931500439}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 175, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &2205512539843875687
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539843875684}
m_CullTransparentMesh: 1
--- !u!114 &2205512539843875686
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512539843875684}
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'String
'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2}
m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, 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: 25
m_fontSizeBase: 20
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 3
m_fontSizeMax: 25
m_fontStyle: 0
m_HorizontalAlignment: 1
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: 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: 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!1 &2205512540549441179
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2205512540549441180}
- component: {fileID: 2205512540549441181}
m_Layer: 5
m_Name: Text Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2205512540549441180
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512540549441179}
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: 2205512540570635568}
m_Father: {fileID: 2205512539034658519}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.4999771}
m_SizeDelta: {x: -20, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2205512540549441181
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512540549441179}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0}
--- !u!1 &2205512540570635599
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2205512540570635568}
- component: {fileID: 2205512540570635570}
- component: {fileID: 2205512540570635569}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2205512540570635568
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512540570635599}
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: 2205512540549441180}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2205512540570635570
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512540570635599}
m_CullTransparentMesh: 1
--- !u!114 &2205512540570635569
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2205512540570635599}
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: "AWWWWWWW BWWWWWWW\u200B"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2}
m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 13
m_fontSizeBase: 13
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
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: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 1
checkPaddingRequired: 0
m_isRichText: 0
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}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 37ba8efc4add71b4fbc3451317c88c6b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -408,6 +408,83 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &863162242872348953
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 70218190515061869}
- component: {fileID: 2397546323903246789}
- component: {fileID: 270583393365375632}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &70218190515061869
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 863162242872348953}
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: 3626854700525452482}
m_Father: {fileID: 3713617371011422720}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2397546323903246789
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 863162242872348953}
m_CullTransparentMesh: 1
--- !u!114 &270583393365375632
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 863162242872348953}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 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!1 &1684521149580031745 --- !u!1 &1684521149580031745
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -686,6 +763,82 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3224038483302325344
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3626854700525452482}
- component: {fileID: 39173384694347793}
- component: {fileID: 4934875251544913604}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3626854700525452482
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3224038483302325344}
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: 70218190515061869}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &39173384694347793
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3224038483302325344}
m_CullTransparentMesh: 1
--- !u!114 &4934875251544913604
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3224038483302325344}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 0
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!1 &3395407686526024338 --- !u!1 &3395407686526024338
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -961,6 +1114,104 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4351615617897515619
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3713617371011422720}
- component: {fileID: 6555551389195548591}
m_Layer: 5
m_Name: Toggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3713617371011422720
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4351615617897515619}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0001401, y: 1.0001401, z: 1.0001401}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 70218190515061869}
m_Father: {fileID: 9050564098627936470}
m_RootOrder: 1
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: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6555551389195548591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4351615617897515619}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, 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}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
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: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 270583393365375632}
toggleTransition: 1
graphic: {fileID: 4934875251544913604}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 9208581106079180837}
m_TargetAssemblyTypeName: HeavenStudio.Editor.EditorSettings, Assembly-CSharp
m_MethodName: OnParamTooltipsChanged
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_IsOn: 0
--- !u!1 &4483555756327182171 --- !u!1 &4483555756327182171
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1095,6 +1346,143 @@ MonoBehaviour:
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
--- !u!1 &5329154389827118254
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6260773680724321646}
- component: {fileID: 3785242586769301177}
- component: {fileID: 2185037685709737411}
m_Layer: 5
m_Name: NobodyKnowsAboutTooltips
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6260773680724321646
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5329154389827118254}
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: 6759422526285834496}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -42}
m_SizeDelta: {x: 320, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &3785242586769301177
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5329154389827118254}
m_CullTransparentMesh: 1
--- !u!114 &2185037685709737411
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5329154389827118254}
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: (Tooltips are also shown in the bottom left!)
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 3372220415
m_fontColor: {r: 1, g: 1, b: 1, a: 0.78431374}
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: 16
m_fontSizeBase: 16
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 3
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
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: 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: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: -32.879974, 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!1 &5433741745970652310 --- !u!1 &5433741745970652310
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1171,6 +1559,146 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &5932184449535986015
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6759422526285834496}
- component: {fileID: 5675444074515228774}
- component: {fileID: 5450885653198953858}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6759422526285834496
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932184449535986015}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6260773680724321646}
m_Father: {fileID: 9050564098627936470}
m_RootOrder: 0
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: 376, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &5675444074515228774
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932184449535986015}
m_CullTransparentMesh: 1
--- !u!114 &5450885653198953858
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5932184449535986015}
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: 'Show Param Tooltips
'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, 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: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 3
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
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: 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: 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!1 &6125627487853319211 --- !u!1 &6125627487853319211
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1556,6 +2084,71 @@ MonoBehaviour:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_IsOn: 0 m_IsOn: 0
--- !u!1 &7300495050280150307
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9050564098627936470}
- component: {fileID: 7071483942832213879}
m_Layer: 5
m_Name: ParamTooltips
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9050564098627936470
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7300495050280150307}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.99994, y: 0.99994, z: 0.99994}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6759422526285834496}
- {fileID: 3713617371011422720}
m_Father: {fileID: 9208581106298752703}
m_RootOrder: 4
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: 1165, y: 72}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &7071483942832213879
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7300495050280150307}
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: 10
m_Bottom: 10
m_ChildAlignment: 0
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &7720499959914799361 --- !u!1 &7720499959914799361
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2041,6 +2634,7 @@ MonoBehaviour:
editorScaleDecre: {fileID: 6127870905162584076} editorScaleDecre: {fileID: 6127870905162584076}
editorScaleIncre: {fileID: 383095155661938755} editorScaleIncre: {fileID: 383095155661938755}
scaleWSS: {fileID: 1122327647812458447} scaleWSS: {fileID: 1122327647812458447}
paramTooltipsToggle: {fileID: 6555551389195548591}
--- !u!1 &9208581106298752702 --- !u!1 &9208581106298752702
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2075,6 +2669,7 @@ RectTransform:
- {fileID: 14539832792667216} - {fileID: 14539832792667216}
- {fileID: 6652101627242449918} - {fileID: 6652101627242449918}
- {fileID: 3382107506031419457} - {fileID: 3382107506031419457}
- {fileID: 9050564098627936470}
m_Father: {fileID: 9208581106987031240} m_Father: {fileID: 9208581106987031240}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View file

@ -889,10 +889,10 @@ RectTransform:
m_Father: {fileID: 5256356839309956323} m_Father: {fileID: 5256356839309956323}
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: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 291, y: -30} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 566, y: 50} m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &519242634654431636 --- !u!1 &519242634654431636
GameObject: GameObject:
@ -1547,10 +1547,10 @@ RectTransform:
m_Father: {fileID: 5256356839309956323} m_Father: {fileID: 5256356839309956323}
m_RootOrder: 5 m_RootOrder: 5
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: 291, y: -130} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 566, y: 50} m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &922889753386770700 --- !u!222 &922889753386770700
CanvasRenderer: CanvasRenderer:
@ -1786,9 +1786,9 @@ RectTransform:
m_Father: {fileID: 2767567597670246615} m_Father: {fileID: 2767567597670246615}
m_RootOrder: 4 m_RootOrder: 4
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: 548, y: -25} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 48, y: 48} m_SizeDelta: {x: 48, y: 48}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!222 &3651870985898615951 --- !u!222 &3651870985898615951
@ -2571,8 +2571,8 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 5724386541704624271} m_TargetGraphic: {fileID: 5724386541704624271}
m_HandleRect: {fileID: 1751651485190533021} m_HandleRect: {fileID: 1751651485190533021}
m_Direction: 2 m_Direction: 2
m_Value: 0 m_Value: 1
m_Size: 1 m_Size: 0.9369128
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
@ -4892,10 +4892,10 @@ RectTransform:
m_Father: {fileID: 5256356839309956323} m_Father: {fileID: 5256356839309956323}
m_RootOrder: 4 m_RootOrder: 4
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: 291, y: -80} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 566, y: 50} m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3713167126177139283 --- !u!222 &3713167126177139283
CanvasRenderer: CanvasRenderer:
@ -4940,9 +4940,9 @@ RectTransform:
m_Father: {fileID: 2767567597670246615} m_Father: {fileID: 2767567597670246615}
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: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 466, y: -25} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 48, y: 48} m_SizeDelta: {x: 48, y: 48}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!222 &935689930248897750 --- !u!222 &935689930248897750
@ -6790,10 +6790,10 @@ RectTransform:
m_Father: {fileID: 5256356839309956323} m_Father: {fileID: 5256356839309956323}
m_RootOrder: 7 m_RootOrder: 7
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: 291, y: -230} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 566, y: 50} m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9010809872578740536 --- !u!222 &9010809872578740536
CanvasRenderer: CanvasRenderer:
@ -10573,9 +10573,9 @@ RectTransform:
m_Father: {fileID: 2767567597670246615} m_Father: {fileID: 2767567597670246615}
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: 192, y: -25} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 384, y: 48} m_SizeDelta: {x: 384, y: 48}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3760793126016089696 --- !u!222 &3760793126016089696
@ -14092,10 +14092,10 @@ RectTransform:
m_Father: {fileID: 5256356839309956323} m_Father: {fileID: 5256356839309956323}
m_RootOrder: 6 m_RootOrder: 6
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: 291, y: -180} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 566, y: 50} m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8096023217859052254 --- !u!222 &8096023217859052254
CanvasRenderer: CanvasRenderer:

View file

@ -0,0 +1,123 @@
fileFormatVersion: 2
guid: 5e8d7a42a8188ef42b113cab198f5aaa
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 1
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 8
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
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: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,123 @@
fileFormatVersion: 2
guid: b497c224147c3654f93eeb5c0482ace6
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 1
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 8
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
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: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -620,6 +620,31 @@ namespace HeavenStudio
} }
} }
public static void PlaySFXArbitrary(double beat, float length, string game, string name, float pitch, float volume, bool looping, int offset)
{
if (string.IsNullOrEmpty(name)) return;
Sound sound;
if (game == "common") {
sound = SoundByte.PlayOneShot(name, beat, pitch, volume, looping, null, (offset / 1000f));
} else {
SoundByte.PreloadGameAudioClips(game);
sound = SoundByte.PlayOneShotGame(game + "/" + name, beat, pitch, volume, looping, true, (offset / 1000f));
}
if (looping) {
BeatAction.New(null, new() {
new(beat + length, () => sound.KillLoop(0)),
});
}
}
public void PlayAnimationArbitrary(string animator, string animation, float scale)
{
Transform animTrans = minigameObj.transform.Find(animator);
if (animTrans != null && animTrans.TryGetComponent(out Animator anim)) {
anim.DoScaledAnimationAsync(animation, scale);
}
}
public void ToggleInputs(bool inputs) public void ToggleInputs(bool inputs)
{ {
canInput = inputs; canInput = inputs;

View file

@ -8,67 +8,73 @@ namespace HeavenStudio.Games
{ {
public class SoundEffects : MonoBehaviour public class SoundEffects : MonoBehaviour
{ {
public enum CountNumbers { One, Two, Three, Four } public enum CountNumbers { One, Two, Three, Four }
public static string[] countNames = { "one", "two", "three", "four" }; // public readonly static string[] countNames = { "one", "two", "one", "two", "three", "four" };
public static void Count(int type, bool alt) public readonly static string[] countNames = { "one", "two", "one", "two", "three", "four" };
{ public readonly static float[] timings = { 0f, 2f, 4f, 5f, 6f, 7f };
string sound = countNames[type];
if (!alt)
sound += "1";
else
sound += "2";
SoundByte.PlayOneShot("count-ins/" + sound);
}
public enum CountInType { Normal, Alt, Cowbell } public enum CountInType { Normal, Alt, Cowbell }
public static string[] GetCountInSounds(string[] sounds, CountInType type) public static string GetCountInSound(int type)
{ {
for (int i = 0; i < sounds.Length; i++) return (CountInType)type switch {
CountInType.Normal => "1",
CountInType.Alt => "2",
CountInType.Cowbell or _ => "cowbell",
};
}
public static void PreloadCounts()
{
foreach (string load in new string[] { "one", "two", "three", "four", "cowbell", "ready1", "ready2" })
{ {
switch (type) SoundByte.PreloadAudioClipAsync(load);
{ }
case CountInType.Normal: }
sounds[i] += "1";
break; public static void CountIn(double beat, float length, bool alt, bool go)
case CountInType.Alt: {
sounds[i] += "2"; PreloadCounts();
break; string countType = alt ? "2" : "1";
case CountInType.Cowbell: double startBeat = beat + length - 8;
sounds[i] = "cowbell";
break; List<MultiSound.Sound> sfx = new();
for (int i = 0; i < countNames.Length; i++) {
if (startBeat + timings[i] >= beat) {
sfx.Add(new MultiSound.Sound("count-ins/" + countNames[i] + countType, startBeat + timings[i]));
} }
} }
return sounds; if (go) sfx[^1].name = "count-ins/go" + countType;
MultiSound.Play(sfx, false);
} }
public static void FourBeatCountIn(double beat, float length, int type) public static void FourBeatCountIn(double beat, float length, int type)
{ {
string[] sounds = { "one", "two", "three", "four" }; PreloadCounts();
sounds = GetCountInSounds(sounds, (CountInType)type); string countType = GetCountInSound(type);
MultiSound.Play(new MultiSound.Sound[] List<MultiSound.Sound> sfx = new();
{ for (int i = 0; i < 4; i++) {
new MultiSound.Sound("count-ins/" + sounds[0], beat), sfx.Add(new MultiSound.Sound("count-ins/" + countNames[i + 2] + countType, beat + (i * length)));
new MultiSound.Sound("count-ins/" + sounds[1], beat + 1f * length), }
new MultiSound.Sound("count-ins/" + sounds[2], beat + 2f * length), MultiSound.Play(sfx, false);
new MultiSound.Sound("count-ins/" + sounds[3], beat + 3f * length)
}, false);
} }
public static void EightBeatCountIn(double beat, float length, int type) public static void EightBeatCountIn(double beat, float length, int type)
{ {
PreloadCounts();
string[] sounds = { "one", "two", "one", "two", "three", "four" }; string[] sounds = { "one", "two", "one", "two", "three", "four" };
sounds = GetCountInSounds(sounds, (CountInType)type); string sound = GetCountInSound(type);
MultiSound.Play(new MultiSound.Sound[] List<MultiSound.Sound> sfx = new();
{ for (int i = 0; i < sounds.Length; i++) {
new MultiSound.Sound("count-ins/" + sounds[0], beat), sfx.Add(new MultiSound.Sound("count-ins/" + sounds[i] + sound, beat + (timings[i] * length)));
new MultiSound.Sound("count-ins/" + sounds[1], beat + 2f * length), }
new MultiSound.Sound("count-ins/" + sounds[2], beat + 4f * length), MultiSound.Play(sfx, false);
new MultiSound.Sound("count-ins/" + sounds[3], beat + 5f * length), }
new MultiSound.Sound("count-ins/" + sounds[4], beat + 6f * length),
new MultiSound.Sound("count-ins/" + sounds[5], beat + 7f * length) public static void Count(int type, bool alt)
}, false); {
SoundByte.PlayOneShot("count-ins/" + (CountNumbers)type + (!alt ? "1" : "2"));
} }
public static void Cowbell() public static void Cowbell()
@ -78,10 +84,9 @@ namespace HeavenStudio.Games
public static void Ready(double beat, float length) public static void Ready(double beat, float length)
{ {
MultiSound.Play(new MultiSound.Sound[] MultiSound.Play(new MultiSound.Sound[] {
{
new MultiSound.Sound("count-ins/ready1", beat), new MultiSound.Sound("count-ins/ready1", beat),
new MultiSound.Sound("count-ins/ready2", beat + 1f * length), new MultiSound.Sound("count-ins/ready2", beat + (1f * length)),
}, false); }, false);
} }
@ -92,12 +97,7 @@ namespace HeavenStudio.Games
public static void Go(bool alt) public static void Go(bool alt)
{ {
string sound = "count-ins/go"; SoundByte.PlayOneShot("count-ins/go" + (!alt ? "1" : "2"));
if (!alt)
sound += "1";
else
sound += "2";
SoundByte.PlayOneShot(sound);
} }
} }

View file

@ -134,7 +134,14 @@ namespace HeavenStudio.Editor.Commands
foreach (var entity in entities) foreach (var entity in entities)
{ {
dupEntityData.Add(entity.DeepCopy()); var newEntity = entity.DeepCopy();
// there's gotta be a better way to do this. i just don't know how... -AJ
foreach ((var key, var value) in new Dictionary<string, dynamic>(newEntity.dynamicData)) {
if (value is EntityTypes.DropdownObj dd) {
newEntity[key] = new EntityTypes.DropdownObj(dd.value, dd.Values);
}
}
dupEntityData.Add(newEntity);
} }
for (var i = 0; i < original.Count; i++) for (var i = 0; i < original.Count; i++)

View file

@ -2,10 +2,11 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using HeavenStudio.Editor.Track;
using Jukebox; using Jukebox;
using Jukebox.Legacy;
using System.Linq; using System.Linq;
using System;
using static HeavenStudio.EntityTypes;
using HeavenStudio.Common;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
@ -18,10 +19,12 @@ namespace HeavenStudio.Editor
[Header("Property Prefabs")] [Header("Property Prefabs")]
[SerializeField] private GameObject IntegerP; [SerializeField] private GameObject IntegerP;
[SerializeField] private GameObject FloatP; [SerializeField] private GameObject FloatP;
[SerializeField] private GameObject ButtonP;
[SerializeField] private GameObject BooleanP; [SerializeField] private GameObject BooleanP;
[SerializeField] private GameObject DropdownP; [SerializeField] private GameObject DropdownP;
[SerializeField] private GameObject ColorP; [SerializeField] private GameObject ColorP;
[SerializeField] private GameObject StringP; [SerializeField] private GameObject StringP;
private static Dictionary<Type, GameObject> PropertyPrefabs;
public RiqEntity entity; public RiqEntity entity;
@ -36,6 +39,18 @@ namespace HeavenStudio.Editor
private void Awake() private void Awake()
{ {
instance = this; instance = this;
if (PropertyPrefabs == null) {
PropertyPrefabs = new() {
{ typeof(Integer), IntegerP },
{ typeof(Float), FloatP },
{ typeof(Dropdown), DropdownP },
{ typeof(Button), ButtonP },
{ typeof(Color), ColorP },
{ typeof(bool), BooleanP },
{ typeof(string), StringP },
};
}
} }
private void Start() private void Start()
@ -70,15 +85,6 @@ namespace HeavenStudio.Editor
AddParams(entity); AddParams(entity);
} }
static string TrackToThemeColour(int track) => track switch
{
1 => EditorTheme.theme.properties.Layer2Col,
2 => EditorTheme.theme.properties.Layer3Col,
3 => EditorTheme.theme.properties.Layer4Col,
4 => EditorTheme.theme.properties.Layer5Col,
_ => EditorTheme.theme.properties.Layer1Col
};
private void AddParams(RiqEntity entity) private void AddParams(RiqEntity entity)
{ {
string[] split = entity.datamodel.Split('/'); string[] split = entity.datamodel.Split('/');
@ -91,7 +97,14 @@ namespace HeavenStudio.Editor
eventSelector.SetActive(false); eventSelector.SetActive(false);
this.entity = entity; this.entity = entity;
string col = TrackToThemeColour((int)entity["track"]); string col = (int)entity["track"] switch
{
1 => EditorTheme.theme.properties.Layer2Col,
2 => EditorTheme.theme.properties.Layer3Col,
3 => EditorTheme.theme.properties.Layer4Col,
4 => EditorTheme.theme.properties.Layer5Col,
_ => EditorTheme.theme.properties.Layer1Col
};
Editor.instance.SetGameEventTitle($"Properties for <color=#{col}>{action.displayName}</color> on Beat {entity.beat.ToString("F2")} on <color=#{col}>Track {(int)entity["track"] + 1}</color>"); Editor.instance.SetGameEventTitle($"Properties for <color=#{col}>{action.displayName}</color> on Beat {entity.beat.ToString("F2")} on <color=#{col}>Track {(int)entity["track"] + 1}</color>");
DestroyParams(); DestroyParams();
@ -100,11 +113,8 @@ namespace HeavenStudio.Editor
for (int i = 0; i < action.parameters.Count; i++) for (int i = 0; i < action.parameters.Count; i++)
{ {
object param = action.parameters[i].parameter; var p = action.parameters[i];
string caption = action.parameters[i].propertyCaption; ePrefabs.Add(p.propertyName, AddParam(p.propertyName, p.parameter, p.caption, p.tooltip));
string propertyName = action.parameters[i].propertyName;
string tooltip = action.parameters[i].tooltip;
ePrefabs.Add(propertyName, AddParam(propertyName, param, caption, tooltip));
} }
foreach (var p in action.parameters) foreach (var p in action.parameters)
@ -129,70 +139,27 @@ namespace HeavenStudio.Editor
private GameObject AddParam(string propertyName, object type, string caption, string tooltip = "") private GameObject AddParam(string propertyName, object type, string caption, string tooltip = "")
{ {
GameObject prefab = IntegerP; Type typeType = type.GetType();
GameObject input; GameObject propertyPrefab = DropdownP; // enum check is hardcoded because enums are awesome (lying)
if (!typeType.IsEnum && !PropertyPrefabs.TryGetValue(typeType, out propertyPrefab)) {
var objType = type.GetType(); Debug.LogError("Can't make property interface of type: " + typeType);
if (objType == typeof(EntityTypes.Integer))
{
prefab = IntegerP;
input = InitPrefab(prefab, tooltip);
var property = input.GetComponent<NumberPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
}
else if (objType == typeof(EntityTypes.Float))
{
prefab = FloatP;
input = InitPrefab(prefab, tooltip);
var property = input.GetComponent<NumberPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
}
else if(type is bool)
{
prefab = BooleanP;
input = InitPrefab(prefab, tooltip);
var property = input.GetComponent<BoolPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
}
else if (objType.IsEnum)
{
prefab = DropdownP;
input = InitPrefab(prefab, tooltip);
var property = input.GetComponent<EnumPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
}
else if (objType == typeof(Color))
{
prefab = ColorP;
input = InitPrefab(prefab, tooltip);
var property = input.GetComponent<ColorPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
}
else if(objType == typeof(string))
{
prefab = StringP;
input = InitPrefab(prefab, tooltip);
var property = input.GetComponent<StringPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
}
else
{
Debug.LogError("Can't make property interface of type: " + type.GetType());
return null; return null;
} }
return input;
}
private GameObject InitPrefab(GameObject prefab, string tooltip = "") GameObject input = Instantiate(propertyPrefab, transform);
{
GameObject input = Instantiate(prefab);
input.transform.SetParent(this.gameObject.transform);
input.SetActive(true); input.SetActive(true);
input.transform.localScale = Vector3.one; input.transform.localScale = Vector3.one;
if(tooltip != string.Empty) if (tooltip != string.Empty) {
Tooltip.AddTooltip(input, "", tooltip); if (PersistentDataManager.gameSettings.showParamTooltips) {
Tooltip.AddTooltip(input, tooltip);
} else {
Tooltip.AddTooltip(input, "", tooltip);
}
}
EventPropertyPrefab property = input.GetComponent<EventPropertyPrefab>();
property.SetProperties(propertyName, type, caption);
return input; return input;
} }

View file

@ -6,8 +6,6 @@ using System;
using System.Linq; using System.Linq;
using TMPro; using TMPro;
using HeavenStudio.Util;
using Jukebox; using Jukebox;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
@ -17,29 +15,30 @@ namespace HeavenStudio.Editor
public TMP_Text caption; public TMP_Text caption;
protected string _captionText; protected string _captionText;
public EventParameterManager parameterManager; public EventParameterManager parameterManager;
public RiqEntity entity;
public string propertyName; public string propertyName;
public List<PropertyCollapse> propertyCollapses = new List<PropertyCollapse>(); public List<PropertyCollapse> propertyCollapses = new List<PropertyCollapse>();
public void SetProperties(string propertyName, object type, string caption) {} public virtual void SetProperties(string propertyName, object type, string caption)
public virtual void SetCollapses(object type) { }
public void InitProperties(string propertyName, string caption)
{ {
this.parameterManager = EventParameterManager.instance; this.parameterManager = EventParameterManager.instance;
entity = parameterManager.entity;
this.propertyName = propertyName; this.propertyName = propertyName;
this.caption.text = _captionText = caption;
_captionText = caption;
this.caption.text = _captionText;
} }
public virtual void SetCollapses(object type) { }
public void UpdateCollapse(object type) public void UpdateCollapse(object type)
{ {
foreach (var p in propertyCollapses) foreach (var p in propertyCollapses)
{ {
foreach (var c in p.collapseables) if (p.collapseables.Count > 0) { // there could be a better way to do it, but for now this works
{ foreach (var c in p.collapseables) {
if (c != null) c.SetActive(p.collapseOn(type, p.entity) && gameObject.activeSelf); if (c != null) c.SetActive(p.collapseOn(type, p.entity) && gameObject.activeSelf);
}
} else {
_ = p.collapseOn(type, p.entity);
} }
} }
} }

View file

@ -6,10 +6,6 @@ using System;
using System.Linq; using System.Linq;
using TMPro; using TMPro;
using HeavenStudio.Util;
using HeavenStudio.Editor;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
public class BoolPropertyPrefab : EventPropertyPrefab public class BoolPropertyPrefab : EventPropertyPrefab
@ -20,27 +16,18 @@ namespace HeavenStudio.Editor
private bool _defaultValue; private bool _defaultValue;
new public void SetProperties(string propertyName, object type, string caption) public override void SetProperties(string propertyName, object type, string caption)
{ {
InitProperties(propertyName, caption); base.SetProperties(propertyName, type, caption);
_defaultValue = (bool)type; _defaultValue = (bool)type;
toggle.isOn = Convert.ToBoolean(parameterManager.entity[propertyName]); toggle.isOn = Convert.ToBoolean(entity[propertyName]);
toggle.onValueChanged.AddListener( toggle.onValueChanged.AddListener(_ =>
_ => {
{ entity[propertyName] = toggle.isOn;
parameterManager.entity[propertyName] = toggle.isOn; this.caption.text = (toggle.isOn != _defaultValue) ? (_captionText + "*") : _captionText;
if (toggle.isOn != _defaultValue) });
{
this.caption.text = _captionText + "*";
}
else
{
this.caption.text = _captionText;
}
}
);
} }
public void ResetValue() public void ResetValue()
@ -50,9 +37,7 @@ namespace HeavenStudio.Editor
public override void SetCollapses(object type) public override void SetCollapses(object type)
{ {
toggle.onValueChanged.AddListener( toggle.onValueChanged.AddListener(newVal => UpdateCollapse(newVal));
_ => UpdateCollapse(toggle.isOn)
);
UpdateCollapse(toggle.isOn); UpdateCollapse(toggle.isOn);
} }
} }

View file

@ -0,0 +1,61 @@
using System;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
namespace HeavenStudio.Editor
{
public class ButtonPropertyPrefab : EventPropertyPrefab
{
[Header("Boolean")]
[Space(10)]
public float minButtonSize;
public RectTransform buttonTextRect;
public RectTransform buttonRect;
public TMP_Text buttonText;
public EntityTypes.Button button;
public override void SetProperties(string propertyName, object type, string caption)
{
base.SetProperties(propertyName, type, caption);
if (type is EntityTypes.Button button) {
this.button = button;
buttonText.text = entity[propertyName];
} else {
Debug.LogError("ButtonPropertyPrefab was unable to use " + type.GetType() + " as a Button.");
return;
}
}
public void OnClick()
{
string text = button.onClick.Invoke(entity);
if (text != null) {
buttonText.text = entity[propertyName] = text;
}
UpdateCollapse(entity[propertyName]);
}
private void LateUpdate()
{
// OnClick() already handles this.
// if somebody wants to uncomment this for their thing feel free but it's unused for now -AJ
// if (entity[propertyName] != buttonText.text) {
// buttonText.text = entity[propertyName];
// }
buttonRect.sizeDelta = new(Mathf.Max(buttonTextRect.sizeDelta.x, minButtonSize), buttonRect.sizeDelta.y);
}
public void ResetValue()
{
buttonText.text = entity[propertyName] = button.defaultLabel;
}
public override void SetCollapses(object type)
{
UpdateCollapse(entity[propertyName]);
}
}
}

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 8ada001011e54c74b87c04d7186d5f3c guid: 7891bc13f0b17734e9a197bf22818300
MonoImporter: MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2

View file

@ -6,10 +6,6 @@ using System;
using System.Linq; using System.Linq;
using TMPro; using TMPro;
using HeavenStudio.Util;
using HeavenStudio.Editor;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
public class ColorPropertyPrefab : EventPropertyPrefab public class ColorPropertyPrefab : EventPropertyPrefab
@ -24,9 +20,9 @@ namespace HeavenStudio.Editor
private Color _defaultColor; private Color _defaultColor;
new public void SetProperties(string propertyName, object type, string caption) public override void SetProperties(string propertyName, object type, string caption)
{ {
InitProperties(propertyName, caption); base.SetProperties(propertyName, type, caption);
hex.onSelect.AddListener( hex.onSelect.AddListener(
_ => _ =>

View file

@ -0,0 +1,100 @@
using System.Collections;
using System.Collections.Generic;
using System;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using HeavenStudio.Common;
using Jukebox;
namespace HeavenStudio.Editor
{
public class DropdownPropertyPrefab : EventPropertyPrefab
{
[Header("Dropdown")]
[Space(10)]
public LeftClickTMP_Dropdown dropdown;
public Scrollbar scrollbar;
private int _defaultValue;
private bool openedDropdown = false;
public override void SetProperties(string propertyName, object type, string caption)
{
base.SetProperties(propertyName, type, caption);
int selected = 0;
switch (type)
{
case EntityTypes.Dropdown dropdownEntity:
// entity[propertyName].ChangeValues(dropdownEntity.Values);
_defaultValue = dropdownEntity.defaultValue;
EntityTypes.DropdownObj dropdownObj = entity[propertyName];
selected = dropdownObj.value;
dropdown.AddOptions(dropdownObj.Values);
dropdown.onValueChanged.AddListener(newVal => dropdownObj.value = newVal);
dropdownObj.onValueChanged = new Action<List<string>>(newValues =>
{
if (dropdown == null) return;
dropdown.ClearOptions();
dropdown.AddOptions(newValues);
dropdown.enabled = newValues.Count > 0;
dropdownObj.value = _defaultValue;
});
break;
case Enum enumEntity:
Type enumType = enumEntity.GetType();
_defaultValue = (int)type;
int[] keys = Enum.GetValues(enumType).Cast<int>().ToArray();
selected = Array.FindIndex(keys, val => val == (int)entity[propertyName]);
dropdown.AddOptions(Enum.GetNames(enumType).ToList());
dropdown.onValueChanged.AddListener(val => entity[propertyName] = keys[val]);
break;
default:
break;
}
dropdown.value = selected;
dropdown.enabled = dropdown.options.Count > 0;
dropdown.onValueChanged.AddListener(newValue => {
this.caption.text = (newValue != _defaultValue) ? (_captionText + "*") : _captionText;
});
}
public void ResetValue()
{
dropdown.value = _defaultValue;
}
public override void SetCollapses(object type)
{
dropdown.onValueChanged.AddListener(_ => UpdateCollapse(type));
UpdateCollapse(type);
}
private void Update()
{
if (scrollbar != null)
{
if (openedDropdown == false)
{
openedDropdown = true;
var valuePos = (float)dropdown.value / (dropdown.options.Count - 1);
var scrollVal = scrollbar.direction == Scrollbar.Direction.TopToBottom ? valuePos : 1.0f - valuePos;
scrollbar.value = Mathf.Max(0.001f, scrollVal);
}
}
else
{
openedDropdown = false;
}
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4dbe69d785c445e41a3096329bda742d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,95 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Linq;
using TMPro;
using HeavenStudio.Util;
using HeavenStudio.Editor;
using HeavenStudio.Common;
namespace HeavenStudio.Editor
{
public class EnumPropertyPrefab : EventPropertyPrefab
{
[Header("Dropdown")]
[Space(10)]
public LeftClickTMP_Dropdown dropdown;
private Array enumVals;
private int _defaultValue;
private bool openedDropdown = false;
new public void SetProperties(string propertyName, object type, string caption)
{
InitProperties(propertyName, caption);
var enumType = type.GetType();
enumVals = Enum.GetValues(enumType);
var enumNames = Enum.GetNames(enumType).ToList();
_defaultValue = (int)type;
// Can we assume non-holey enum?
// If we can we can simplify to dropdown.value = (int) parameterManager.entity[propertyName]
var currentlySelected = (int) parameterManager.entity[propertyName];
var selected = enumVals
.Cast<object>()
.ToList()
.FindIndex(val => (int) val == currentlySelected);
dropdown.AddOptions(enumNames);
dropdown.value = selected;
dropdown.onValueChanged.AddListener(_ =>
{
parameterManager.entity[propertyName] = (int)enumVals.GetValue(dropdown.value);
if ((int)enumVals.GetValue(dropdown.value) != _defaultValue)
{
this.caption.text = _captionText + "*";
}
else
{
this.caption.text = _captionText;
}
}
);
}
public void ResetValue()
{
dropdown.value = _defaultValue;
}
public override void SetCollapses(object type)
{
dropdown.onValueChanged.AddListener(_ => UpdateCollapse((int)enumVals.GetValue(dropdown.value)));
UpdateCollapse((int)enumVals.GetValue(dropdown.value));
}
private void Update()
{
var scrollbar = GetComponentInChildren<ScrollRect>()?.verticalScrollbar;
// This is bad but we'll fix it later.
if (scrollbar != null)
{
if (openedDropdown == false)
{
openedDropdown = true;
var valuePos = (float)dropdown.value / (dropdown.options.Count - 1);
var scrollVal = scrollbar.direction == Scrollbar.Direction.TopToBottom ? valuePos : 1.0f - valuePos;
scrollbar.value = Mathf.Max(0.001f, scrollVal);
}
}
else
{
openedDropdown = false;
}
}
}
}

View file

@ -6,11 +6,6 @@ using System;
using System.Linq; using System.Linq;
using TMPro; using TMPro;
using HeavenStudio.Util;
using HeavenStudio.Editor;
using static HeavenStudio.EntityTypes;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
public class NumberPropertyPrefab : EventPropertyPrefab public class NumberPropertyPrefab : EventPropertyPrefab
@ -22,9 +17,9 @@ namespace HeavenStudio.Editor
private float _defaultValue; private float _defaultValue;
new public void SetProperties(string propertyName, object type, string caption) public override void SetProperties(string propertyName, object type, string caption)
{ {
InitProperties(propertyName, caption); base.SetProperties(propertyName, type, caption);
switch (type) switch (type)
{ {
@ -141,42 +136,18 @@ namespace HeavenStudio.Editor
switch (type) switch (type)
{ {
case EntityTypes.Integer integer: case EntityTypes.Integer integer:
slider.onValueChanged.AddListener( slider.onValueChanged.AddListener(_ => UpdateCollapse((int)slider.value));
_ => inputField.onEndEdit.AddListener(_ => UpdateCollapse((int)slider.value));
{
UpdateCollapse((int)slider.value);
}
);
inputField.onEndEdit.AddListener(
_ =>
{
UpdateCollapse((int)slider.value);
}
);
UpdateCollapse((int)slider.value); UpdateCollapse((int)slider.value);
break; break;
case EntityTypes.Float fl: case EntityTypes.Float fl:
slider.onValueChanged.AddListener( slider.onValueChanged.AddListener(newVal => UpdateCollapse((float)Math.Round(newVal, 4)));
_ => inputField.onEndEdit.AddListener(_ => UpdateCollapse(slider.value));
{
var newValue = (float)Math.Round(slider.value, 4);
UpdateCollapse(newValue);
}
);
var newValue = (float)Math.Round(slider.value, 4); UpdateCollapse((float)Math.Round(slider.value, 4));
UpdateCollapse(newValue);
inputField.onEndEdit.AddListener(
_ =>
{
UpdateCollapse(slider.value);
}
);
break; break;
default: default:

View file

@ -21,13 +21,13 @@ namespace HeavenStudio.Editor
private string _defaultValue; private string _defaultValue;
new public void SetProperties(string propertyName, object type, string caption) public override void SetProperties(string propertyName, object type, string caption)
{ {
InitProperties(propertyName, caption); base.SetProperties(propertyName, type, caption);
_defaultValue = (string)type; _defaultValue = (string)type;
inputFieldString.text = (string) parameterManager.entity[propertyName]; inputFieldString.text = (string)entity[propertyName];
inputFieldString.onSelect.AddListener( inputFieldString.onSelect.AddListener(
_ => _ =>
@ -36,21 +36,14 @@ namespace HeavenStudio.Editor
inputFieldString.onValueChanged.AddListener( inputFieldString.onValueChanged.AddListener(
_ => _ =>
{ {
parameterManager.entity[propertyName] = inputFieldString.text; entity[propertyName] = inputFieldString.text;
if (inputFieldString.text != _defaultValue) this.caption.text = (inputFieldString.text != _defaultValue) ? (_captionText + "*") : _captionText;
{
this.caption.text = _captionText + "*";
}
else
{
this.caption.text = _captionText;
}
} }
); );
inputFieldString.onEndEdit.AddListener( inputFieldString.onEndEdit.AddListener(
_ => _ =>
{; {
Editor.instance.editingInputField = false; Editor.instance.editingInputField = false;
} }
); );
@ -63,16 +56,15 @@ namespace HeavenStudio.Editor
public override void SetCollapses(object type) public override void SetCollapses(object type)
{ {
inputFieldString.onValueChanged.AddListener( inputFieldString.onValueChanged.AddListener(newVal => UpdateCollapse(newVal));
_ =>
{
UpdateCollapse(inputFieldString.text);
});
UpdateCollapse(inputFieldString.text); UpdateCollapse(inputFieldString.text);
} }
private void Update() private void LateUpdate()
{ {
if (entity[propertyName] != inputFieldString.text) {
inputFieldString.text =entity[propertyName];
}
} }
} }
} }

View file

@ -888,23 +888,18 @@ namespace HeavenStudio.Editor.Track
{ {
for (int i = 0; i < ep.Count; i++) for (int i = 0; i < ep.Count; i++)
{ {
object returnVal = ep[i].parameter; object returnVal = ep[i].parameter switch {
EntityTypes.Integer intVal => intVal.val,
EntityTypes.Float floatVal => floatVal.val,
EntityTypes.Button buttonVal => buttonVal.defaultLabel,
EntityTypes.Dropdown ddVal => new EntityTypes.DropdownObj(ddVal),
_ => ep[i].parameter,
};
var propertyType = returnVal.GetType(); if (returnVal.GetType().IsEnum) {
if (propertyType == typeof(EntityTypes.Integer))
{
returnVal = ((EntityTypes.Integer)ep[i].parameter).val;
}
else if (propertyType == typeof(EntityTypes.Float))
{
returnVal = ((EntityTypes.Float)ep[i].parameter).val;
}
else if (propertyType.IsEnum)
{
returnVal = (int)ep[i].parameter; returnVal = (int)ep[i].parameter;
} }
//tempEntity[ep[i].propertyName] = returnVal;
tempEntity.CreateProperty(ep[i].propertyName, returnVal); tempEntity.CreateProperty(ep[i].propertyName, returnVal);
} }
} }
@ -956,7 +951,14 @@ namespace HeavenStudio.Editor.Track
foreach (RiqEntity entity in original) foreach (RiqEntity entity in original)
{ {
CopiedEntities.Add(entity.DeepCopy()); var newEntity = entity.DeepCopy();
// there's gotta be a better way to do this. i just don't know how... -AJ
foreach ((var key, var value) in new Dictionary<string, dynamic>(newEntity.dynamicData)) {
if (value is EntityTypes.DropdownObj dd) {
newEntity[key] = new EntityTypes.DropdownObj(dd.value, dd.Values);
}
}
CopiedEntities.Add(newEntity);
} }
} }

View file

@ -388,20 +388,19 @@ namespace HeavenStudio.Editor.Track
} }
else if (Input.GetMouseButton(2)) else if (Input.GetMouseButton(2))
{ {
// var mgs = EventCaller.instance.minigames;
string[] datamodels = entity.datamodel.Split('/'); string[] datamodels = entity.datamodel.Split('/');
Debug.Log("Selected entity's datamodel : " + entity.datamodel); Debug.Log("Selected entity's datamodel : " + entity.datamodel);
bool isSwitchGame = datamodels[1] == "switchGame"; bool isSwitchGame = datamodels[1] == "switchGame";
// int gameIndex = mgs.FindIndex(c => c.name == datamodels[isSwitchGame ? 2 : 0]); var game = EventCaller.instance.minigames[datamodels[isSwitchGame ? 2 : 0]];
int block = isSwitchGame ? 0 : EventCaller.instance.minigames[datamodels[isSwitchGame ? 2 : 0]].actions.FindIndex(c => c.actionName == datamodels[1]) + 1; int block = isSwitchGame ? 0 : game.actions.FindIndex(c => c.actionName == datamodels[1]) + 1;
if (!isSwitchGame) if (!isSwitchGame)
{ {
// hardcoded stuff // hardcoded stuff
// needs to happen because hidden blocks technically change the event index // needs to happen because hidden blocks technically change the event index
if (datamodels[0] == "gameManager") block -= 2; if (game.fxOnly) block--;
else if (datamodels[0] is "countIn" or "vfx") block -= 1; if (datamodels[0] == "gameManager") block --;
} }
GridGameSelector.instance.SelectGame(datamodels[isSwitchGame ? 2 : 0], block); GridGameSelector.instance.SelectGame(datamodels[isSwitchGame ? 2 : 0], block);

View file

@ -71,8 +71,15 @@ namespace HeavenStudio.Editor
private void OnEnterPrivate(string tooltipText, string altTooltipText) private void OnEnterPrivate(string tooltipText, string altTooltipText)
{ {
group.alpha = 1; group.alpha = 1;
SetText(tooltipText);
Editor.instance.tooltipText.text = altTooltipText.Replace("\n",""); text.text = tooltipText;
text.ForceMeshUpdate();
Vector2 textSize = text.GetRenderedValues(false);
Vector2 paddingSize = new Vector2(8, 8);
background.sizeDelta = textSize + paddingSize;
Editor.instance.tooltipText.text = altTooltipText.Replace("\n", "");
Editor.instance.tooltipText.ForceMeshUpdate(); Editor.instance.tooltipText.ForceMeshUpdate();
} }
@ -92,10 +99,9 @@ namespace HeavenStudio.Editor
background.sizeDelta = textSize + paddingSize; background.sizeDelta = textSize + paddingSize;
} }
public static void AddTooltip(GameObject g, string tooltipText, string altTooltipText = "") public static void AddTooltip(GameObject g, string tooltipText, string altTooltipText = null)
{ {
if (altTooltipText == "") altTooltipText ??= tooltipText;
altTooltipText = tooltipText;
EventTrigger et = g.AddComponent<EventTrigger>(); EventTrigger et = g.AddComponent<EventTrigger>();

View file

@ -5,7 +5,6 @@ using Cysharp.Threading.Tasks;
using UnityEngine; using UnityEngine;
using UnityEngine.Networking; using UnityEngine.Networking;
using DG.Tweening;
using HeavenStudio.Util; using HeavenStudio.Util;
using HeavenStudio.Editor.Track; using HeavenStudio.Editor.Track;
@ -15,9 +14,10 @@ using Jukebox;
using SatorImaging.UnitySourceGenerator; using SatorImaging.UnitySourceGenerator;
using System; using System;
using System.Linq;
using System.Reflection;
using System.IO; using System.IO;
using System.Linq;
using UnityEngine.Assertions.Must;
using Newtonsoft.Json.Linq;
namespace HeavenStudio namespace HeavenStudio
{ {
@ -267,6 +267,13 @@ namespace HeavenStudio
e.dynamicData[param.propertyName] = (int)e[param.propertyName]; e.dynamicData[param.propertyName] = (int)e[param.propertyName];
else if (type == typeof(EntityTypes.Float)) else if (type == typeof(EntityTypes.Float))
e.dynamicData[param.propertyName] = (float)e[param.propertyName]; e.dynamicData[param.propertyName] = (float)e[param.propertyName];
else if (type == typeof(EntityTypes.Button))
e.dynamicData[param.propertyName] = (string)e[param.propertyName];
else if (type == typeof(EntityTypes.Dropdown)) {
JValue value = e[param.propertyName]["value"];
JArray values = e[param.propertyName]["Values"];
e.dynamicData[param.propertyName] = new EntityTypes.DropdownObj((int)value, values.Select(x => (string)x).ToList());
}
else if (type == typeof(EntityTypes.Resource)) else if (type == typeof(EntityTypes.Resource))
e.dynamicData[param.propertyName] = (EntityTypes.Resource)e[param.propertyName]; e.dynamicData[param.propertyName] = (EntityTypes.Resource)e[param.propertyName];
else if (type.IsEnum) else if (type.IsEnum)
@ -635,11 +642,10 @@ namespace HeavenStudio
/// <param name="function"><para>What the block does when read during playback</para> /// <param name="function"><para>What the block does when read during playback</para>
/// <para>Only does this if the game that it is associated with is loaded.</para></param> /// <para>Only does this if the game that it is associated with is loaded.</para></param>
/// <param name="inactiveFunction">What the block does when read while the game it's associated with isn't loaded.</param> /// <param name="inactiveFunction">What the block does when read while the game it's associated with isn't loaded.</param>
/// <param name="prescheduleFunction">What the block does when the GameManager seeks to this cue for pre-scheduling.</param> /// <param name="preFunction">What the block does when the GameManager seeks to this cue for pre-scheduling.</param>
/// <param name="hidden">Prevents the block from being shown in the game list. Block will still function normally if it is in the timeline.</param> /// <param name="hidden">Prevents the block from being shown in the game list. Block will still function normally if it is in the timeline.</param>
/// <param name="preFunction">Runs two beats before this event is reached.</param>
/// <param name="priority">Priority of this event. Higher priority events will be run first.</param> /// <param name="priority">Priority of this event. Higher priority events will be run first.</param>
public GameAction(string actionName, string displayName, float defaultLength = 1, bool resizable = false, List<Param> parameters = null, EventCallback function = null, EventCallback inactiveFunction = null, EventCallback prescheduleFunction = null, bool hidden = false, EventCallback preFunction = null, int priority = 0, float preFunctionLength = 2.0f) public GameAction(string actionName, string displayName, float defaultLength = 1, bool resizable = false, List<Param> parameters = null, EventCallback function = null, EventCallback inactiveFunction = null, EventCallback preFunction = null, bool hidden = false, int priority = 0, float preFunctionLength = 2.0f)
{ {
this.actionName = actionName; this.actionName = actionName;
if (displayName == String.Empty) this.displayName = actionName; if (displayName == String.Empty) this.displayName = actionName;
@ -651,7 +657,7 @@ namespace HeavenStudio
this.function = function ?? delegate { }; this.function = function ?? delegate { };
this.inactiveFunction = inactiveFunction ?? delegate { }; this.inactiveFunction = inactiveFunction ?? delegate { };
this.preFunction = prescheduleFunction ?? delegate { }; this.preFunction = preFunction ?? delegate { };
this.priority = priority; this.priority = priority;
this.preFunctionLength = preFunctionLength; this.preFunctionLength = preFunctionLength;
} }
@ -674,7 +680,7 @@ namespace HeavenStudio
{ {
public string propertyName; public string propertyName;
public object parameter; public object parameter;
public string propertyCaption; public string caption;
public string tooltip; public string tooltip;
public List<CollapseParam> collapseParams; public List<CollapseParam> collapseParams;
@ -683,12 +689,12 @@ namespace HeavenStudio
/// </summary> /// </summary>
/// <param name="propertyName">The name of the variable that's being changed.</param> /// <param name="propertyName">The name of the variable that's being changed.</param>
/// <param name="parameter">The value of the parameter</param> /// <param name="parameter">The value of the parameter</param>
/// <param name="propertyCaption">The name shown in the editor. Can be anything you want.</param> /// <param name="caption">The name shown in the editor. Can be anything you want.</param>
public Param(string propertyName, object parameter, string propertyCaption, string tooltip = "", List<CollapseParam> collapseParams = null) public Param(string propertyName, object parameter, string caption, string tooltip = "", List<CollapseParam> collapseParams = null)
{ {
this.propertyName = propertyName; this.propertyName = propertyName;
this.parameter = parameter; this.parameter = parameter;
this.propertyCaption = propertyCaption; this.caption = caption;
this.tooltip = tooltip; this.tooltip = tooltip;
this.collapseParams = collapseParams; this.collapseParams = collapseParams;
} }
@ -702,7 +708,7 @@ namespace HeavenStudio
/// </summary> /// </summary>
/// <param name="collapseOn">What values should make it collapse/uncollapse?</param> /// <param name="collapseOn">What values should make it collapse/uncollapse?</param>
/// <param name="collapseables">IDs of the parameters to collapse</param> /// <param name="collapseables">IDs of the parameters to collapse</param>
public CollapseParam(Func<object, RiqEntity, bool> collapseOn, string[] collapseables) public CollapseParam(Func<object, RiqEntity, bool> collapseOn, params string[] collapseables)
{ {
CollapseOn = collapseOn; CollapseOn = collapseOn;
this.collapseables = collapseables; this.collapseables = collapseables;
@ -758,19 +764,36 @@ namespace HeavenStudio
new Minigame("countIn", "Count-Ins", "", false, true, new List<GameAction>() new Minigame("countIn", "Count-Ins", "", false, true, new List<GameAction>()
{ {
new GameAction("count-in", "Count-In", 4f, true,
new List<Param>()
{
new Param("alt", false, "Alt", "Set the type of sounds to use for the count-in."),
new Param("go", false, "Go!", "Toggle to end the count-in with \"Go!\""),
},
preFunction : delegate {
var e = eventCaller.currentEntity;
SoundEffects.CountIn(e.beat, e.length, e["alt"], e["go"]);
}
),
new GameAction("4 beat count-in", "4 Beat Count-In", 4f, true, new GameAction("4 beat count-in", "4 Beat Count-In", 4f, true,
new List<Param>() new List<Param>()
{ {
new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.") new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.")
}, },
delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e["type"]); } delegate {
var e = eventCaller.currentEntity;
SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e["type"]);
}
), ),
new GameAction("8 beat count-in", "8 Beat Count-In", 8f, true, new GameAction("8 beat count-in", "8 Beat Count-In", 8f, true,
new List<Param>() new List<Param>()
{ {
new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.") new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.")
}, },
delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e["type"]); } delegate {
var e = eventCaller.currentEntity;
SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e["type"]);
}
), ),
new GameAction("count", "Count", 1f, false, new GameAction("count", "Count", 1f, false,
new List<Param>() new List<Param>()
@ -778,13 +801,16 @@ namespace HeavenStudio
new Param("type", SoundEffects.CountNumbers.One, "Type", "Set the number to say."), new Param("type", SoundEffects.CountNumbers.One, "Type", "Set the number to say."),
new Param("toggle", false, "Alt", "Toggle if the alternate version of this voice line should be used.") new Param("toggle", false, "Alt", "Toggle if the alternate version of this voice line should be used.")
}, },
delegate { var e = eventCaller.currentEntity; SoundEffects.Count(e["type"], e["toggle"]); } delegate {
var e = eventCaller.currentEntity;
SoundEffects.Count(e["type"], e["toggle"]);
}
), ),
new GameAction("cowbell", "Cowbell", new GameAction("cowbell", "Cowbell",
function: delegate { SoundEffects.Cowbell(); } function: delegate { SoundEffects.Cowbell(); }
), ),
new GameAction("ready!", "Ready!", 2f, true, new GameAction("ready!", "Ready!", 2f, true,
function: delegate { var e = eventCaller.currentEntity; SoundEffects.Ready(e.beat, e.length / 2f); } function: delegate { var e = eventCaller.currentEntity; SoundEffects.Ready(e.beat, (e.length / 2f)); }
), ),
new GameAction("and", "And", 0.5f, new GameAction("and", "And", 0.5f,
function: delegate { SoundEffects.And(); } function: delegate { SoundEffects.And(); }
@ -816,7 +842,7 @@ namespace HeavenStudio
new Minigame("vfx", "Visual Effects", "", false, true, new List<GameAction>() new Minigame("vfx", "Visual Effects", "", false, true, new List<GameAction>()
{ {
new GameAction("flash", "Flash", 1f, true, new GameAction("flash", "Flash/Fade", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("colorA", Color.white, "Start Color", "Set the color at the start of the event."), new Param("colorA", Color.white, "Start Color", "Set the color at the start of the event."),
@ -853,7 +879,7 @@ namespace HeavenStudio
{ {
new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left", "Set the position on the X axis."), new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left", "Set the position on the X axis."),
new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down", "Set the position on the Y axis."), new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down", "Set the position on the Y axis."),
new Param("valC", new EntityTypes.Float(-0, 250, 10), "In / Out", "Set the position on the Z axis."), new Param("valC", new EntityTypes.Float(-250, 250, 10), "In / Out", "Set the position on the Z axis."),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action."), new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action."),
new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified." ) new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified." )
} }
@ -883,8 +909,8 @@ namespace HeavenStudio
), ),
new GameAction("scale view", "Scale Viewport", 1f, true, new List<Param>() new GameAction("scale view", "Scale Viewport", 1f, true, new List<Param>()
{ {
new Param("valA", new EntityTypes.Float(0, 50, 1), "Width", "Set the width of the viewport."), new Param("valA", new EntityTypes.Float(-50f, 50, 1), "Width", "Set the width of the viewport."),
new Param("valB", new EntityTypes.Float(0, 50, 1), "Height", "Set the height of the viewport."), new Param("valB", new EntityTypes.Float(-50f, 50, 1), "Height", "Set the height of the viewport."),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action."), new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action."),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified." ) new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified." )
} }
@ -894,10 +920,10 @@ namespace HeavenStudio
resizable = true, resizable = true,
parameters = new() parameters = new()
{ {
new("x1", new EntityTypes.Float(0f, 50f, 1f), "Start Width", "Set the width at the start of the event."), new("x1", new EntityTypes.Float(-50f, 50f, 1f), "Start Width", "Set the width at the start of the event."),
new("x2", new EntityTypes.Float(0f, 50f, 1f), "End Width", "Set the width at the end of the event."), new("x2", new EntityTypes.Float(-50f, 50f, 1f), "End Width", "Set the width at the end of the event."),
new("y1", new EntityTypes.Float(0f, 50f, 1f), "Start Height", "Set the height at the start of the event."), new("y1", new EntityTypes.Float(-50f, 50f, 1f), "Start Height", "Set the height at the start of the event."),
new("y2", new EntityTypes.Float(0f, 50f, 1f), "End Height", "Set the height at the end of the event."), new("y2", new EntityTypes.Float(-50f, 50f, 1f), "End Height", "Set the height at the end of the event."),
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new() new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new()
{ {
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "x1", "y1" }) new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "x1", "y1" })
@ -1111,7 +1137,7 @@ namespace HeavenStudio
new("xEnd", new EntityTypes.Float(1, 100, 1), "End Horizontal Tiles", "Set the amount of horizontal tiles at the end of the event."), new("xEnd", new EntityTypes.Float(1, 100, 1), "End Horizontal Tiles", "Set the amount of horizontal tiles at the end of the event."),
new("yStart", new EntityTypes.Float(1, 100, 1), "Start Vertical Tiles", "Set the amount of vertical tiles at the start of the event."), new("yStart", new EntityTypes.Float(1, 100, 1), "Start Vertical Tiles", "Set the amount of vertical tiles at the start of the event."),
new("yEnd", new EntityTypes.Float(1, 100, 1), "End Vertical Tiles", "Set the amount of vertical tiles at the end of the event."), new("yEnd", new EntityTypes.Float(1, 100, 1), "End Vertical Tiles", "Set the amount of vertical tiles at the end of the event."),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified."), new("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified."),
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new() new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new()
{ {
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "xStart", "yStart" }) new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "xStart", "yStart" })
@ -1127,7 +1153,7 @@ namespace HeavenStudio
new("xScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Horizontal Scroll", "Set the horizontal scroll at the end of the event."), new("xScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Horizontal Scroll", "Set the horizontal scroll at the end of the event."),
new("yScrollStart", new EntityTypes.Float(-100, 100, 0), "Start Vertical Scroll", "Set the vertical scroll at the start of the event."), new("yScrollStart", new EntityTypes.Float(-100, 100, 0), "Start Vertical Scroll", "Set the vertical scroll at the start of the event."),
new("yScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Vertical Scroll", "Set the vertical scroll at the end of the event."), new("yScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Vertical Scroll", "Set the vertical scroll at the end of the event."),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified."), new("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified."),
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new() new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new()
{ {
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "xScrollStart", "yScrollStart" }) new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "xScrollStart", "yScrollStart" })
@ -1135,6 +1161,105 @@ namespace HeavenStudio
} }
} }
}), }),
new Minigame("advanced", "Advanced", "", false, true, new List<GameAction>()
{
new GameAction("play animation", "Play Animation", 0.5f, false,
new List<Param>()
{
new Param("getAnimators", new EntityTypes.Button("No Game", e => {
var gm = GameManager.instance;
Minigame game = gm.GetGameInfo(gm.currentGame);
if (game != null) {
var animators = gm.minigameObj.transform.GetComponentsInChildren<Animator>();
// not in an update loop so it's fine :3
((EntityTypes.DropdownObj)e["animator"]).SetValues(animators.Select(anim => {
var obj = anim.gameObject;
List<string> path = new() { obj.name };
for (int i = 0; i < 10; i++)
{
if (obj.transform.parent == null || obj.transform.parent.name == game.name) break;
obj = obj.transform.parent.gameObject;
path.Add(obj.name);
}
return string.Join('/', path);
}).ToList());
}
return game?.displayName ?? "No Game";
}), "Get Animators", "Get all the animators in the current minigame scene. (Make sure to have the minigame you want loaded!)", new() {
new((x, _) => (string)x != "No Game", "animator", "getAnimations")
}),
new Param("animator", new EntityTypes.Dropdown(), "Animator", "Specify which animator in the scene to play an animation on."),
new Param("getAnimations", new EntityTypes.Button("", e => {
var gm = GameManager.instance;
Minigame game = gm.GetGameInfo(gm.currentGame);
string animPath = ((EntityTypes.DropdownObj)e["animator"]).CurrentValue;
Animator animator = null;
if (!string.IsNullOrEmpty(animPath)) {
var animObj = gm.minigameObj.transform.Find(animPath);
if (animObj != null && animObj.TryGetComponent(out animator) && animator != null) {
List<string> animationClips = new();
foreach (var clip in animator.runtimeAnimatorController.animationClips) {
if (clip != null) {
animationClips.Add(clip.name);
}
}
((EntityTypes.DropdownObj)e["animation"]).SetValues(animationClips);
}
}
return animator != null ? animator.name : "";
}), "Get Animations", "Get all the animations in the selected animator.", new() {
new((x, _) => (string)x != "", "animation", "scale")
}),
new Param("animation", new EntityTypes.Dropdown(), "Animation", "Specify the name of the animation to play."),
new Param("scale", new EntityTypes.Float(0, 5, 0.5f), "Animation Scale", "The time scale of the animation. Higher values are faster."),
},
delegate {
var e = eventCaller.currentEntity;
GameManager.instance.PlayAnimationArbitrary(e["animator"].CurrentValue, e["animation"].CurrentValue, e["scale"]);
}
),
new GameAction("play sfx", "Play SFX", 0.5f, true,
new List<Param>()
{
new Param("game", new EntityTypes.Dropdown(), "Which Game", "Specify the game's sfx to play. An empty input will play global sfx."),
new Param("getSfx", new EntityTypes.Button("", e => {
string gameName = ((EntityTypes.DropdownObj)e["game"]).CurrentValue;
List<string> clips;
if (eventCaller.minigames.TryGetValue(gameName, out Minigame game) && game != null) {
IEnumerable<AudioClip> audioClips = game.GetCommonAssetBundle().LoadAllAssets<AudioClip>();
var localAssBun = game.GetLocalizedAssetBundle();
if (localAssBun != null) {
audioClips = audioClips.Concat(localAssBun.LoadAllAssets<AudioClip>());
}
clips = audioClips.Select(x => x.name).ToList();
} else {
// this is probably the best way to do it?
clips = new() { "applause", "metronome", "miss", "nearMiss", "perfectMiss", "skillStar" };
}
clips.Sort((s1, s2) => s1.CompareTo(s2));
EntityTypes.DropdownObj sfxDD = e["sfxName"];
sfxDD.SetValues(clips);
return clips.Count > 0 ? (game != null ? game.displayName : "Common") : "Empty!";
}), "Get SFX", "Get all the sfx in the selected minigame."),
new Param("sfxName", new EntityTypes.Dropdown(), "SFX Name", "The name of the sfx to play."),
new Param("useSemitones", false, "Use Semitones", "Toggle to use semitones instead of straight pitch.", new() {
new((x, e) => (bool)x, "semitones"),
new((x, e) => !(bool)x, "pitch"),
}),
new Param("semitones", new EntityTypes.Integer(-24, 24, 0), "Semitones", "The semitones of the sfx."),
new Param("pitch", new EntityTypes.Float(0, 5, 1), "Pitch", "The pitch of the sfx."),
new Param("volume", new EntityTypes.Float(0, 2, 1), "Volume", "The volume of the sfx."),
new Param("offset", new EntityTypes.Integer(-500, 500), "Offset (ms)", "The offset of the sfx in milliseconds."),
new Param("loop", false, "Loop", "Loop the sfx for the length of the block."),
},
preFunction : delegate {
var e = eventCaller.currentEntity;
float pitch = e["useSemitones"] ? SoundByte.GetPitchFromSemiTones(e["semitones"], true) : e["pitch"];
GameManager.PlaySFXArbitrary(e.beat, e.length, e["game"].CurrentValue, e["sfxName"].CurrentValue, pitch, e["volume"], e["loop"], e["offset"]);
}
),
}),
}; };
foreach (var game in defaultGames) foreach (var game in defaultGames)
@ -1143,6 +1268,10 @@ namespace HeavenStudio
} }
LoadMinigames(eventCaller); LoadMinigames(eventCaller);
// im so sorry
eventCaller.minigames["advanced"].actions
.Find(a => a.actionName == "play sfx").parameters[0].parameter = new EntityTypes.Dropdown(0, new string[] { "common" }.Concat(eventCaller.minigames.Keys.Skip(defaultGames.Count)).ToArray());
} }
} }
} }

View file

@ -29,7 +29,7 @@ namespace HeavenStudio.Common
GlobalGameManager.DEFAULT_SCREEN_SIZES[1].width, GlobalGameManager.DEFAULT_SCREEN_SIZES[1].width,
GlobalGameManager.DEFAULT_SCREEN_SIZES[1].height, GlobalGameManager.DEFAULT_SCREEN_SIZES[1].height,
0.8f, 0.8f,
512, 340,
48000, 48000,
true, true,
true, true,
@ -37,6 +37,7 @@ namespace HeavenStudio.Common
true, true,
false, false,
true, true,
true,
true true
); );
@ -119,7 +120,7 @@ namespace HeavenStudio.Common
int resolutionWidth = 1280, int resolutionWidth = 1280,
int resolutionHeight = 720, int resolutionHeight = 720,
float masterVolume = 0.8f, float masterVolume = 0.8f,
int dspSize = 512, int dspSize = 340,
int sampleRate = 44100, int sampleRate = 44100,
bool editorCursorEnable = true, bool editorCursorEnable = true,
bool discordRPCEnable = true, bool discordRPCEnable = true,
@ -130,7 +131,8 @@ namespace HeavenStudio.Common
bool letterboxBgEnable = true, bool letterboxBgEnable = true,
bool letterboxFxEnable = true, bool letterboxFxEnable = true,
int editorScale = 0, int editorScale = 0,
bool scaleWScreenSize = false bool scaleWScreenSize = false,
bool showParamTooltips = true
) )
{ {
this.showSplash = showSplash; this.showSplash = showSplash;
@ -151,6 +153,7 @@ namespace HeavenStudio.Common
this.discordRPCEnable = true; this.discordRPCEnable = true;
this.editorScale = editorScale; this.editorScale = editorScale;
this.scaleWScreenSize = scaleWScreenSize; this.scaleWScreenSize = scaleWScreenSize;
this.showParamTooltips = showParamTooltips;
this.perfectChallengeType = perfectChallengeType; this.perfectChallengeType = perfectChallengeType;
this.isMedalOn = isMedalOn; this.isMedalOn = isMedalOn;
@ -190,6 +193,8 @@ namespace HeavenStudio.Common
public bool discordRPCEnable; public bool discordRPCEnable;
public int editorScale; public int editorScale;
public bool scaleWScreenSize; public bool scaleWScreenSize;
public bool showParamTooltips;
// public bool showCornerTooltips;
// Gameplay Settings // Gameplay Settings
public PerfectChallengeType perfectChallengeType; public PerfectChallengeType perfectChallengeType;

View file

@ -8,17 +8,19 @@ namespace HeavenStudio.Editor
{ {
public class EditorSettings : TabsContent public class EditorSettings : TabsContent
{ {
public Toggle cursorCheckbox; [SerializeField] Toggle cursorCheckbox;
public Toggle discordRPCCheckbox; [SerializeField] Toggle discordRPCCheckbox;
public Button editorScaleDecre, editorScaleIncre; [SerializeField] Button editorScaleDecre, editorScaleIncre;
public Toggle scaleWSS; [SerializeField] Toggle scaleWSS;
[SerializeField] Toggle paramTooltipsToggle;
// [SerializeField] Toggle cornerTooltipsToggle;
private void Start() private void Start()
{ {
cursorCheckbox.isOn = PersistentDataManager.gameSettings.editorCursorEnable; cursorCheckbox.isOn = PersistentDataManager.gameSettings.editorCursorEnable;
discordRPCCheckbox.isOn = PersistentDataManager.gameSettings.discordRPCEnable; discordRPCCheckbox.isOn = PersistentDataManager.gameSettings.discordRPCEnable;
scaleWSS.isOn = PersistentDataManager.gameSettings.scaleWScreenSize; scaleWSS.isOn = PersistentDataManager.gameSettings.scaleWScreenSize;
paramTooltipsToggle.isOn = PersistentDataManager.gameSettings.showParamTooltips;
SetDecreIncreInteractable(); SetDecreIncreInteractable();
} }
@ -41,12 +43,7 @@ namespace HeavenStudio.Editor
public override void OnOpenTab() public override void OnOpenTab()
{ {
cursorCheckbox.isOn = PersistentDataManager.gameSettings.editorCursorEnable; Start();
discordRPCCheckbox.isOn = PersistentDataManager.gameSettings.discordRPCEnable;
scaleWSS.isOn = PersistentDataManager.gameSettings.scaleWScreenSize;
SetDecreIncreInteractable();
} }
public override void OnCloseTab() public override void OnCloseTab()
@ -59,6 +56,16 @@ namespace HeavenStudio.Editor
scaleWSS.isOn = PersistentDataManager.gameSettings.scaleWScreenSize; scaleWSS.isOn = PersistentDataManager.gameSettings.scaleWScreenSize;
} }
public void OnParamTooltipsChanged()
{
PersistentDataManager.gameSettings.showParamTooltips = paramTooltipsToggle.isOn;
}
// public void OnCornerTooltipsChanged()
// {
// PersistentDataManager.gameSettings.showParamTooltips = cornerTooltipsToggle.isOn;
// }
public void OnEditorScaleDecre() public void OnEditorScaleDecre()
{ {
PersistentDataManager.gameSettings.editorScale--; PersistentDataManager.gameSettings.editorScale--;

View file

@ -1,9 +1,9 @@
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using System.Linq;
using Jukebox;
using Newtonsoft.Json; using Newtonsoft.Json;
using UnityEngine;
namespace HeavenStudio namespace HeavenStudio
{ {
@ -29,7 +29,7 @@ namespace HeavenStudio
public float val; public float val;
public float max; public float max;
public Float(float min, float max, float val = 0f) public Float(float min, float max, float val = 0)
{ {
this.min = min; this.min = min;
this.val = val; this.val = val;
@ -37,6 +37,84 @@ namespace HeavenStudio
} }
} }
// this will eventually replace Float and Integer
public struct Number
{
public float snap;
public float min;
public float val;
public float max;
public Number(float snap, float min, float max, float val = 0)
{
this.snap = snap;
this.min = min;
this.val = val;
this.max = max;
}
public Number(float min, float max, float val = 0)
{
this.snap = 0.001f;
this.min = min;
this.val = val;
this.max = max;
}
}
public struct Button
{
public string defaultLabel;
public Func<RiqEntity, string> onClick;
public Button(string defaultLabel, Func<RiqEntity, string> onClick)
{
this.defaultLabel = defaultLabel;
this.onClick = onClick;
}
}
public struct Dropdown
{
public int defaultValue;
public List<string> values;
public Dropdown(int defaultValue = 0, params string[] values)
{
this.defaultValue = defaultValue;
this.values = values.ToList();
}
}
public class DropdownObj
{
public void SetValues(List<string> values)
{
Values = values ?? new();
onValueChanged?.Invoke(values);
}
public int value;
public List<string> Values { get; private set; }
[JsonIgnore] public string CurrentValue => value < Values?.Count ? Values?[value] : null;
[JsonIgnore] public Action<List<string>> onValueChanged;
public DropdownObj(int defaultValue = 0, List<string> values = null)
{
value = defaultValue;
Values = values ?? new();
onValueChanged = null;
}
public DropdownObj(Dropdown dd)
{
value = dd.defaultValue;
Values = dd.values ?? new();
onValueChanged = null;
}
}
public struct Resource public struct Resource
{ {
public enum ResourceType public enum ResourceType

View file

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks;
using Cysharp.Threading.Tasks.Triggers;
namespace HeavenStudio.Util namespace HeavenStudio.Util
{ {
@ -36,12 +35,15 @@ namespace HeavenStudio.Util
} }
} }
public static MultiSound Play(Sound[] snds, bool game = true, bool forcePlay = false) public static MultiSound Play(Sound[] snds, bool game = true, bool forcePlay = false)
{ {
if (Conductor.instance == null) return null; return Play(snds.ToList(), game, forcePlay);
}
public static MultiSound Play(List<Sound> sounds, bool game = true, bool forcePlay = false)
{
if (Conductor.instance == null || sounds.Count <= 0) return null;
List<Sound> sounds = snds.ToList();
GameObject go = new GameObject("MultiSound"); GameObject go = new GameObject("MultiSound");
MultiSound ms = go.AddComponent<MultiSound>(); MultiSound ms = go.AddComponent<MultiSound>();

View file

@ -14,7 +14,7 @@ namespace HeavenStudio.Util
static AudioSource oneShotAudioSource; static AudioSource oneShotAudioSource;
static int soundIdx = 0; static int soundIdx = 0;
static Dictionary<string, AudioClip> audioClips = new Dictionary<string, AudioClip>(); public static Dictionary<string, AudioClip> audioClips { get; private set; } = new Dictionary<string, AudioClip>();
public enum AudioType public enum AudioType
{ {