Merge branch 'release_1'
|
@ -73,6 +73,14 @@ namespace Starpelly
|
|||
return val >= min && val <= max;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if a value is within a certain range.
|
||||
/// </summary>
|
||||
public static bool IsWithin(this Vector2 val, Vector2 min, Vector2 max)
|
||||
{
|
||||
return val.x.IsWithin(min.x, max.x) && val.y.IsWithin(min.y, max.y);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if value is between two numbers.
|
||||
/// </summary>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<align="center"><b>Programming</b></align>
|
||||
-<indent=5%>Megaminerzero</indent>
|
||||
-<indent=5%>Starpelly <alpha=#88>(Rhythm Heaven Mania)<alpha=#FF></indent>
|
||||
-<indent=5%>Starpelly</indent>
|
||||
-<indent=5%>minenice</indent>
|
||||
-<indent=5%>huantian</indent>
|
||||
-<indent=5%>Slaith12</indent>
|
||||
|
@ -20,7 +20,7 @@
|
|||
<align="center"><b>Artwork</b></align>
|
||||
-<indent=5%>Ko Takeuchi <alpha=#88>(Original <i>Rhythm Heaven</i> Assets)<alpha=#FF></indent>
|
||||
-<indent=5%>Nintendo <alpha=#88>(Original <i>Rhythm Heaven</i> Assets)<alpha=#FF></indent>
|
||||
-<indent=5%>Starpelly <alpha=#88>(Rhythm Heaven Mania)<alpha=#FF></indent>
|
||||
-<indent=5%>Starpelly</indent>
|
||||
-<indent=5%>OctaHeart <alpha=#88>(Logo)<alpha=#FF></indent>
|
||||
-<indent=5%>ev <alpha=#88>(Editor UI)<alpha=#FF></indent>
|
||||
-<indent=5%>Seanski2 <alpha=#88>(Minigame Icons)<alpha=#FF></indent>
|
||||
|
|
1100
Assets/Resources/Fonts/rodin/FOT-Rodin Pro B SDF Dynamic 1.asset
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9ff0c04cbd659ef43bccfe273684eadf
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 00ba8359d55aea94799b54c203adf38f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -2,14 +2,15 @@
|
|||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: FOT-Rodin Pro DB Entity
|
||||
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
|
@ -39,6 +40,7 @@ Material:
|
|||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Ambient: 1
|
||||
- _Bevel: 0.5
|
||||
|
|
|
@ -14,9 +14,9 @@ Texture2D:
|
|||
m_DownscaleFallback: 0
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 2
|
||||
m_Width: 0
|
||||
m_Height: 0
|
||||
m_CompleteImageSize: 0
|
||||
m_Width: 1
|
||||
m_Height: 1
|
||||
m_CompleteImageSize: 1
|
||||
m_MipsStripped: 0
|
||||
m_TextureFormat: 1
|
||||
m_MipCount: 1
|
||||
|
@ -40,8 +40,8 @@ Texture2D:
|
|||
m_LightmapFormat: 0
|
||||
m_ColorSpace: 0
|
||||
m_PlatformBlob:
|
||||
image data: 0
|
||||
_typelessdata:
|
||||
image data: 1
|
||||
_typelessdata: 00
|
||||
m_StreamData:
|
||||
serializedVersion: 2
|
||||
offset: 0
|
||||
|
@ -59,21 +59,14 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||
m_Name: FOT-Rodin Pro DB SDF Dynamic
|
||||
m_EditorClassIdentifier:
|
||||
hashCode: -716773919
|
||||
material: {fileID: 5296781804180034499}
|
||||
materialHashCode: -1646043487
|
||||
m_Version: 1.1.0
|
||||
m_SourceFontFileGUID: d9b391ecd583bd54fa458814fbcad7be
|
||||
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: d9b391ecd583bd54fa458814fbcad7be, type: 3}
|
||||
m_SourceFontFile: {fileID: 12800000, guid: d9b391ecd583bd54fa458814fbcad7be, type: 3}
|
||||
m_AtlasPopulationMode: 1
|
||||
m_FaceInfo:
|
||||
m_FaceIndex: 0
|
||||
m_FamilyName: FOT-Rodin Pro
|
||||
m_StyleName: DB
|
||||
m_PointSize: 90
|
||||
m_Scale: 1
|
||||
m_UnitsPerEM: 0
|
||||
m_UnitsPerEM: 1000
|
||||
m_LineHeight: 180
|
||||
m_AscentLine: 79.200005
|
||||
m_CapLine: 71
|
||||
|
@ -89,59 +82,16 @@ MonoBehaviour:
|
|||
m_StrikethroughOffset: 20
|
||||
m_StrikethroughThickness: 4.5
|
||||
m_TabWidth: 31
|
||||
m_GlyphTable: []
|
||||
m_CharacterTable: []
|
||||
m_AtlasTextures:
|
||||
- {fileID: -7616882842637102995}
|
||||
m_AtlasTextureIndex: 0
|
||||
m_IsMultiAtlasTexturesEnabled: 1
|
||||
m_ClearDynamicDataOnBuild: 1
|
||||
m_UsedGlyphRects: []
|
||||
m_FreeGlyphRects:
|
||||
- m_X: 0
|
||||
m_Y: 0
|
||||
m_Width: 2047
|
||||
m_Height: 2047
|
||||
m_fontInfo:
|
||||
Name:
|
||||
PointSize: 0
|
||||
Scale: 0
|
||||
CharacterCount: 0
|
||||
LineHeight: 0
|
||||
Baseline: 0
|
||||
Ascender: 0
|
||||
CapHeight: 0
|
||||
Descender: 0
|
||||
CenterLine: 0
|
||||
SuperscriptOffset: 0
|
||||
SubscriptOffset: 0
|
||||
SubSize: 0
|
||||
Underline: 0
|
||||
UnderlineThickness: 0
|
||||
strikethrough: 0
|
||||
strikethroughThickness: 0
|
||||
TabWidth: 0
|
||||
Padding: 0
|
||||
AtlasWidth: 0
|
||||
AtlasHeight: 0
|
||||
atlas: {fileID: 0}
|
||||
m_AtlasWidth: 2048
|
||||
m_AtlasHeight: 2048
|
||||
m_AtlasPadding: 9
|
||||
m_AtlasRenderMode: 4165
|
||||
m_glyphInfoList: []
|
||||
m_KerningTable:
|
||||
kerningPairs: []
|
||||
m_FontFeatureTable:
|
||||
m_GlyphPairAdjustmentRecords: []
|
||||
fallbackFontAssets: []
|
||||
m_FallbackFontAssetTable: []
|
||||
m_Material: {fileID: 5296781804180034499}
|
||||
m_SourceFontFileGUID: d9b391ecd583bd54fa458814fbcad7be
|
||||
m_CreationSettings:
|
||||
sourceFontFileName:
|
||||
sourceFontFileGUID: d9b391ecd583bd54fa458814fbcad7be
|
||||
faceIndex: 0
|
||||
pointSizeSamplingMode: 0
|
||||
pointSize: 90
|
||||
padding: 9
|
||||
paddingMode: 0
|
||||
packingMode: 0
|
||||
atlasWidth: 2048
|
||||
atlasHeight: 2048
|
||||
|
@ -153,6 +103,115 @@ MonoBehaviour:
|
|||
fontStyleModifier: 0
|
||||
renderMode: 4165
|
||||
includeFontFeatures: 0
|
||||
m_SourceFontFile: {fileID: 12800000, guid: d9b391ecd583bd54fa458814fbcad7be, type: 3}
|
||||
m_SourceFontFilePath:
|
||||
m_AtlasPopulationMode: 1
|
||||
InternalDynamicOS: 0
|
||||
m_GlyphTable: []
|
||||
m_CharacterTable: []
|
||||
m_AtlasTextures:
|
||||
- {fileID: -7616882842637102995}
|
||||
m_AtlasTextureIndex: 0
|
||||
m_IsMultiAtlasTexturesEnabled: 1
|
||||
m_GetFontFeatures: 1
|
||||
m_ClearDynamicDataOnBuild: 1
|
||||
m_AtlasWidth: 2048
|
||||
m_AtlasHeight: 2048
|
||||
m_AtlasPadding: 9
|
||||
m_AtlasRenderMode: 4165
|
||||
m_UsedGlyphRects: []
|
||||
m_FreeGlyphRects:
|
||||
- m_X: 0
|
||||
m_Y: 0
|
||||
m_Width: 2047
|
||||
m_Height: 2047
|
||||
m_FontFeatureTable:
|
||||
m_MultipleSubstitutionRecords: []
|
||||
m_LigatureSubstitutionRecords:
|
||||
- m_ComponentGlyphIDs: 4f000000100000004e000000
|
||||
m_LigatureGlyphID: 11868
|
||||
- m_ComponentGlyphIDs: 4f00000054000000
|
||||
m_LigatureGlyphID: 8029
|
||||
m_GlyphPairAdjustmentRecords:
|
||||
- m_FirstAdjustmentRecord:
|
||||
m_GlyphIndex: 79
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 1.8000001
|
||||
m_YAdvance: 0
|
||||
m_SecondAdjustmentRecord:
|
||||
m_GlyphIndex: 87
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 0
|
||||
m_YAdvance: 0
|
||||
m_FeatureLookupFlags: -1702022880
|
||||
- m_FirstAdjustmentRecord:
|
||||
m_GlyphIndex: 79
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 0.45000002
|
||||
m_YAdvance: 0
|
||||
m_SecondAdjustmentRecord:
|
||||
m_GlyphIndex: 90
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 0
|
||||
m_YAdvance: 0
|
||||
m_FeatureLookupFlags: -1702022880
|
||||
- m_FirstAdjustmentRecord:
|
||||
m_GlyphIndex: 87
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: -4.5
|
||||
m_YAdvance: 0
|
||||
m_SecondAdjustmentRecord:
|
||||
m_GlyphIndex: 13
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 0
|
||||
m_YAdvance: 0
|
||||
m_FeatureLookupFlags: -1702022880
|
||||
- m_FirstAdjustmentRecord:
|
||||
m_GlyphIndex: 87
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: -4.5
|
||||
m_YAdvance: 0
|
||||
m_SecondAdjustmentRecord:
|
||||
m_GlyphIndex: 15
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 0
|
||||
m_YAdvance: 0
|
||||
m_FeatureLookupFlags: -1702022880
|
||||
- m_FirstAdjustmentRecord:
|
||||
m_GlyphIndex: 87
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 4.1400003
|
||||
m_YAdvance: 0
|
||||
m_SecondAdjustmentRecord:
|
||||
m_GlyphIndex: 122
|
||||
m_GlyphValueRecord:
|
||||
m_XPlacement: 0
|
||||
m_YPlacement: 0
|
||||
m_XAdvance: 0
|
||||
m_YAdvance: 0
|
||||
m_FeatureLookupFlags: -1702022880
|
||||
m_MarkToBaseAdjustmentRecords: []
|
||||
m_MarkToMarkAdjustmentRecords: []
|
||||
m_ShouldReimportFontFeatures: 0
|
||||
m_FallbackFontAssetTable: []
|
||||
m_FontWeightTable:
|
||||
- regularTypeface: {fileID: 0}
|
||||
italicTypeface: {fileID: 0}
|
||||
|
@ -181,6 +240,33 @@ MonoBehaviour:
|
|||
boldSpacing: 7
|
||||
italicStyle: 35
|
||||
tabSize: 10
|
||||
m_fontInfo:
|
||||
Name:
|
||||
PointSize: 0
|
||||
Scale: 0
|
||||
CharacterCount: 0
|
||||
LineHeight: 0
|
||||
Baseline: 0
|
||||
Ascender: 0
|
||||
CapHeight: 0
|
||||
Descender: 0
|
||||
CenterLine: 0
|
||||
SuperscriptOffset: 0
|
||||
SubscriptOffset: 0
|
||||
SubSize: 0
|
||||
Underline: 0
|
||||
UnderlineThickness: 0
|
||||
strikethrough: 0
|
||||
strikethroughThickness: 0
|
||||
TabWidth: 0
|
||||
Padding: 0
|
||||
AtlasWidth: 0
|
||||
AtlasHeight: 0
|
||||
m_glyphInfoList: []
|
||||
m_KerningTable:
|
||||
kerningPairs: []
|
||||
fallbackFontAssets: []
|
||||
atlas: {fileID: 0}
|
||||
--- !u!21 &5296781804180034499
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
|
|
@ -59,7 +59,7 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.20392157, g: 0.20392157, b: 0.20392157, a: 1}
|
||||
m_Color: {r: 0.6509804, g: 0.6509804, b: 0.6509804, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
|
@ -185,15 +185,17 @@ MonoBehaviour:
|
|||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
|
@ -323,7 +325,7 @@ RectTransform:
|
|||
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: 50, y: 50}
|
||||
m_SizeDelta: {x: 32, y: 32}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8995444694228702769
|
||||
CanvasRenderer:
|
||||
|
@ -474,10 +476,10 @@ RectTransform:
|
|||
m_Father: {fileID: 8995444695563632161}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -124.099976}
|
||||
m_SizeDelta: {x: 1202, y: 27.28003}
|
||||
m_SizeDelta: {x: -64, y: 27.28003}
|
||||
m_Pivot: {x: 0.5, y: 0}
|
||||
--- !u!222 &8995444694302297417
|
||||
CanvasRenderer:
|
||||
|
@ -494,7 +496,7 @@ MonoBehaviour:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8995444694302297421}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
|
@ -535,7 +537,7 @@ MonoBehaviour:
|
|||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 0
|
||||
m_Spacing: 4
|
||||
m_ChildForceExpandWidth: 1
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 1
|
||||
|
@ -668,15 +670,17 @@ MonoBehaviour:
|
|||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
|
@ -824,7 +828,7 @@ RectTransform:
|
|||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -38, y: -38}
|
||||
m_SizeDelta: {x: 52, y: 52}
|
||||
m_SizeDelta: {x: 42, y: 42}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8995444695466722202
|
||||
CanvasRenderer:
|
||||
|
@ -854,7 +858,7 @@ MonoBehaviour:
|
|||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Sprite: {fileID: 21300000, guid: 77703dfffd29ca6439338d6adfc62c9b, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
|
|
|
@ -27,6 +27,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216358884288554}
|
||||
m_Father: {fileID: 3276216360127051165}
|
||||
|
@ -73,6 +74,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216360411725377}
|
||||
m_Father: {fileID: 3276216359486296926}
|
||||
|
@ -150,6 +152,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216359673638260}
|
||||
m_Father: {fileID: 3276216358621914657}
|
||||
|
@ -283,6 +286,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216359294279433}
|
||||
m_Father: {fileID: 3276216359814484404}
|
||||
|
@ -416,6 +420,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216360127051165}
|
||||
m_Father: {fileID: 3276216359861115896}
|
||||
|
@ -507,14 +512,15 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3276216360127051165}
|
||||
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: 705.5, y: 0}
|
||||
m_SizeDelta: {x: 1371, y: 0}
|
||||
m_AnchoredPosition: {x: 627.5, y: 0}
|
||||
m_SizeDelta: {x: 1215, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3276216359264292463
|
||||
CanvasRenderer:
|
||||
|
@ -587,15 +593,17 @@ MonoBehaviour:
|
|||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
|
@ -675,6 +683,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3276216358902658882}
|
||||
m_RootOrder: 0
|
||||
|
@ -750,6 +759,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3276216359692268649}
|
||||
m_RootOrder: 0
|
||||
|
@ -826,6 +836,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216359861115896}
|
||||
- {fileID: 3276216358758736494}
|
||||
|
@ -918,6 +929,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3276216358884288554}
|
||||
m_RootOrder: 0
|
||||
|
@ -991,6 +1003,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216359458918366}
|
||||
m_Father: {fileID: 3276216360247263705}
|
||||
|
@ -1028,6 +1041,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216358902658882}
|
||||
m_Father: {fileID: 3276216360127051165}
|
||||
|
@ -1075,6 +1089,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216359023061022}
|
||||
- {fileID: 3276216360247263705}
|
||||
|
@ -1141,8 +1156,8 @@ MonoBehaviour:
|
|||
m_Vertical: 1
|
||||
m_MovementType: 1
|
||||
m_Elasticity: 0.1
|
||||
m_Inertia: 0
|
||||
m_DecelerationRate: 0.135
|
||||
m_Inertia: 1
|
||||
m_DecelerationRate: 0.01
|
||||
m_ScrollSensitivity: 35
|
||||
m_Viewport: {fileID: 3276216359023061022}
|
||||
m_HorizontalScrollbar: {fileID: 0}
|
||||
|
@ -1182,6 +1197,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216358621914657}
|
||||
- {fileID: 3276216359264292461}
|
||||
|
@ -1263,6 +1279,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3276216359692268649}
|
||||
m_Father: {fileID: 3276216359861115896}
|
||||
|
@ -1388,6 +1405,7 @@ RectTransform:
|
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3276216358758736494}
|
||||
m_RootOrder: 0
|
||||
|
@ -1468,15 +1486,17 @@ MonoBehaviour:
|
|||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
|
|
|
@ -14,8 +14,8 @@ RenderTexture:
|
|||
m_DownscaleFallback: 0
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 5
|
||||
m_Width: 1728
|
||||
m_Height: 972
|
||||
m_Width: 1109
|
||||
m_Height: 623
|
||||
m_AntiAliasing: 2
|
||||
m_MipCount: -1
|
||||
m_DepthStencilFormat: 92
|
||||
|
|
|
@ -14,8 +14,8 @@ RenderTexture:
|
|||
m_DownscaleFallback: 0
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 5
|
||||
m_Width: 2592
|
||||
m_Height: 1458
|
||||
m_Width: 1663
|
||||
m_Height: 934
|
||||
m_AntiAliasing: 1
|
||||
m_MipCount: -1
|
||||
m_DepthStencilFormat: 92
|
||||
|
|
Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 225 B |
|
@ -3,7 +3,7 @@ guid: f9232c079e126cd48a7344b23eaf42a5
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -106,12 +132,13 @@ TextureImporter:
|
|||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
internalID: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -20,6 +20,15 @@ AnimationClip:
|
|||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 4.8
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.016666668
|
||||
value: 4.8
|
||||
|
@ -48,15 +57,13 @@ AnimationClip:
|
|||
m_PPtrCurves:
|
||||
- curve:
|
||||
- time: 0
|
||||
value: {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- time: 0.016666668
|
||||
value: {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
value: {fileID: 1473124820, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
- time: 0.05
|
||||
value: {fileID: -1354652295505547112, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
value: {fileID: -91994477, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
- time: 0.083333336
|
||||
value: {fileID: -159972075433952791, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
value: {fileID: -1267118016, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
- time: 0.11666667
|
||||
value: {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
value: {fileID: -1983818443, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
attribute: m_Sprite
|
||||
path: Graphic
|
||||
classID: 114
|
||||
|
@ -83,11 +90,10 @@ AnimationClip:
|
|||
customType: 0
|
||||
isPPtrCurve: 1
|
||||
pptrCurveMapping:
|
||||
- {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: -1354652295505547112, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: -159972075433952791, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: 1473124820, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
- {fileID: -91994477, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
- {fileID: -1267118016, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
- {fileID: -1983818443, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
|
@ -112,6 +118,15 @@ AnimationClip:
|
|||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 4.8
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.016666668
|
||||
value: 4.8
|
||||
|
|
|
@ -20,7 +20,7 @@ AnimationClip:
|
|||
m_PPtrCurves:
|
||||
- curve:
|
||||
- time: 0
|
||||
value: {fileID: -9052558874090446877, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
value: {fileID: 2011919177, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
attribute: m_Sprite
|
||||
path: Graphic
|
||||
classID: 114
|
||||
|
@ -40,7 +40,7 @@ AnimationClip:
|
|||
customType: 0
|
||||
isPPtrCurve: 1
|
||||
pptrCurveMapping:
|
||||
- {fileID: -9052558874090446877, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: 2011919177, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
|
|
|
@ -20,7 +20,7 @@ AnimationClip:
|
|||
m_PPtrCurves:
|
||||
- curve:
|
||||
- time: 0
|
||||
value: {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
value: {fileID: -1983818443, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
attribute: m_Sprite
|
||||
path: Graphic
|
||||
classID: 114
|
||||
|
@ -40,7 +40,7 @@ AnimationClip:
|
|||
customType: 0
|
||||
isPPtrCurve: 1
|
||||
pptrCurveMapping:
|
||||
- {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3}
|
||||
- {fileID: -1983818443, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
|
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.9 KiB |
|
@ -3,7 +3,7 @@ guid: b7a1fac8b59b4d14289fa198206ef47e
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -33,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -67,10 +67,10 @@ TextureImporter:
|
|||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -101,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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: []
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 39656548c069d5541a9d9d1a808a76e4
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 6dd981c3e3319f243b56549e3f26fb72
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
257
Assets/Resources/Sprites/Editor/UI/autoplay.png.meta
Normal file
|
@ -0,0 +1,257 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 655fc978fc6e6ca41a3d3104b43298bd
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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:
|
||||
- serializedVersion: 2
|
||||
name: autoplay_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 32
|
||||
height: 32
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 672ded1a8ba4c93438f5ce6ac146c5c9
|
||||
internalID: -1983818443
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: autoplay_1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 32
|
||||
y: 0
|
||||
width: 32
|
||||
height: 32
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 801ff7807807f9b4cbf93407358070b8
|
||||
internalID: -1267118016
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: autoplay_2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 64
|
||||
y: 0
|
||||
width: 32
|
||||
height: 32
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 474e20f632bd42344af459b1022c612a
|
||||
internalID: -91994477
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: autoplay_3
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 96
|
||||
y: 0
|
||||
width: 32
|
||||
height: 32
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 48e39d246f49dc546b5b07e88238cd83
|
||||
internalID: 1473124820
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: autoplay_4
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 128
|
||||
y: 0
|
||||
width: 32
|
||||
height: 32
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: d479d07287a393649b83a8a3dd03c235
|
||||
internalID: 2011919177
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable:
|
||||
autoplay_0: -1983818443
|
||||
autoplay_1: -1267118016
|
||||
autoplay_2: -91994477
|
||||
autoplay_3: 1473124820
|
||||
autoplay_4: 2011919177
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -3,7 +3,7 @@ guid: e85d5d286a8191b499c570d33dd0899c
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 3.8 KiB |
|
@ -33,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -67,10 +67,10 @@ TextureImporter:
|
|||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -101,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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: []
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 49e59e302f4a24a4da56bd63185fcb01
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/UI/copy.png
Normal file
After Width: | Height: | Size: 740 B |
147
Assets/Resources/Sprites/Editor/UI/copy.png.meta
Normal file
|
@ -0,0 +1,147 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4ea196d68cba90a4d8b08ad6fe012f49
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 0
|
||||
aniso: 1
|
||||
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: 32
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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:
|
|
@ -3,7 +3,7 @@ guid: dd516f1a3380ca642939d4fa86603249
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 5.2 KiB |
|
@ -3,7 +3,7 @@ guid: 05e0181d5d7f7144f9263d1ccca41112
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 55bb46a7614176b4c941a5caf846f7e8
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 57971d0838f02124080be29466f8f638
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1 KiB |
|
@ -3,7 +3,7 @@ guid: ebef38bdbaa406747b71f2e1944deda2
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -41,7 +42,7 @@ TextureImporter:
|
|||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,9 +101,75 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: top
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 24
|
||||
width: 64
|
||||
height: 40
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 1, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: b2234eea6e56b0345980a27759a8fc26
|
||||
internalID: 1735959733
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: bottom
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 64
|
||||
height: 25
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 64b90d23bd4f157469bed27275bccb02
|
||||
internalID: -851579828
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
|
@ -112,6 +180,9 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable:
|
||||
bottom: -851579828
|
||||
top: 1735959733
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/UI/metronome_handle.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
147
Assets/Resources/Sprites/Editor/UI/metronome_handle.png.meta
Normal file
|
@ -0,0 +1,147 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1b346468a32e5fa45ba9e3343c18fc43
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 7
|
||||
spritePivot: {x: 0.5, y: 0}
|
||||
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: 32
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -3,7 +3,7 @@ guid: a1e215e768b7d1b4e93a60f8ce9c10fc
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 8ae7d31f585b0cf4483963e20305e4f8
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/UI/paste.png
Normal file
After Width: | Height: | Size: 903 B |
147
Assets/Resources/Sprites/Editor/UI/paste.png.meta
Normal file
|
@ -0,0 +1,147 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 42ffabfe4c37e104d8e9d884fe7db980
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 0
|
||||
aniso: 1
|
||||
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: 32
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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:
|
|
@ -3,7 +3,7 @@ guid: 1256a95b617ffc0458b3aec7fba83afe
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: ba34210de39bafc4d9bc0bb9163d83c7
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 0c2c8bed0306b7d408a268884c6af79b
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
8
Assets/Resources/Sprites/Editor/UI/rounded-bg-6px.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 521af96912848ef4887f49a524efb143
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 755 B |
|
@ -0,0 +1,345 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bd48ded17f064414eb670529c2375358
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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:
|
||||
- serializedVersion: 2
|
||||
name: right
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 5695434ae09b7894888b9766c0fafe5c
|
||||
internalID: -1106677661
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: top
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 64
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 1350a8d457f4c424f98c69ce6e6df1be
|
||||
internalID: 1099965293
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: topleft
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 128
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 3f2592c6e00f5894ab312ff3ce6f5dc1
|
||||
internalID: -997670817
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: topright
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 192
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 782584f2863184b458a12717d9678b79
|
||||
internalID: -1853719049
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: all
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 256
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0f3cd91703739b04b86d55ba7d1b25e9
|
||||
internalID: 1401309272
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: bottom
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 320
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: e3d49d09c750a384aac9b16bb51b26a2
|
||||
internalID: 1782490243
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: bottomleft
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 384
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: ed9f01dd79b2205449a42f45cb342289
|
||||
internalID: 1973936073
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: bottomright
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 448
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 03b889313964dcb47baff7696505e9c8
|
||||
internalID: -520399450
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: left
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 512
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 6, y: 6, z: 6, w: 6}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: c40d45e6189a98a4c873384925aab9f1
|
||||
internalID: 1937931747
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable:
|
||||
all: 1401309272
|
||||
bottom: 1782490243
|
||||
bottomleft: 1973936073
|
||||
bottomright: -520399450
|
||||
left: 1937931747
|
||||
right: -1106677661
|
||||
top: 1099965293
|
||||
topleft: -997670817
|
||||
topright: -1853719049
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -3,7 +3,7 @@ guid: 9ae7ecf2cc001d14595ec03e1d4d86a6
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 6e7b88d9d62ed1b429c63b83745e3672
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -111,6 +113,18 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -124,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -33,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -67,10 +67,10 @@ TextureImporter:
|
|||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -101,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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: []
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: e63dfe3b432d7404bab9ef307426a0bf
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 44c391c5df20f2844b9437c0f3138355
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 21da6678ec5624a439f87f3487819ac0
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 348825b5c77b9d143961119fc008e631
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: b29210cf5b7b8234984ec842a3110005
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 027d0a4d1b2bb2d4fa529145afb6e506
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -32,7 +33,7 @@ TextureImporter:
|
|||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
|
@ -62,9 +63,58 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
|
@ -88,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/UI/wrench.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
147
Assets/Resources/Sprites/Editor/UI/wrench.png.meta
Normal file
|
@ -0,0 +1,147 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9d635a6edbcd76549a58fd1b4640cc99
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 1
|
||||
aniso: 1
|
||||
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: 32
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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:
|
|
@ -3,7 +3,7 @@ guid: 5562630d3cb1e1b439e6f0d06c45b14a
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: 6f76ee0157ff5854295d8d0b12b5f165
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
|
@ -3,7 +3,7 @@ guid: c158bbf3be7618c468e696e8c2c54e95
|
|||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
|
@ -24,6 +24,7 @@ TextureImporter:
|
|||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
|
@ -62,13 +63,14 @@ TextureImporter:
|
|||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
|
@ -99,6 +101,30 @@ TextureImporter:
|
|||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
|
@ -112,6 +138,7 @@ TextureImporter:
|
|||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/eventObjs/blockResize.png
Normal file
After Width: | Height: | Size: 667 B |
147
Assets/Resources/Sprites/Editor/eventObjs/blockResize.png.meta
Normal file
|
@ -0,0 +1,147 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a0b769f6af690934f97fb73c271e1830
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
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: 1
|
||||
aniso: 1
|
||||
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: 35, y: 0, z: 35, 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: 128
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 2
|
||||
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
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
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: WebGL
|
||||
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: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -2,14 +2,15 @@
|
|||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: karateman_cellshader
|
||||
m_Shader: {fileID: 4800000, guid: ff54fed5718ccc543808dec1f266d1c8, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
|
@ -55,6 +56,7 @@ Material:
|
|||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _ColorMask: 15
|
||||
|
@ -82,8 +84,8 @@ Material:
|
|||
m_Colors:
|
||||
- _AddColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAlpha: {r: 0.84705883, g: 0.8156863, b: 0.6901961, a: 1}
|
||||
- _ColorAlpha: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorBravo: {r: 1, g: 0, b: 0, a: 1}
|
||||
- _ColorDelta: {r: 0.972549, g: 0.972549, b: 0.972549, a: 1}
|
||||
- _ColorDelta: {r: 0.81, g: 0.81, b: 0.81, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
using System;
|
||||
|
||||
public static class AppInfo {
|
||||
public const string Version = "0.0.982";
|
||||
public static readonly DateTime Date = new DateTime(2023, 09, 11, 20, 44, 02, 741, DateTimeKind.Utc);
|
||||
public const string Version = "0.0.1002";
|
||||
public static readonly DateTime Date = new DateTime(2023, 09, 27, 22, 20, 38, 655, DateTimeKind.Utc);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -222,6 +222,7 @@ namespace HeavenStudio
|
|||
Beatmap.AddNewVolumeChange(0, 100f);
|
||||
Beatmap.data.offset = 0f;
|
||||
Conductor.instance.musicSource.clip = null;
|
||||
RiqFileHandler.UnlockCache();
|
||||
RiqFileHandler.WriteRiq(Beatmap);
|
||||
AudioLoadDone = true;
|
||||
}
|
||||
|
@ -683,7 +684,7 @@ namespace HeavenStudio
|
|||
GoForAPerfect.instance.Disable();
|
||||
SectionMedalsManager.instance?.OnRemixEnd();
|
||||
|
||||
GlobalGameManager.UpdateDiscordStatus(Beatmap["remixtitle"], false, true);
|
||||
GlobalGameManager.UpdateDiscordStatus(Beatmap["remixtitle"].ToString(), false, true);
|
||||
|
||||
Play(beat, 1f);
|
||||
yield break;
|
||||
|
|
|
@ -23,8 +23,7 @@ namespace HeavenStudio.Editor.Track
|
|||
private float lastPosX;
|
||||
private float lastContentScale;
|
||||
private float lastTimelineSize;
|
||||
|
||||
private float contentPosX => Mathf.Abs(scrollRect.content.localPosition.x / scrollRect.content.localScale.x);
|
||||
private float lastZoom;
|
||||
|
||||
private List<GameObject> Lines = new List<GameObject>();
|
||||
|
||||
|
@ -50,10 +49,12 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
if (Editor.instance.fullscreen) return;
|
||||
|
||||
var x = Mathf.FloorToInt(contentPosX);
|
||||
// var x = Mathp.Round2Nearest(contentPosX, Timeline.instance.PixelsPerBeat);
|
||||
var x = Mathp.Round2Nearest(-scrollRect.content.anchoredPosition.x, Timeline.instance.PixelsPerBeat);
|
||||
var pos = new Vector3(x, transform.localPosition.y, transform.localPosition.z);
|
||||
transform.localPosition = pos;
|
||||
GetComponent<RectTransform>().anchoredPosition = new Vector3(rectTransform.anchoredPosition.x, rectTransform.anchoredPosition.y, 0);
|
||||
rectTransform.anchoredPosition = new Vector3(rectTransform.anchoredPosition.x, rectTransform.anchoredPosition.y, 0);
|
||||
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, transform.parent.parent.parent.GetComponent<RectTransform>().rect.height);
|
||||
|
||||
UpdateCount();
|
||||
}
|
||||
|
@ -62,28 +63,27 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
private void UpdateCount()
|
||||
{
|
||||
var changeScale = (scrollRect.viewport.rect.size.x != lastTimelineSize || scrollRect.content.localScale.x != lastContentScale);
|
||||
var changeScale = (scrollRect.viewport.rect.size.x != lastTimelineSize || scrollRect.content.localScale.x != lastContentScale) ||
|
||||
(Timeline.instance.Zoom != lastZoom);
|
||||
if (changeScale)
|
||||
{
|
||||
var rightSide = (scrollRect.viewport.GetComponent<RectTransform>().rect.width / scrollRect.content.localScale.x) + contentPosX;
|
||||
|
||||
for (int i = 0; i < Lines.Count; i++)
|
||||
Destroy(Lines[i].gameObject);
|
||||
Lines.Clear();
|
||||
|
||||
count = Mathf.RoundToInt(rightSide - contentPosX) + 2;
|
||||
count = Mathf.RoundToInt(scrollRect.viewport.GetComponent<RectTransform>().rect.width / Timeline.instance.PixelsPerBeat) + 2;
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
var line = Instantiate(transform.GetChild(0).gameObject, transform);
|
||||
line.transform.localPosition = new Vector3(i, line.transform.localPosition.y, line.transform.localPosition.z);
|
||||
var line = Instantiate(transform.GetChild(0).gameObject.GetComponent<RectTransform>(), transform);
|
||||
line.anchoredPosition = new Vector3(i * Timeline.instance.PixelsPerBeat, line.transform.localPosition.y, line.transform.localPosition.z);
|
||||
|
||||
var halfBeatRect = line.transform.GetChild(2).GetComponent<RectTransform>();
|
||||
halfBeatRect.anchoredPosition = new Vector3(scrollRect.content.localScale.x * 0.5f, halfBeatRect.anchoredPosition.y);
|
||||
halfBeatRect.anchoredPosition = new Vector3(Timeline.instance.PixelsPerBeat * 0.5f, halfBeatRect.anchoredPosition.y);
|
||||
|
||||
line.SetActive(true);
|
||||
line.gameObject.SetActive(true);
|
||||
|
||||
Lines.Add(line);
|
||||
Lines.Add(line.gameObject);
|
||||
}
|
||||
UpdateGridNum();
|
||||
|
||||
|
@ -96,6 +96,7 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
lastContentScale = scrollRect.content.localScale.x;
|
||||
lastTimelineSize = scrollRect.viewport.rect.size.x;
|
||||
lastZoom = Timeline.instance.Zoom;
|
||||
lastPosX = rectTransform.anchoredPosition.x;
|
||||
}
|
||||
|
||||
|
@ -106,7 +107,7 @@ namespace HeavenStudio.Editor.Track
|
|||
var line = Lines[i];
|
||||
if (line.transform.childCount == 0) continue;
|
||||
|
||||
var newNum = Mathf.RoundToInt(rectTransform.anchoredPosition.x + ((i) / snap));
|
||||
var newNum = Mathf.RoundToInt((rectTransform.anchoredPosition.x / Timeline.instance.PixelsPerBeat) + ((i) / snap));
|
||||
line.transform.GetChild(0).GetComponent<TMP_Text>().text = newNum.ToString(CultureInfo.CurrentCulture);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,206 +1,136 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
using Starpelly;
|
||||
|
||||
using HeavenStudio.Editor.Track;
|
||||
|
||||
using DG.Tweening;
|
||||
using Starpelly;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
public class BoxSelection : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private RectTransform boxVisual;
|
||||
[SerializeField] private RectTransform timelineContent;
|
||||
private Rect selectionBox;
|
||||
|
||||
private Vector2 startPosition = Vector2.zero;
|
||||
private Vector2 endPosition = Vector2.zero;
|
||||
|
||||
public bool selecting = false;
|
||||
|
||||
/// <summary>
|
||||
/// Are we currently drag selecting?
|
||||
/// </summary>
|
||||
public bool ActivelySelecting = false;
|
||||
public bool ActivelySelecting { get; private set; } = false;
|
||||
|
||||
private bool clickedInTimeline = false;
|
||||
private Vector2 startPosition = Vector2.zero;
|
||||
private Vector2 endPosition = Vector2.zero;
|
||||
private bool validClick = false;
|
||||
|
||||
[SerializeField] private RectTransform boxVisual;
|
||||
private CanvasGroup boxGroup;
|
||||
private TMPro.TMP_Text sizeText;
|
||||
private RectTransform text;
|
||||
|
||||
private float timelineLastX;
|
||||
|
||||
public static BoxSelection instance { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
DrawVisual();
|
||||
instance = this;
|
||||
|
||||
Color boxCol = EditorTheme.theme.properties.BoxSelectionCol.Hex2RGB();
|
||||
boxVisual.GetComponent<Image>().color = new Color(boxCol.r, boxCol.g, boxCol.b, 0.3f);
|
||||
boxVisual.transform.GetChild(0).GetComponent<Image>().color = EditorTheme.theme.properties.BoxSelectionOutlineCol.Hex2RGB();
|
||||
boxVisual.GetChild(0).GetComponent<Image>().color = new Color(boxCol.r, boxCol.g, boxCol.b, 0.3f);
|
||||
boxVisual.GetChild(0).GetChild(0).GetComponent<Image>().color = EditorTheme.theme.properties.BoxSelectionOutlineCol.Hex2RGB();
|
||||
|
||||
sizeText = boxVisual.transform.GetChild(1).GetComponent<TMPro.TMP_Text>();
|
||||
text = boxVisual.transform.GetChild(1).GetComponent<RectTransform>();
|
||||
sizeText = boxVisual.GetChild(0).GetChild(1).GetComponent<TMPro.TMP_Text>();
|
||||
sizeText.text = string.Empty;
|
||||
|
||||
boxGroup = boxVisual.GetComponent<CanvasGroup>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
public void LayerSelectUpdate()
|
||||
{
|
||||
if (Editor.instance == null) return;
|
||||
float deltaTimelineX = timelineContent.transform.localPosition.x - timelineLastX;
|
||||
|
||||
Camera camera = Editor.instance.EditorCamera;
|
||||
Vector3 scale = Editor.instance.MainCanvas.transform.localScale;
|
||||
|
||||
boxVisual.transform.localScale = new Vector2((1f / Timeline.instance.TimelineContent.localScale.x) / scale.x, 1f / scale.y);
|
||||
text.transform.localScale = scale;
|
||||
|
||||
if (Selections.instance.eventsSelected.Count > 0 && Timeline.instance.InteractingWithEvents())
|
||||
{
|
||||
startPosition = Vector2.zero;
|
||||
endPosition = Vector2.zero;
|
||||
DrawVisual();
|
||||
return;
|
||||
}
|
||||
|
||||
if (Conductor.instance.NotStopped() || !Timeline.instance.timelineState.selected)
|
||||
{
|
||||
startPosition = Vector2.zero;
|
||||
endPosition = Vector2.zero;
|
||||
DrawVisual();
|
||||
return;
|
||||
}
|
||||
|
||||
float beatLen = boxVisual.rect.width * boxVisual.transform.localScale.x;
|
||||
if (beatLen >= 0.5f)
|
||||
sizeText.text = $"{string.Format("{0:0.000}", beatLen)}";
|
||||
else
|
||||
sizeText.text = string.Empty;
|
||||
|
||||
// click
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
clickedInTimeline = Timeline.instance.CheckIfMouseInTimeline();
|
||||
if (!Timeline.instance.MouseInTimeline || TimelineBlockManager.Instance.InteractingWithEvents || Conductor.instance.NotStopped())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
startPosition = MousePosition();
|
||||
selectionBox = new Rect();
|
||||
validClick = true;
|
||||
startPosition = new Vector2(Timeline.instance.MousePos2Beat, Timeline.instance.MousePos2Layer);
|
||||
|
||||
boxGroup.DOKill();
|
||||
boxGroup.alpha = 1.0f;
|
||||
}
|
||||
|
||||
if (!validClick) return;
|
||||
|
||||
var startPos = startPosition;
|
||||
var endPos = endPosition;
|
||||
|
||||
if (Input.GetMouseButton(0))
|
||||
{
|
||||
endPos = new Vector2(Timeline.instance.MousePos2Beat,
|
||||
Timeline.instance.MousePos2Layer +
|
||||
(Timeline.instance.MousePos2Layer < startPosition.y ? 0 : 1));
|
||||
startPos = new Vector2(startPos.x,
|
||||
startPos.y + ((Timeline.instance.MousePos2Layer < startPosition.y) ? 1 : 0));
|
||||
|
||||
startPos = new Vector2(startPos.x, Mathf.Clamp(startPos.y, 0, Timeline.instance.LayerCount));
|
||||
endPos = new Vector2(endPos.x, Mathf.Clamp(endPos.y, 0, Timeline.instance.LayerCount));
|
||||
|
||||
ActivelySelecting = true;
|
||||
}
|
||||
|
||||
// dragging
|
||||
if (Input.GetMouseButton(0) && clickedInTimeline)
|
||||
{
|
||||
startPosition.x += deltaTimelineX * scale.x;
|
||||
endPosition = MousePosition();
|
||||
DrawSelection();
|
||||
SelectEvents(); //kek
|
||||
DrawVisual();
|
||||
}
|
||||
|
||||
// release click
|
||||
if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
startPosition = Vector2.zero;
|
||||
endPosition = Vector2.zero;
|
||||
SelectEvents();
|
||||
DrawVisual();
|
||||
|
||||
ActivelySelecting = false;
|
||||
}
|
||||
|
||||
timelineLastX = timelineContent.transform.localPosition.x;
|
||||
}
|
||||
|
||||
private void DrawVisual()
|
||||
{
|
||||
Vector2 boxStart = startPosition;
|
||||
Vector2 boxEnd = endPosition;
|
||||
|
||||
Vector2 boxCenter = (boxStart + boxEnd) / 2;
|
||||
boxVisual.position = boxCenter;
|
||||
|
||||
Vector2 boxSize = new Vector2(Mathf.Abs(boxStart.x - boxEnd.x), Mathf.Abs(boxStart.y - boxEnd.y));
|
||||
boxVisual.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, boxSize.x);
|
||||
boxVisual.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, boxSize.y);
|
||||
}
|
||||
|
||||
private void DrawSelection()
|
||||
{
|
||||
// X
|
||||
if (MousePosition().x < startPosition.x)
|
||||
{
|
||||
// dragging left
|
||||
selectionBox.xMin = MousePosition().x;
|
||||
selectionBox.xMax = startPosition.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
// dragging right
|
||||
selectionBox.xMin = startPosition.x;
|
||||
selectionBox.xMax = MousePosition().x;
|
||||
}
|
||||
|
||||
// Y
|
||||
if (MousePosition().y < startPosition.y)
|
||||
{
|
||||
// dragging down
|
||||
selectionBox.yMin = MousePosition().y;
|
||||
selectionBox.yMax = startPosition.y;
|
||||
}
|
||||
else
|
||||
{
|
||||
// dragging up
|
||||
selectionBox.yMin = startPosition.y;
|
||||
selectionBox.yMax = MousePosition().y;
|
||||
}
|
||||
}
|
||||
|
||||
private void SelectEvents()
|
||||
{
|
||||
if (!Input.GetKey(KeyCode.LeftShift) && !Timeline.instance.InteractingWithEvents() && Editor.instance.canSelect) Selections.instance.DeselectAll();
|
||||
|
||||
int selected = 0;
|
||||
|
||||
for (int i = 0; i < Timeline.instance.eventObjs.Count; i++)
|
||||
{
|
||||
TimelineEventObj e = Timeline.instance.eventObjs[i];
|
||||
|
||||
if (selectionBox.Overlaps(GetWorldRect(e.GetComponent<RectTransform>())))
|
||||
if (Conductor.instance.NotStopped())
|
||||
{
|
||||
Selections.instance.DragSelect(e);
|
||||
selected++;
|
||||
validClick = false;
|
||||
boxGroup.DOFade(0.0f, 0.3f).SetEase(Ease.OutExpo);
|
||||
|
||||
ActivelySelecting = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
selecting = selected > 0;
|
||||
var start = new Vector2(Mathf.Min(startPos.x, endPos.x),
|
||||
Mathf.Min(startPos.y, endPos.y));
|
||||
var end = new Vector2(Mathf.Max(startPos.x, endPos.x),
|
||||
Mathf.Max(startPos.y, endPos.y));
|
||||
|
||||
if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
validClick = false;
|
||||
boxGroup.DOFade(0.0f, 0.3f).SetEase(Ease.OutExpo);
|
||||
|
||||
ActivelySelecting = false;
|
||||
return;
|
||||
}
|
||||
|
||||
boxVisual.anchoredPosition = new Vector2(start.x * Timeline.instance.PixelsPerBeat, Timeline.instance.LayerToY(Mathf.FloorToInt(start.y)));
|
||||
boxVisual.sizeDelta = new Vector2((end.x - start.x) * Timeline.instance.PixelsPerBeat,
|
||||
(end.y - start.y) * Timeline.instance.LayerHeight());
|
||||
|
||||
var boxLength = end.x - start.x;
|
||||
if (boxLength > 0.01f)
|
||||
sizeText.text = (boxLength).ToString("F");
|
||||
else
|
||||
sizeText.text = string.Empty;
|
||||
|
||||
Select(start, end);
|
||||
}
|
||||
|
||||
public Vector3 MousePosition()
|
||||
private void Select(Vector2 start, Vector2 end)
|
||||
{
|
||||
var mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
|
||||
return new Vector3(mousePos.x, mousePos.y, 0);
|
||||
}
|
||||
var boxRect = new Rect(start.x, start.y, end.x - start.x, end.y - start.y);
|
||||
|
||||
public Rect GetWorldRect(RectTransform rectTransform)
|
||||
{
|
||||
Vector3[] corners = new Vector3[4];
|
||||
rectTransform.GetWorldCorners(corners);
|
||||
// Get the bottom left corner.
|
||||
Vector3 position = corners[0];
|
||||
// This doesn't take into account blocks the user cannot see, this is intentional.
|
||||
foreach (var marker in TimelineBlockManager.Instance.EntityMarkers.Values)
|
||||
{
|
||||
var markerRect = new Rect((float)marker.entity.beat, (int)marker.entity["track"], marker.entity.length, 1);
|
||||
|
||||
Vector2 size = new Vector2(
|
||||
rectTransform.lossyScale.x * rectTransform.rect.size.x,
|
||||
rectTransform.lossyScale.y * rectTransform.rect.size.y);
|
||||
|
||||
return new Rect(position, size);
|
||||
var boxOverMarker = boxRect.Overlaps(markerRect);
|
||||
if (boxOverMarker)
|
||||
{
|
||||
if (!marker.selected)
|
||||
Selections.instance.DragSelect(marker);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (marker.selected && !Input.GetKey(KeyCode.LeftShift))
|
||||
Selections.instance.Deselect(marker);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,210 +1,386 @@
|
|||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Jukebox;
|
||||
using Jukebox.Legacy;
|
||||
|
||||
using HeavenStudio.Editor.Track;
|
||||
using Newtonsoft.Json;
|
||||
using UnityEditor;
|
||||
using UnityEngine.Timeline;
|
||||
|
||||
namespace HeavenStudio.Editor.Commands
|
||||
{
|
||||
public class Selection : IAction
|
||||
public class Delete : ICommand
|
||||
{
|
||||
List<TimelineEventObj> eventObjs;
|
||||
List<TimelineEventObj> lastEventObjs;
|
||||
private List<Guid> toDeleteIds;
|
||||
private List<RiqEntityMore> deletedEntities = new();
|
||||
|
||||
public Selection(List<TimelineEventObj> eventObjs)
|
||||
struct RiqEntityMore
|
||||
{
|
||||
this.eventObjs = eventObjs;
|
||||
public RiqEntity riqEntity;
|
||||
public bool selected;
|
||||
}
|
||||
|
||||
public Delete(List<Guid> ids)
|
||||
{
|
||||
toDeleteIds = ids;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
}
|
||||
|
||||
public void Redo()
|
||||
{
|
||||
for (int i = 0; i < lastEventObjs.Count; i++)
|
||||
for (var i = 0; i < toDeleteIds.Count; i++)
|
||||
{
|
||||
Selections.instance.ShiftClickSelect(lastEventObjs[i]);
|
||||
var entity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == toDeleteIds[i]);
|
||||
if (entity != null)
|
||||
{
|
||||
var marker = TimelineBlockManager.Instance.EntityMarkers[entity.guid];
|
||||
|
||||
var clonedEntity = entity.DeepCopy();
|
||||
clonedEntity.guid = entity.guid; // We have to do this because entities (as of when I'm typing this), do not have Guids.
|
||||
|
||||
deletedEntities.Add(new() { riqEntity = clonedEntity, selected = marker.selected });
|
||||
|
||||
|
||||
Selections.instance.Deselect(marker);
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Remove(entity);
|
||||
|
||||
TimelineBlockManager.Instance.EntityMarkers.Remove(entity.guid);
|
||||
GameObject.Destroy(marker.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
lastEventObjs = eventObjs;
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
for (var i = 0; i < deletedEntities.Count; i++)
|
||||
{
|
||||
Selections.instance.ShiftClickSelect(eventObjs[i]);
|
||||
var deletedEntity = deletedEntities[i];
|
||||
GameManager.instance.Beatmap.Entities.Add(deletedEntity.riqEntity);
|
||||
var marker = TimelineBlockManager.Instance.CreateEntity(deletedEntity.riqEntity);
|
||||
|
||||
/*if (deletedEntities[i].selected)
|
||||
Selections.instance.ShiftClickSelect(marker);*/
|
||||
}
|
||||
GameManager.instance.SortEventsList();
|
||||
deletedEntities.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public class Place : ICommand
|
||||
{
|
||||
private RiqEntity placedEntityData;
|
||||
private Guid placedEventID;
|
||||
|
||||
// Redo times basically
|
||||
private int placeTimes = 0;
|
||||
|
||||
public Place(RiqEntity entity, Guid placedEventID)
|
||||
{
|
||||
this.placedEntityData = entity.DeepCopy();
|
||||
this.placedEventID = placedEventID;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
if (placeTimes > 0)
|
||||
{
|
||||
var entity = placedEntityData.DeepCopy();
|
||||
entity.guid = placedEventID;
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Add(entity);
|
||||
|
||||
var marker = TimelineBlockManager.Instance.CreateEntity(entity);
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
placeTimes++;
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
var createdEntity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == placedEventID);
|
||||
if (createdEntity != null)
|
||||
{
|
||||
placedEntityData = createdEntity.DeepCopy();
|
||||
|
||||
var marker = TimelineBlockManager.Instance.EntityMarkers[createdEntity.guid];
|
||||
|
||||
Selections.instance.Deselect(marker);
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Remove(createdEntity);
|
||||
|
||||
TimelineBlockManager.Instance.EntityMarkers.Remove(createdEntity.guid);
|
||||
GameObject.Destroy(marker.gameObject);
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// I spent 7 hours trying to fix this instead of sleeping, which would've probably worked better.
|
||||
// I'll go fuck myself later I'm just glad it works
|
||||
// I give massive props to people who code undo/redo systems
|
||||
// -- Starpelly
|
||||
|
||||
public class Move : IAction
|
||||
public class Duplicate : ICommand
|
||||
{
|
||||
public List<Pos> pos = new List<Pos>();
|
||||
public List<RiqEntity> dupEntityData = new();
|
||||
private readonly List<Guid> placedEntityIDs = new();
|
||||
|
||||
public class Pos
|
||||
public Duplicate(List<TimelineEventObj> original)
|
||||
{
|
||||
public TimelineEventObj eventObj;
|
||||
var entities = original.Select(c => c.entity).ToList();
|
||||
|
||||
public Vector2 lastPos_;
|
||||
public Vector3 previousPos;
|
||||
}
|
||||
|
||||
public Move(List<TimelineEventObj> eventObjs)
|
||||
{
|
||||
pos.Clear();
|
||||
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
Pos p = new Pos();
|
||||
p.eventObj = eventObjs[i];
|
||||
p.lastPos_ = eventObjs[i].moveStartPos;
|
||||
p.previousPos = eventObjs[i].transform.localPosition;
|
||||
this.pos.Add(p);
|
||||
dupEntityData.Add(entity.DeepCopy());
|
||||
}
|
||||
|
||||
for (var i = 0; i < original.Count; i++)
|
||||
{
|
||||
placedEntityIDs.Add(Guid.NewGuid());
|
||||
}
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
}
|
||||
|
||||
public void Redo()
|
||||
{
|
||||
for (int i = 0; i < pos.Count; i++)
|
||||
var entities = new List<RiqEntity>();
|
||||
foreach (var entity in dupEntityData)
|
||||
{
|
||||
EnsureEventObj(i);
|
||||
pos[i].eventObj.transform.localPosition = pos[i].previousPos;
|
||||
pos[i].eventObj.entity.beat = pos[i].eventObj.transform.localPosition.x;
|
||||
entities.Add(entity.DeepCopy());
|
||||
}
|
||||
|
||||
Selections.instance.DeselectAll();
|
||||
|
||||
for (var i = 0; i < entities.Count; i++)
|
||||
{
|
||||
var entity = entities[i];
|
||||
entity.guid = placedEntityIDs[i];
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Add(entity);
|
||||
var marker = TimelineBlockManager.Instance.CreateEntity(entity);
|
||||
Selections.instance.DragSelect(marker);
|
||||
|
||||
if (i == entities.Count - 1)
|
||||
marker.BeginMoving(false);
|
||||
}
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
for (int i = 0; i < pos.Count; i++)
|
||||
var deletedEntities = new List<RiqEntity>();
|
||||
for (var i = 0; i < placedEntityIDs.Count; i++)
|
||||
{
|
||||
EnsureEventObj(i);
|
||||
pos[i].eventObj.transform.localPosition = pos[i].lastPos_;
|
||||
pos[i].eventObj.entity.beat = pos[i].eventObj.transform.localPosition.x;
|
||||
}
|
||||
}
|
||||
var placedEntityID = placedEntityIDs[i];
|
||||
var createdEntity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == placedEntityID);
|
||||
|
||||
private void EnsureEventObj(int id)
|
||||
{
|
||||
if (pos[id].eventObj == null)
|
||||
if (createdEntity != null)
|
||||
{
|
||||
deletedEntities.Add(createdEntity);
|
||||
|
||||
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(placedEntityID))
|
||||
{
|
||||
var marker = TimelineBlockManager.Instance.EntityMarkers[placedEntityID];
|
||||
Selections.instance.Deselect(marker);
|
||||
|
||||
TimelineBlockManager.Instance.EntityMarkers.Remove(placedEntityID);
|
||||
GameObject.Destroy(marker.gameObject);
|
||||
}
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Remove(createdEntity);
|
||||
}
|
||||
}
|
||||
GameManager.instance.SortEventsList();
|
||||
dupEntityData.Clear();
|
||||
foreach (var entity in deletedEntities)
|
||||
{
|
||||
pos[id].eventObj = Timeline.instance.eventObjs.Find(c => c.eventObjID == pos[id].eventObj.eventObjID);
|
||||
dupEntityData.Add(entity.DeepCopy());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class Place : IAction
|
||||
public class Paste : ICommand
|
||||
{
|
||||
TimelineEventObj eventObj;
|
||||
TimelineEventObj deletedObj;
|
||||
private List<RiqEntity> pasteEntityData = new();
|
||||
private readonly List<Guid> entityIds = new();
|
||||
|
||||
public Place(TimelineEventObj eventObj)
|
||||
public Paste(List<RiqEntity> original)
|
||||
{
|
||||
this.eventObj = eventObj;
|
||||
original.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||
var firstEntityBeat = original[0].beat;
|
||||
for (var i = 0; i < original.Count; i++)
|
||||
{
|
||||
var entity = original[i].DeepCopy();
|
||||
entity.beat = Conductor.instance.songPositionInBeatsAsDouble + (entity.beat - firstEntityBeat);
|
||||
entityIds.Add(Guid.NewGuid());
|
||||
|
||||
pasteEntityData.Add(entity);
|
||||
}
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
}
|
||||
var entities = new List<RiqEntity>();
|
||||
foreach (var entity in pasteEntityData)
|
||||
{
|
||||
entities.Add(entity.DeepCopy());
|
||||
}
|
||||
|
||||
public void Redo()
|
||||
{
|
||||
deletedObj = Timeline.instance.AddEventObject(deletedObj.entity.datamodel, false, new Vector3((float) deletedObj.entity.beat, -deletedObj.entity["track"] * Timeline.instance.LayerHeight()), deletedObj.entity, true);
|
||||
Selections.instance.DeselectAll();
|
||||
for (var i = 0; i < entities.Count; i++)
|
||||
{
|
||||
var entity = entities[i];
|
||||
entity.guid = entityIds[i];
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Add(entity);
|
||||
var marker = TimelineBlockManager.Instance.CreateEntity(entity);
|
||||
|
||||
Selections.instance.DragSelect(marker);
|
||||
}
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
deletedObj = eventObj;
|
||||
Selections.instance.Deselect(eventObj);
|
||||
Timeline.instance.DestroyEventObject(eventObj.entity);
|
||||
// RiqEntity e = deletedObjs[i].entity;
|
||||
// Timeline.instance.AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * Timeline.instance.LayerHeight()), e, true, e.eventObj.eventObjID);
|
||||
}
|
||||
}
|
||||
|
||||
public class Deletion : IAction
|
||||
{
|
||||
List<TimelineEventObj> eventObjs;
|
||||
List<TimelineEventObj> deletedObjs;
|
||||
|
||||
public Deletion(List<TimelineEventObj> eventObjs)
|
||||
{
|
||||
this.eventObjs = eventObjs;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
deletedObjs = eventObjs;
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
var deletedEntities = new List<RiqEntity>();
|
||||
for (var i = 0; i < entityIds.Count; i++)
|
||||
{
|
||||
Selections.instance.Deselect(eventObjs[i]);
|
||||
Timeline.instance.DestroyEventObject(eventObjs[i].entity);
|
||||
var pastedEntityID = entityIds[i];
|
||||
var pastedEntity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == pastedEntityID);
|
||||
|
||||
if (pastedEntity != null)
|
||||
{
|
||||
deletedEntities.Add(pastedEntity);
|
||||
|
||||
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(pastedEntityID))
|
||||
{
|
||||
var marker = TimelineBlockManager.Instance.EntityMarkers[pastedEntityID];
|
||||
Selections.instance.Deselect(marker);
|
||||
|
||||
TimelineBlockManager.Instance.EntityMarkers.Remove(pastedEntityID);
|
||||
GameObject.Destroy(marker.gameObject);
|
||||
}
|
||||
|
||||
GameManager.instance.Beatmap.Entities.Remove(pastedEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Redo()
|
||||
{
|
||||
deletedObjs = eventObjs;
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
GameManager.instance.SortEventsList();
|
||||
pasteEntityData.Clear();
|
||||
foreach (var entity in deletedEntities)
|
||||
{
|
||||
Selections.instance.Deselect(eventObjs[i]);
|
||||
Timeline.instance.DestroyEventObject(eventObjs[i].entity);
|
||||
}
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
for (int i = 0; i < deletedObjs.Count; i++)
|
||||
{
|
||||
RiqEntity e = deletedObjs[i].entity;
|
||||
eventObjs[i] = Timeline.instance.AddEventObject(e.datamodel, false, new Vector3((float)e.beat, -e["track"] * Timeline.instance.LayerHeight()), e, true);
|
||||
pasteEntityData.Add(entity.DeepCopy());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class Duplicate : IAction
|
||||
public class Move : ICommand
|
||||
{
|
||||
List<TimelineEventObj> eventObjs;
|
||||
List<TimelineEventObj> copiedObjs;
|
||||
private readonly List<Guid> entityIDs = new();
|
||||
private EntityMove newMove;
|
||||
private EntityMove lastMove;
|
||||
|
||||
public Duplicate(List<TimelineEventObj> eventObjs)
|
||||
private struct EntityMove
|
||||
{
|
||||
this.eventObjs = eventObjs;
|
||||
public List<double> beat;
|
||||
public List<int> layer;
|
||||
|
||||
public EntityMove(List<double> beat, List<int> layer)
|
||||
{
|
||||
this.beat = beat;
|
||||
this.layer = layer;
|
||||
}
|
||||
}
|
||||
|
||||
public Move(List<RiqEntity> originalEntities, List<double> newBeat, List<int> newLayer)
|
||||
{
|
||||
entityIDs = originalEntities.Select(c => c.guid).ToList();
|
||||
newMove = new EntityMove(newBeat, newLayer);
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
}
|
||||
lastMove = new EntityMove();
|
||||
lastMove.beat = new();
|
||||
lastMove.layer = new();
|
||||
|
||||
public void Redo()
|
||||
{
|
||||
for (int i = 0; i < copiedObjs.Count; i++)
|
||||
for (var i = 0; i < entityIDs.Count; i++)
|
||||
{
|
||||
RiqEntity e = copiedObjs[i].entity;
|
||||
eventObjs[i] = Timeline.instance.AddEventObject(e.datamodel, false, new Vector3((float)e.beat, -e["track"] * Timeline.instance.LayerHeight()), e, true);
|
||||
var entity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == entityIDs[i]);
|
||||
|
||||
lastMove.beat.Add(entity.beat);
|
||||
lastMove.layer.Add((int)entity["track"]);
|
||||
|
||||
entity.beat = newMove.beat[i];
|
||||
entity["track"] = newMove.layer[i];
|
||||
|
||||
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(entity.guid))
|
||||
TimelineBlockManager.Instance.EntityMarkers[entity.guid].SetColor((int)entity["track"]);
|
||||
}
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
copiedObjs = eventObjs;
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
for (var i = 0; i < entityIDs.Count; i++)
|
||||
{
|
||||
Selections.instance.Deselect(eventObjs[i]);
|
||||
Timeline.instance.DestroyEventObject(eventObjs[i].entity);
|
||||
var entity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == entityIDs[i]);
|
||||
|
||||
entity.beat = lastMove.beat[i];
|
||||
entity["track"] = lastMove.layer[i];
|
||||
|
||||
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(entity.guid))
|
||||
TimelineBlockManager.Instance.EntityMarkers[entity.guid].SetColor((int)entity["track"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class Resize : ICommand
|
||||
{
|
||||
public Guid entityId;
|
||||
private EntityResize newResize;
|
||||
private EntityResize lastResize;
|
||||
|
||||
public struct EntityResize
|
||||
{
|
||||
public double beat;
|
||||
public float length;
|
||||
|
||||
public EntityResize(double beat, float length)
|
||||
{
|
||||
this.beat = beat;
|
||||
this.length = length;
|
||||
}
|
||||
}
|
||||
|
||||
public Resize(Guid entityId, double newBeat, float newLength)
|
||||
{
|
||||
this.entityId = entityId;
|
||||
newResize = new EntityResize(newBeat, newLength);
|
||||
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
var entity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == entityId);
|
||||
|
||||
lastResize = new EntityResize(entity.beat, entity.length);
|
||||
|
||||
entity.beat = newResize.beat;
|
||||
entity.length = newResize.length;
|
||||
|
||||
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(entityId))
|
||||
TimelineBlockManager.Instance.EntityMarkers[entityId].SetWidthHeight();
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
var entity = GameManager.instance.Beatmap.Entities.Find(c => c.guid == entityId);
|
||||
|
||||
entity.beat = lastResize.beat;
|
||||
entity.length = lastResize.length;
|
||||
|
||||
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(entityId))
|
||||
TimelineBlockManager.Instance.EntityMarkers[entityId].SetWidthHeight();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,37 +8,30 @@ namespace HeavenStudio.Editor
|
|||
{
|
||||
public class CommandManager : MonoBehaviour
|
||||
{
|
||||
private Stack<IAction> historyStack = new Stack<IAction>();
|
||||
private Stack<IAction> redoHistoryStack = new Stack<IAction>();
|
||||
public static CommandManager Instance { get; private set; }
|
||||
|
||||
int maxItems = 128;
|
||||
private Stack<ICommand> historyStack = new Stack<ICommand>();
|
||||
private Stack<ICommand> redoHistoryStack = new Stack<ICommand>();
|
||||
|
||||
public bool canUndo()
|
||||
{
|
||||
return historyStack.Count > 0;
|
||||
}
|
||||
public bool canRedo()
|
||||
{
|
||||
return redoHistoryStack.Count > 0;
|
||||
}
|
||||
public int HistoryCount => historyStack.Count;
|
||||
|
||||
public static CommandManager instance { get; private set; }
|
||||
private int maxItems = 128;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
Instance = this;
|
||||
}
|
||||
|
||||
public void Execute(IAction action)
|
||||
public void AddCommand(ICommand command)
|
||||
{
|
||||
action.Execute();
|
||||
historyStack.Push(action);
|
||||
command.Execute();
|
||||
historyStack.Push(command);
|
||||
redoHistoryStack.Clear();
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
public void UndoCommand()
|
||||
{
|
||||
if (!canUndo() || Conductor.instance.NotStopped()) return;
|
||||
if (!CanUndo() || Conductor.instance.NotStopped()) return;
|
||||
|
||||
if (historyStack.Count > 0)
|
||||
{
|
||||
|
@ -47,22 +40,14 @@ namespace HeavenStudio.Editor
|
|||
}
|
||||
}
|
||||
|
||||
public void Redo()
|
||||
public void RedoCommand()
|
||||
{
|
||||
if (!canRedo() || Conductor.instance.NotStopped()) return;
|
||||
if (!CanRedo() || Conductor.instance.NotStopped()) return;
|
||||
|
||||
if (redoHistoryStack.Count > 0)
|
||||
{
|
||||
historyStack.Push(redoHistoryStack.Peek());
|
||||
redoHistoryStack.Pop().Redo();
|
||||
}
|
||||
}
|
||||
|
||||
// this is here as to not hog up memory, "max undos" basically
|
||||
private void EnsureCapacity()
|
||||
{
|
||||
if (maxItems > 0)
|
||||
{
|
||||
redoHistoryStack.Pop().Execute();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,5 +56,15 @@ namespace HeavenStudio.Editor
|
|||
historyStack.Clear();
|
||||
redoHistoryStack.Clear();
|
||||
}
|
||||
|
||||
public bool CanUndo()
|
||||
{
|
||||
return historyStack.Count > 0;
|
||||
}
|
||||
public bool CanRedo()
|
||||
{
|
||||
return redoHistoryStack.Count > 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HeavenStudio.Editor.Commands
|
||||
{
|
||||
public interface IAction
|
||||
{
|
||||
void Execute();
|
||||
void Undo();
|
||||
void Redo();
|
||||
}
|
||||
}
|
8
Assets/Scripts/LevelEditor/Commands/ICommand.cs
Normal file
|
@ -0,0 +1,8 @@
|
|||
namespace HeavenStudio.Editor.Commands
|
||||
{
|
||||
public interface ICommand
|
||||
{
|
||||
void Execute();
|
||||
void Undo();
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d6a4c5ae13e9de743befd392956aaea7
|
||||
guid: 3e3bd3cc84702894b8dff6ecfc62e943
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
238
Assets/Scripts/LevelEditor/Commands/SpecialMarker.cs
Normal file
|
@ -0,0 +1,238 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using Jukebox;
|
||||
|
||||
using HeavenStudio.Editor.Track;
|
||||
using Newtonsoft.Json;
|
||||
using UnityEditor;
|
||||
using UnityEngine.Timeline;
|
||||
|
||||
namespace HeavenStudio.Editor.Commands
|
||||
{
|
||||
public class AddMarker : ICommand
|
||||
{
|
||||
private RiqEntity placedEntityData;
|
||||
private Guid placedEventID;
|
||||
|
||||
private int placedTimes = 0;
|
||||
private SpecialTimeline.HoveringTypes type;
|
||||
|
||||
public AddMarker(RiqEntity placedEntityData, Guid placedEventID, SpecialTimeline.HoveringTypes type)
|
||||
{
|
||||
this.placedEntityData = placedEntityData.DeepCopy();
|
||||
this.placedEventID = placedEventID;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
if (placedTimes > 0)
|
||||
{
|
||||
var entity = placedEntityData.DeepCopy();
|
||||
entity.guid = placedEventID;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
GameManager.instance.Beatmap.TempoChanges.Add(entity);
|
||||
SpecialTimeline.instance.AddTempoChange(false, entity);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
GameManager.instance.Beatmap.VolumeChanges.Add(entity);
|
||||
SpecialTimeline.instance.AddVolumeChange(false, entity);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
GameManager.instance.Beatmap.SectionMarkers.Add(entity);
|
||||
SpecialTimeline.instance.AddChartSection(false, entity);
|
||||
break;
|
||||
}
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
placedTimes++;
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
RiqEntity createdEntity = null;
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
createdEntity = GameManager.instance.Beatmap.TempoChanges.Find(x => x.guid == placedEventID);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
createdEntity = GameManager.instance.Beatmap.VolumeChanges.Find(x => x.guid == placedEventID);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
createdEntity = GameManager.instance.Beatmap.SectionMarkers.Find(x => x.guid == placedEventID);
|
||||
break;
|
||||
}
|
||||
if (createdEntity != null)
|
||||
{
|
||||
placedEntityData = createdEntity.DeepCopy();
|
||||
|
||||
var marker = SpecialTimeline.instance.specialTimelineObjs[createdEntity.guid];
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
GameManager.instance.Beatmap.TempoChanges.Remove(createdEntity);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
GameManager.instance.Beatmap.VolumeChanges.Remove(createdEntity);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
GameManager.instance.Beatmap.SectionMarkers.Remove(createdEntity);
|
||||
break;
|
||||
}
|
||||
|
||||
SpecialTimeline.instance.specialTimelineObjs.Remove(createdEntity.guid);
|
||||
GameObject.Destroy(marker.gameObject);
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class DeleteMarker : ICommand
|
||||
{
|
||||
private RiqEntity deletedEntityData;
|
||||
private Guid deletedEventID;
|
||||
private SpecialTimeline.HoveringTypes type;
|
||||
|
||||
public DeleteMarker(Guid deletedEventID, SpecialTimeline.HoveringTypes type)
|
||||
{
|
||||
this.deletedEventID = deletedEventID;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
RiqEntity deletedEntity = null;
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
deletedEntity = GameManager.instance.Beatmap.TempoChanges.Find(x => x.guid == deletedEventID);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
deletedEntity = GameManager.instance.Beatmap.VolumeChanges.Find(x => x.guid == deletedEventID);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
deletedEntity = GameManager.instance.Beatmap.SectionMarkers.Find(x => x.guid == deletedEventID);
|
||||
break;
|
||||
}
|
||||
if (deletedEntity != null)
|
||||
{
|
||||
var marker = SpecialTimeline.instance.specialTimelineObjs[deletedEntity.guid];
|
||||
|
||||
deletedEntityData = deletedEntity.DeepCopy();
|
||||
deletedEntityData.guid = deletedEntity.guid;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
GameManager.instance.Beatmap.TempoChanges.Remove(deletedEntity);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
GameManager.instance.Beatmap.VolumeChanges.Remove(deletedEntity);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
GameManager.instance.Beatmap.SectionMarkers.Remove(deletedEntity);
|
||||
break;
|
||||
}
|
||||
|
||||
SpecialTimeline.instance.specialTimelineObjs.Remove(deletedEntity.guid);
|
||||
GameObject.Destroy(marker.gameObject);
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
if (deletedEntityData != null)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
GameManager.instance.Beatmap.TempoChanges.Add(deletedEntityData);
|
||||
SpecialTimeline.instance.AddTempoChange(false, deletedEntityData);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
GameManager.instance.Beatmap.VolumeChanges.Add(deletedEntityData);
|
||||
SpecialTimeline.instance.AddVolumeChange(false, deletedEntityData);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
GameManager.instance.Beatmap.SectionMarkers.Add(deletedEntityData);
|
||||
SpecialTimeline.instance.AddChartSection(false, deletedEntityData);
|
||||
break;
|
||||
}
|
||||
deletedEntityData = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MoveMarker : ICommand
|
||||
{
|
||||
private Guid entityId;
|
||||
private double newBeat, lastBeat;
|
||||
private SpecialTimeline.HoveringTypes type;
|
||||
|
||||
public MoveMarker(Guid entityId, double newBeat, SpecialTimeline.HoveringTypes type)
|
||||
{
|
||||
this.entityId = entityId;
|
||||
this.newBeat = newBeat;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
RiqEntity movedEntity = null;
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
movedEntity = GameManager.instance.Beatmap.TempoChanges.Find(x => x.guid == entityId);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
movedEntity = GameManager.instance.Beatmap.VolumeChanges.Find(x => x.guid == entityId);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
movedEntity = GameManager.instance.Beatmap.SectionMarkers.Find(x => x.guid == entityId);
|
||||
break;
|
||||
}
|
||||
if (movedEntity != null)
|
||||
{
|
||||
lastBeat = movedEntity.beat;
|
||||
movedEntity.beat = newBeat;
|
||||
}
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
{
|
||||
RiqEntity movedEntity = null;
|
||||
switch (type)
|
||||
{
|
||||
case SpecialTimeline.HoveringTypes.TempoChange:
|
||||
movedEntity = GameManager.instance.Beatmap.TempoChanges.Find(x => x.guid == entityId);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.VolumeChange:
|
||||
movedEntity = GameManager.instance.Beatmap.VolumeChanges.Find(x => x.guid == entityId);
|
||||
break;
|
||||
case SpecialTimeline.HoveringTypes.SectionChange:
|
||||
movedEntity = GameManager.instance.Beatmap.SectionMarkers.Find(x => x.guid == entityId);
|
||||
break;
|
||||
}
|
||||
if (movedEntity != null)
|
||||
{
|
||||
movedEntity.beat = lastBeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 64b35e3b4d623144a82ed956ee52a136
|
||||
guid: 7052872845575e443816f75abb8e7e49
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -4,7 +4,7 @@ using UnityEngine;
|
|||
|
||||
using HeavenStudio.Editor.Commands;
|
||||
|
||||
public class TestCommand : IAction
|
||||
public class TestCommand : ICommand
|
||||
{
|
||||
private GameObject prefab;
|
||||
private Vector3 pos;
|
||||
|
|
|
@ -1,27 +1,20 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using TMPro;
|
||||
using Starpelly;
|
||||
using SFB;
|
||||
|
||||
using HeavenStudio.Common;
|
||||
using HeavenStudio.Editor.Track;
|
||||
using HeavenStudio.Util;
|
||||
using HeavenStudio.StudioDance;
|
||||
|
||||
using Jukebox;
|
||||
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
using UnityEditor;
|
||||
using System.Linq;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
|
@ -50,6 +43,8 @@ namespace HeavenStudio.Editor
|
|||
[SerializeField] private Button SaveBTN;
|
||||
[SerializeField] private Button UndoBTN;
|
||||
[SerializeField] private Button RedoBTN;
|
||||
[SerializeField] private Button CopyBTN;
|
||||
[SerializeField] private Button PasteBTN;
|
||||
[SerializeField] private Button MusicSelectBTN;
|
||||
[SerializeField] private Button FullScreenBTN;
|
||||
[SerializeField] private Button TempoFinderBTN;
|
||||
|
@ -63,6 +58,8 @@ namespace HeavenStudio.Editor
|
|||
[SerializeField] private Button EditorThemeBTN;
|
||||
[SerializeField] private Button EditorSettingsBTN;
|
||||
|
||||
[SerializeField] private GameObject DebugHolder;
|
||||
|
||||
[Header("Dialogs")]
|
||||
[SerializeField] private Dialog[] Dialogs;
|
||||
|
||||
|
@ -84,6 +81,8 @@ namespace HeavenStudio.Editor
|
|||
|
||||
public bool isShortcutsEnabled { get { return (!inAuthorativeMenu) && (!editingInputField); } }
|
||||
|
||||
private Vector2 lastScreenSize = Vector2.zero;
|
||||
|
||||
public static Editor instance { get; private set; }
|
||||
|
||||
private void Start()
|
||||
|
@ -110,6 +109,8 @@ namespace HeavenStudio.Editor
|
|||
Tooltip.AddTooltip(SaveBTN.gameObject, "Save Project <color=#adadad>[Ctrl+S]</color>\nSave Project As <color=#adadad>[Ctrl+Alt+S]</color>");
|
||||
Tooltip.AddTooltip(UndoBTN.gameObject, "Undo <color=#adadad>[Ctrl+Z]</color>");
|
||||
Tooltip.AddTooltip(RedoBTN.gameObject, "Redo <color=#adadad>[Ctrl+Y or Ctrl+Shift+Z]</color>");
|
||||
Tooltip.AddTooltip(CopyBTN.gameObject, "Copy <color=#adadad>[Ctrl+C]</color>");
|
||||
Tooltip.AddTooltip(PasteBTN.gameObject, "Paste <color=#adadad>[Ctrl+V]</color>");
|
||||
Tooltip.AddTooltip(MusicSelectBTN.gameObject, "Music Select");
|
||||
Tooltip.AddTooltip(FullScreenBTN.gameObject, "Preview <color=#adadad>[Tab]</color>");
|
||||
Tooltip.AddTooltip(TempoFinderBTN.gameObject, "Tempo Finder");
|
||||
|
@ -145,6 +146,12 @@ namespace HeavenStudio.Editor
|
|||
|
||||
public void LateUpdate()
|
||||
{
|
||||
if (lastScreenSize != new Vector2(UnityEngine.Screen.width, UnityEngine.Screen.height))
|
||||
{
|
||||
// Timeline.OnScreenResize();
|
||||
}
|
||||
lastScreenSize = new Vector2(UnityEngine.Screen.width, UnityEngine.Screen.height);
|
||||
|
||||
#region Keyboard Shortcuts
|
||||
if (isShortcutsEnabled)
|
||||
{
|
||||
|
@ -155,9 +162,7 @@ namespace HeavenStudio.Editor
|
|||
|
||||
if (Input.GetKeyDown(KeyCode.Delete) || Input.GetKeyDown(KeyCode.Backspace))
|
||||
{
|
||||
List<TimelineEventObj> ev = new List<TimelineEventObj>();
|
||||
for (int i = 0; i < Selections.instance.eventsSelected.Count; i++) ev.Add(Selections.instance.eventsSelected[i]);
|
||||
CommandManager.instance.Execute(new Commands.Deletion(ev));
|
||||
CommandManager.Instance.AddCommand(new Commands.Delete(Selections.instance.eventsSelected.Select(c => c.entity.guid).ToList()));
|
||||
}
|
||||
|
||||
if (Input.GetKey(KeyCode.LeftControl))
|
||||
|
@ -165,13 +170,21 @@ namespace HeavenStudio.Editor
|
|||
if (Input.GetKeyDown(KeyCode.Z))
|
||||
{
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
CommandManager.instance.Redo();
|
||||
CommandManager.Instance.RedoCommand();
|
||||
else
|
||||
CommandManager.instance.Undo();
|
||||
CommandManager.Instance.UndoCommand();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.Y))
|
||||
{
|
||||
CommandManager.instance.Redo();
|
||||
CommandManager.Instance.RedoCommand();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.C))
|
||||
{
|
||||
Timeline.instance.CopySelected();
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.V))
|
||||
{
|
||||
Timeline.instance.Paste();
|
||||
}
|
||||
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
|
@ -205,21 +218,38 @@ namespace HeavenStudio.Editor
|
|||
SaveRemix(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.F12))
|
||||
{
|
||||
DebugHolder.gameObject.SetActive(!DebugHolder.activeInHierarchy);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
if (CommandManager.instance.canUndo())
|
||||
// Undo+Redo
|
||||
if (CommandManager.Instance.CanUndo())
|
||||
UndoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.white;
|
||||
else
|
||||
UndoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
|
||||
if (CommandManager.instance.canRedo())
|
||||
if (CommandManager.Instance.CanRedo())
|
||||
RedoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.white;
|
||||
else
|
||||
RedoBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
|
||||
// Copy+Paste
|
||||
if (Selections.instance.eventsSelected.Count > 0)
|
||||
CopyBTN.transform.GetChild(0).GetComponent<Image>().color = Color.white;
|
||||
else
|
||||
CopyBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
if (Timeline.instance.CopiedEntities.Count > 0)
|
||||
PasteBTN.transform.GetChild(0).GetComponent<Image>().color = Color.white;
|
||||
else
|
||||
PasteBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
|
||||
|
||||
if (Timeline.instance.timelineState.selected && Editor.instance.canSelect)
|
||||
{
|
||||
/*
|
||||
if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
List<TimelineEventObj> selectedEvents = Timeline.instance.eventObjs.FindAll(c => c.selected == true && c.eligibleToMove == true);
|
||||
|
@ -240,6 +270,7 @@ namespace HeavenStudio.Editor
|
|||
CommandManager.instance.Execute(new Commands.Move(result));
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -357,6 +388,7 @@ namespace HeavenStudio.Editor
|
|||
{
|
||||
try
|
||||
{
|
||||
RiqFileHandler.UnlockCache();
|
||||
RiqFileHandler.WriteRiq(GameManager.instance.Beatmap);
|
||||
RiqFileHandler.PackRiq(path, true);
|
||||
Debug.Log("Packed RIQ successfully!");
|
||||
|
@ -407,6 +439,7 @@ namespace HeavenStudio.Editor
|
|||
|
||||
try
|
||||
{
|
||||
RiqFileHandler.UnlockCache();
|
||||
string tmpDir = RiqFileHandler.ExtractRiq(path);
|
||||
Debug.Log("Imported RIQ successfully!");
|
||||
LoadRemix();
|
||||
|
@ -424,7 +457,7 @@ namespace HeavenStudio.Editor
|
|||
currentRemixPath = path;
|
||||
remixName = Path.GetFileName(path);
|
||||
UpdateEditorStatus(false);
|
||||
CommandManager.instance.Clear();
|
||||
CommandManager.Instance.Clear();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -28,16 +28,39 @@ namespace HeavenStudio.Editor
|
|||
|
||||
private void Awake()
|
||||
{
|
||||
var defaultTheme = JsonConvert.DeserializeObject<Theme>(ThemeTXT.text);
|
||||
if (File.Exists(Application.persistentDataPath + "/editorTheme.json"))
|
||||
{
|
||||
string json = File.ReadAllText(Application.persistentDataPath + "/editorTheme.json");
|
||||
theme = JsonConvert.DeserializeObject<Theme>(json);
|
||||
|
||||
// Naive way of doing it? Possibly, but we should have a theme editor in the future.
|
||||
if (defaultTheme.properties.LayerColors != null)
|
||||
{
|
||||
theme.properties.LayerColors = new string[]
|
||||
{
|
||||
theme.properties.Layer1Col,
|
||||
theme.properties.Layer2Col,
|
||||
theme.properties.Layer3Col,
|
||||
theme.properties.Layer4Col,
|
||||
theme.properties.Layer5Col
|
||||
};
|
||||
// Create a function for this in the future.
|
||||
var savedTheme = JsonConvert.SerializeObject(theme, Formatting.Indented, new JsonSerializerSettings()
|
||||
{
|
||||
TypeNameHandling = TypeNameHandling.None,
|
||||
NullValueHandling = NullValueHandling.Include,
|
||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
||||
});
|
||||
PersistentDataManager.SaveTheme(savedTheme);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PersistentDataManager.SaveTheme(ThemeTXT.text);
|
||||
theme = JsonConvert.DeserializeObject<Theme>(ThemeTXT.text);
|
||||
theme = defaultTheme;
|
||||
}
|
||||
theme.SetLayersGradient();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
|
@ -61,30 +84,12 @@ namespace HeavenStudio.Editor
|
|||
layer.SetActive(true);
|
||||
layer.transform.GetChild(0).GetComponent<TMP_Text>().text = $"Track {i + 1}";
|
||||
|
||||
Color c = Color.white;
|
||||
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
c = theme.properties.Layer1Col.Hex2RGB();
|
||||
break;
|
||||
case 1:
|
||||
c = theme.properties.Layer2Col.Hex2RGB();
|
||||
break;
|
||||
case 2:
|
||||
c = theme.properties.Layer3Col.Hex2RGB();
|
||||
break;
|
||||
case 3:
|
||||
c = theme.properties.Layer4Col.Hex2RGB();
|
||||
break;
|
||||
case 4:
|
||||
c = theme.properties.Layer5Col.Hex2RGB();
|
||||
break;
|
||||
}
|
||||
|
||||
Color c = theme.LayersGradient.Evaluate(i / (float)(Timeline.instance.LayerCount - 1));
|
||||
|
||||
layer.GetComponent<Image>().color = c;
|
||||
Tooltip.AddTooltip(layer, $"Track {i + 1}");
|
||||
}
|
||||
|
||||
Destroy(layer);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,8 +89,8 @@ namespace HeavenStudio.Editor
|
|||
eventSelector.SetActive(false);
|
||||
this.entity = entity;
|
||||
|
||||
string col = TrackToThemeColour(entity["track"]);
|
||||
Editor.instance.SetGameEventTitle($"Properties for <color=#{col}>{action.displayName}</color> on Beat {entity.beat}");
|
||||
string col = TrackToThemeColour((int)entity["track"]);
|
||||
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();
|
||||
|
||||
|
@ -194,7 +194,7 @@ namespace HeavenStudio.Editor
|
|||
GameObject input = Instantiate(prefab);
|
||||
input.transform.SetParent(this.gameObject.transform);
|
||||
input.SetActive(true);
|
||||
input.transform.localScale = Vector2.one;
|
||||
input.transform.localScale = Vector3.one;
|
||||
|
||||
if(tooltip != string.Empty)
|
||||
Tooltip.AddTooltip(input, "", tooltip);
|
||||
|
|
|
@ -10,9 +10,11 @@ using DG.Tweening;
|
|||
using Starpelly;
|
||||
|
||||
using HeavenStudio.Editor.Track;
|
||||
using System.Text;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
// I hate the antichrist.
|
||||
public class GridGameSelector : MonoBehaviour
|
||||
{
|
||||
public Minigames.Minigame SelectedMinigame;
|
||||
|
@ -39,6 +41,7 @@ namespace HeavenStudio.Editor
|
|||
private bool gameOpen;
|
||||
private float selectorHeight;
|
||||
private float eventSize;
|
||||
private float timeSinceUpdateIndex = 0.0f;
|
||||
|
||||
public static GridGameSelector instance;
|
||||
|
||||
|
@ -93,6 +96,7 @@ namespace HeavenStudio.Editor
|
|||
currentEventIndex = 0;
|
||||
|
||||
CurrentSelected.transform.DOLocalMoveY(eventsParent.transform.GetChild(currentEventIndex).localPosition.y + eventsParent.transform.localPosition.y, 0.35f).SetEase(Ease.OutExpo);
|
||||
timeSinceUpdateIndex = 0;
|
||||
}
|
||||
|
||||
private void UpdateScrollPosition()
|
||||
|
@ -115,6 +119,13 @@ namespace HeavenStudio.Editor
|
|||
Mathf.Lerp(lastPos.y, end, 12 * Time.deltaTime),
|
||||
lastPos.z
|
||||
);
|
||||
|
||||
timeSinceUpdateIndex += Time.deltaTime;
|
||||
|
||||
CurrentSelected.GetComponent<RectTransform>().anchoredPosition =
|
||||
new Vector2(
|
||||
(Mathf.Cos(timeSinceUpdateIndex * 2.65f) * 12) + 12,
|
||||
CurrentSelected.GetComponent<RectTransform>().anchoredPosition.y);
|
||||
SetColors();
|
||||
}
|
||||
|
||||
|
@ -156,21 +167,31 @@ namespace HeavenStudio.Editor
|
|||
if (!EventCaller.FXOnlyGames().Contains(SelectedMinigame))
|
||||
{
|
||||
GameObject sg = Instantiate(EventRef, eventsParent);
|
||||
sg.GetComponent<TMP_Text>().text = "Switch Game";
|
||||
sg.GetComponentInChildren<TMP_Text>().text = "Switch Game";
|
||||
sg.SetActive(true);
|
||||
if (index == 0) sg.GetComponent<TMP_Text>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
if (index == 0) sg.GetComponentInChildren<TMP_Text>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
} else {
|
||||
index++;
|
||||
if (SelectedMinigame.name == "gameManager") index++;
|
||||
}
|
||||
|
||||
for (int i = 0; i < SelectedMinigame.actions.Count; i++)
|
||||
for (var i = 0; i < SelectedMinigame.actions.Count; i++)
|
||||
{
|
||||
if (SelectedMinigame.actions[i].actionName == "switchGame" || SelectedMinigame.actions[i].hidden) continue;
|
||||
GameObject g = Instantiate(EventRef, eventsParent);
|
||||
g.GetComponent<TMP_Text>().text = SelectedMinigame.actions[i].displayName;
|
||||
var action = SelectedMinigame.actions[i];
|
||||
if (action.actionName == "switchGame" || action.hidden) continue;
|
||||
|
||||
var g = Instantiate(EventRef, eventsParent);
|
||||
var label = g.GetComponentInChildren<TMP_Text>();
|
||||
|
||||
label.text = action.displayName;
|
||||
if (action.parameters != null && action.parameters.Count > 0)
|
||||
g.transform.GetChild(1).gameObject.SetActive(true);
|
||||
|
||||
if (index - 1 == i)
|
||||
label.color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
|
||||
g.SetActive(true);
|
||||
if (index - 1 == i) g.GetComponent<TMP_Text>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -192,9 +213,23 @@ namespace HeavenStudio.Editor
|
|||
//CurrentSelected.GetComponent<Image>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
|
||||
for (int i = 0; i < eventsParent.transform.childCount; i++)
|
||||
eventsParent.GetChild(i).GetComponent<TMP_Text>().color = EditorTheme.theme.properties.EventNormalCol.Hex2RGB();
|
||||
|
||||
eventsParent.GetChild(currentEventIndex).GetComponent<TMP_Text>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
{
|
||||
var eventTxt = eventsParent.GetChild(i).GetChild(0).GetComponent<TMP_Text>();
|
||||
var goalX = -25;
|
||||
if (i == currentEventIndex)
|
||||
{
|
||||
eventTxt.color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
|
||||
goalX = 16;
|
||||
}
|
||||
else
|
||||
{
|
||||
eventTxt.color = EditorTheme.theme.properties.EventNormalCol.Hex2RGB();
|
||||
}
|
||||
eventTxt.rectTransform.anchoredPosition =
|
||||
new Vector2(
|
||||
Mathf.Lerp(eventTxt.rectTransform.anchoredPosition.x, goalX, Time.deltaTime * 12f),
|
||||
eventTxt.rectTransform.anchoredPosition.y);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: find the equation to get the sizes automatically, nobody's been able to figure one out yet (might have to be manual?)
|
||||
|
@ -353,7 +388,7 @@ namespace HeavenStudio.Editor
|
|||
{
|
||||
if (Conductor.instance.NotStopped() || Editor.instance.inAuthorativeMenu) return;
|
||||
|
||||
if (Timeline.instance.CheckIfMouseInTimeline() && dragTimes < 1)
|
||||
if (Timeline.instance.MouseInTimeline && dragTimes < 1)
|
||||
{
|
||||
Timeline.instance.timelineState.SetState(Timeline.CurrentTimelineState.State.Selection);
|
||||
dragTimes++;
|
||||
|
|
|
@ -19,6 +19,8 @@ namespace HeavenStudio.Editor
|
|||
public TMP_Dropdown dropdown;
|
||||
private Array enumVals;
|
||||
|
||||
private bool openedDropdown = false;
|
||||
|
||||
new public void SetProperties(string propertyName, object type, string caption)
|
||||
{
|
||||
InitProperties(propertyName, caption);
|
||||
|
@ -51,6 +53,24 @@ namespace HeavenStudio.Editor
|
|||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -28,7 +28,7 @@ namespace HeavenStudio.Editor
|
|||
colorPreview.colorPicker.onColorChanged += _ =>
|
||||
parameterManager.chart[propertyName] = colorPreview.colorPicker.color;
|
||||
|
||||
Color paramCol = parameterManager.chart[propertyName];
|
||||
Color paramCol = (Color)parameterManager.chart[propertyName];
|
||||
|
||||
ColorBTN.onClick.AddListener(
|
||||
() =>
|
||||
|
|
|
@ -20,12 +20,15 @@ namespace HeavenStudio.Editor
|
|||
|
||||
private void Update()
|
||||
{
|
||||
// Should never happen to begin with.
|
||||
/*
|
||||
var buggedSelections = eventsSelected.FindAll(c => c == null);
|
||||
if (buggedSelections.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < buggedSelections.Count; i++)
|
||||
Deselect(buggedSelections[i]);
|
||||
}
|
||||
*/
|
||||
if (Editor.instance.isShortcutsEnabled)
|
||||
{
|
||||
if (Input.GetKey(KeyCode.LeftControl))
|
||||
|
@ -38,6 +41,10 @@ namespace HeavenStudio.Editor
|
|||
{
|
||||
DeselectAll();
|
||||
eventsSelected.Add(eventToAdd);
|
||||
eventToAdd.selected = true;
|
||||
eventToAdd.OnSelect();
|
||||
|
||||
TimelineBlockManager.Instance.SortMarkers();
|
||||
|
||||
// CommandManager.instance.Execute(new Commands.Selection(new List<TimelineEventObj>() { eventToAdd } ));
|
||||
}
|
||||
|
@ -46,41 +53,66 @@ namespace HeavenStudio.Editor
|
|||
{
|
||||
if (!eventsSelected.Contains(eventToAdd))
|
||||
{
|
||||
eventToAdd.selected = true;
|
||||
eventToAdd.OnSelect();
|
||||
eventsSelected.Add(eventToAdd);
|
||||
}
|
||||
else
|
||||
{
|
||||
eventToAdd.selected = false;
|
||||
eventToAdd.OnDeselect();
|
||||
eventsSelected.Remove(eventToAdd);
|
||||
}
|
||||
TimelineBlockManager.Instance.SortMarkers();
|
||||
}
|
||||
|
||||
public void DragSelect(TimelineEventObj eventToAdd)
|
||||
{
|
||||
if (!eventsSelected.Contains(eventToAdd))
|
||||
{
|
||||
eventToAdd.selected = true;
|
||||
eventsSelected.Add(eventToAdd);
|
||||
eventToAdd.OnSelect();
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectAll()
|
||||
{
|
||||
return;
|
||||
/*
|
||||
DeselectAll();
|
||||
var eventObjs = Timeline.instance.eventObjs;
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
{
|
||||
eventObjs[i].selected = true;
|
||||
eventObjs[i].OnSelect();
|
||||
|
||||
eventsSelected.Add(eventObjs[i]);
|
||||
}
|
||||
TimelineBlockManager.Instance.SortMarkers();
|
||||
*/
|
||||
}
|
||||
|
||||
public void DeselectAll()
|
||||
{
|
||||
foreach (var @event in eventsSelected)
|
||||
{
|
||||
@event.selected = false;
|
||||
@event.OnSelect();
|
||||
}
|
||||
eventsSelected.Clear();
|
||||
TimelineBlockManager.Instance.SortMarkers();
|
||||
}
|
||||
|
||||
public void Deselect(TimelineEventObj eventToDeselect)
|
||||
{
|
||||
if (eventsSelected.Contains(eventToDeselect))
|
||||
{
|
||||
eventToDeselect.selected = false;
|
||||
eventToDeselect.OnDeselect();
|
||||
eventsSelected.Remove(eventToDeselect);
|
||||
}
|
||||
TimelineBlockManager.Instance.SortMarkers();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,7 @@
|
|||
using Newtonsoft.Json;
|
||||
using Starpelly;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
|
@ -23,6 +26,8 @@ namespace HeavenStudio.Editor
|
|||
public string Layer4Col;
|
||||
public string Layer5Col;
|
||||
|
||||
public string[] LayerColors = null;
|
||||
|
||||
public string EventSelectedCol;
|
||||
public string EventNormalCol;
|
||||
|
||||
|
@ -32,5 +37,23 @@ namespace HeavenStudio.Editor
|
|||
public string BoxSelectionCol;
|
||||
public string BoxSelectionOutlineCol;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public Gradient LayersGradient { get; private set; }
|
||||
|
||||
public void SetLayersGradient()
|
||||
{
|
||||
if (properties.LayerColors == null) return;
|
||||
|
||||
LayersGradient = new Gradient();
|
||||
var colorKeys = new List<GradientColorKey>();
|
||||
for (var i = 0; i < properties.LayerColors.Length; i++)
|
||||
{
|
||||
var color = properties.LayerColors[i];
|
||||
colorKeys.Add(new GradientColorKey(color.Hex2RGB(), (float)i / (properties.LayerColors.Length - 1)));
|
||||
}
|
||||
|
||||
LayersGradient.colorKeys = colorKeys.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
public class KeepSizeRelativeToContent : MonoBehaviour
|
||||
{
|
||||
private RectTransform rectTransform;
|
||||
|
||||
public float sizeDeltaXInternal;
|
||||
|
||||
public float sizeDeltaX = 1.0f;
|
||||
public float multiply;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
SetScale(Timeline.instance.TimelineContent.localScale.x);
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
SetScale(Timeline.instance.TimelineContent.localScale.x);
|
||||
}
|
||||
|
||||
private void SetScale(float scale)
|
||||
{
|
||||
rectTransform.localScale = new Vector3((1.0f / scale) * multiply, transform.localScale.y, 1);
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -30,8 +30,8 @@ public class SectionDialog : Dialog
|
|||
public void SetSectionObj(SectionTimelineObj sectionObj)
|
||||
{
|
||||
this.sectionObj = sectionObj;
|
||||
sectionName.text = sectionObj.chartSection["sectionName"];
|
||||
challengeEnable.isOn = sectionObj.chartSection["startPerfect"];
|
||||
sectionName.text = sectionObj.chartEntity["sectionName"];
|
||||
challengeEnable.isOn = sectionObj.chartEntity["startPerfect"];
|
||||
}
|
||||
|
||||
public void DeleteSection()
|
||||
|
@ -41,20 +41,19 @@ public class SectionDialog : Dialog
|
|||
Editor.instance.inAuthorativeMenu = false;
|
||||
}
|
||||
if (sectionObj == null) return;
|
||||
GameManager.instance.Beatmap.SectionMarkers.Remove(sectionObj.chartSection);
|
||||
sectionObj.DeleteObj();
|
||||
}
|
||||
|
||||
public void ChangeSectionName(string name)
|
||||
{
|
||||
if (sectionObj == null) return;
|
||||
sectionObj.chartSection["sectionName"] = name;
|
||||
sectionObj.chartEntity["sectionName"] = name;
|
||||
sectionObj.UpdateLabel();
|
||||
}
|
||||
|
||||
public void SetSectionChallenge()
|
||||
{
|
||||
if (sectionObj == null) return;
|
||||
sectionObj.chartSection["startPerfect"] = challengeEnable.isOn;
|
||||
sectionObj.chartEntity["startPerfect"] = challengeEnable.isOn;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace HeavenStudio.Editor.Track
|
|||
[Header("Components")]
|
||||
private RectTransform rectTransform;
|
||||
|
||||
public List<SpecialTimelineObj> specialTimelineObjs = new List<SpecialTimelineObj>();
|
||||
public Dictionary<Guid, SpecialTimelineObj> specialTimelineObjs = new();
|
||||
|
||||
[System.Flags]
|
||||
public enum HoveringTypes
|
||||
|
@ -48,7 +48,7 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
ClearSpecialTimeline();
|
||||
GameManager.instance.SortEventsList();
|
||||
|
||||
|
||||
bool first = true;
|
||||
foreach (var tempoChange in GameManager.instance.Beatmap.TempoChanges)
|
||||
{
|
||||
|
@ -110,7 +110,7 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public void FixObjectsVisibility()
|
||||
{
|
||||
foreach (SpecialTimelineObj obj in specialTimelineObjs)
|
||||
foreach (SpecialTimelineObj obj in specialTimelineObjs.Values)
|
||||
{
|
||||
obj.SetVisibility(Timeline.instance.timelineState.currentState);
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public void ClearSpecialTimeline()
|
||||
{
|
||||
foreach (SpecialTimelineObj obj in specialTimelineObjs)
|
||||
foreach (SpecialTimelineObj obj in specialTimelineObjs.Values)
|
||||
{
|
||||
Destroy(obj.gameObject);
|
||||
}
|
||||
|
@ -126,7 +126,16 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
|
||||
public void AddTempoChange(bool create, RiqEntity tempoChange_ = null, bool first = false)
|
||||
{
|
||||
{
|
||||
if (create)
|
||||
{
|
||||
foreach (var e in GameManager.instance.Beatmap.TempoChanges)
|
||||
{
|
||||
if (Timeline.instance.MousePos2BeatSnap > e.beat - Timeline.instance.snapInterval && Timeline.instance.MousePos2BeatSnap < e.beat + Timeline.instance.snapInterval)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
GameObject tempoChange = Instantiate(RefTempoChange.gameObject, this.transform);
|
||||
|
||||
tempoChange.transform.GetChild(0).GetComponent<Image>().color = EditorTheme.theme.properties.TempoLayerCol.Hex2RGB();
|
||||
|
@ -136,39 +145,46 @@ namespace HeavenStudio.Editor.Track
|
|||
tempoChange.SetActive(true);
|
||||
|
||||
TempoTimelineObj tempoTimelineObj = tempoChange.GetComponent<TempoTimelineObj>();
|
||||
tempoTimelineObj.type = HoveringTypes.TempoChange;
|
||||
|
||||
if (create == true)
|
||||
if (create)
|
||||
{
|
||||
tempoChange.transform.position = new Vector3(Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition).x + 0.08f, tempoChange.transform.position.y);
|
||||
tempoChange.transform.localPosition = new Vector3(Starpelly.Mathp.Round2Nearest(tempoChange.transform.localPosition.x, Timeline.SnapInterval()), tempoChange.transform.localPosition.y);
|
||||
|
||||
float lastTempo = Conductor.instance.GetBpmAtBeat(tempoChange.transform.localPosition.x);
|
||||
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
|
||||
{
|
||||
lastTempo = lastTempo * 2f;
|
||||
lastTempo *= 2f;
|
||||
}
|
||||
else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl))
|
||||
{
|
||||
lastTempo = lastTempo / 2f;
|
||||
lastTempo /= 2f;
|
||||
}
|
||||
RiqEntity tempoC = GameManager.instance.Beatmap.AddNewTempoChange(tempoChange.transform.localPosition.x, lastTempo);
|
||||
tempoTimelineObj.tempoChange = tempoC;
|
||||
RiqEntity tempoC = GameManager.instance.Beatmap.AddNewTempoChange(Timeline.instance.MousePos2BeatSnap, lastTempo);
|
||||
tempoTimelineObj.chartEntity = tempoC;
|
||||
CommandManager.Instance.AddCommand(new Commands.AddMarker(tempoC, tempoC.guid, HoveringTypes.TempoChange));
|
||||
}
|
||||
else
|
||||
{
|
||||
tempoTimelineObj.tempoChange = tempoChange_;
|
||||
tempoChange.transform.localPosition = new Vector3((float) tempoTimelineObj.tempoChange.beat, tempoChange.transform.localPosition.y);
|
||||
tempoTimelineObj.chartEntity = tempoChange_;
|
||||
tempoTimelineObj.first = first;
|
||||
}
|
||||
tempoTimelineObj.SetVisibility(Timeline.instance.timelineState.currentState);
|
||||
|
||||
specialTimelineObjs.Add(tempoTimelineObj);
|
||||
specialTimelineObjs.Add(tempoTimelineObj.chartEntity.guid, tempoTimelineObj);
|
||||
|
||||
Timeline.instance.FitToSong();
|
||||
}
|
||||
|
||||
public void AddVolumeChange(bool create, RiqEntity volumeChange_ = null, bool first = false)
|
||||
{
|
||||
{
|
||||
if (create)
|
||||
{
|
||||
foreach (var e in GameManager.instance.Beatmap.VolumeChanges)
|
||||
{
|
||||
if (Timeline.instance.MousePos2BeatSnap > e.beat - Timeline.instance.snapInterval && Timeline.instance.MousePos2BeatSnap < e.beat + Timeline.instance.snapInterval)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
GameObject volumeChange = Instantiate(RefVolumeChange.gameObject, this.transform);
|
||||
|
||||
volumeChange.transform.GetChild(0).GetComponent<Image>().color = EditorTheme.theme.properties.MusicLayerCol.Hex2RGB();
|
||||
|
@ -178,29 +194,36 @@ namespace HeavenStudio.Editor.Track
|
|||
volumeChange.SetActive(true);
|
||||
|
||||
VolumeTimelineObj volumeTimelineObj = volumeChange.GetComponent<VolumeTimelineObj>();
|
||||
volumeTimelineObj.type = HoveringTypes.VolumeChange;
|
||||
|
||||
if (create == true)
|
||||
if (create)
|
||||
{
|
||||
volumeChange.transform.position = new Vector3(Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition).x + 0.08f, volumeChange.transform.position.y);
|
||||
volumeChange.transform.localPosition = new Vector3(Starpelly.Mathp.Round2Nearest(volumeChange.transform.localPosition.x, Timeline.SnapInterval()), volumeChange.transform.localPosition.y);
|
||||
|
||||
RiqEntity volumeC = GameManager.instance.Beatmap.AddNewVolumeChange(volumeChange.transform.localPosition.x, 100f);
|
||||
volumeTimelineObj.volumeChange = volumeC;
|
||||
RiqEntity volumeC = GameManager.instance.Beatmap.AddNewVolumeChange(Timeline.instance.MousePos2BeatSnap, 100f);
|
||||
volumeTimelineObj.chartEntity = volumeC;
|
||||
GameManager.instance.Beatmap.VolumeChanges.Add(volumeC);
|
||||
CommandManager.Instance.AddCommand(new Commands.AddMarker(volumeC, volumeC.guid, HoveringTypes.VolumeChange));
|
||||
}
|
||||
else
|
||||
{
|
||||
volumeTimelineObj.volumeChange = volumeChange_;
|
||||
volumeChange.transform.localPosition = new Vector3((float) volumeTimelineObj.volumeChange.beat, volumeChange.transform.localPosition.y);
|
||||
volumeTimelineObj.chartEntity = volumeChange_;
|
||||
volumeTimelineObj.first = first;
|
||||
}
|
||||
volumeTimelineObj.SetVisibility(Timeline.instance.timelineState.currentState);
|
||||
|
||||
specialTimelineObjs.Add(volumeTimelineObj);
|
||||
specialTimelineObjs.Add(volumeTimelineObj.chartEntity.guid, volumeTimelineObj);
|
||||
}
|
||||
|
||||
public void AddChartSection(bool create, RiqEntity chartSection_ = null)
|
||||
{
|
||||
{
|
||||
if (create)
|
||||
{
|
||||
foreach (var e in GameManager.instance.Beatmap.SectionMarkers)
|
||||
{
|
||||
if (Timeline.instance.MousePos2BeatSnap > e.beat - Timeline.instance.snapInterval && Timeline.instance.MousePos2BeatSnap < e.beat + Timeline.instance.snapInterval)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
GameObject chartSection = Instantiate(RefSectionChange.gameObject, this.transform);
|
||||
|
||||
chartSection.transform.GetChild(0).GetComponent<Image>().color = EditorTheme.theme.properties.SectionLayerCol.Hex2RGB();
|
||||
|
@ -211,32 +234,26 @@ namespace HeavenStudio.Editor.Track
|
|||
chartSection.SetActive(true);
|
||||
|
||||
SectionTimelineObj sectionTimelineObj = chartSection.GetComponent<SectionTimelineObj>();
|
||||
sectionTimelineObj.type = HoveringTypes.SectionChange;
|
||||
|
||||
if (create == true)
|
||||
if (create)
|
||||
{
|
||||
chartSection.transform.position = new Vector3(Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition).x + 0.08f, chartSection.transform.position.y);
|
||||
chartSection.transform.localPosition = new Vector3(Starpelly.Mathp.Round2Nearest(chartSection.transform.localPosition.x, Timeline.SnapInterval()), chartSection.transform.localPosition.y);
|
||||
RiqEntity sectionC = GameManager.instance.Beatmap.AddNewSectionMarker(Timeline.instance.MousePos2BeatSnap, "New Section");
|
||||
|
||||
RiqEntity sectionC = GameManager.instance.Beatmap.AddNewSectionMarker(chartSection.transform.localPosition.x, "New Section");
|
||||
|
||||
sectionTimelineObj.chartSection = sectionC;
|
||||
sectionTimelineObj.chartEntity = sectionC;
|
||||
GameManager.instance.Beatmap.SectionMarkers.Add(sectionC);
|
||||
CommandManager.Instance.AddCommand(new Commands.AddMarker(sectionC, sectionC.guid, HoveringTypes.SectionChange));
|
||||
}
|
||||
else
|
||||
{
|
||||
sectionTimelineObj.chartSection = chartSection_;
|
||||
chartSection.transform.localPosition = new Vector3((float) sectionTimelineObj.chartSection.beat, chartSection.transform.localPosition.y);
|
||||
sectionTimelineObj.chartEntity = chartSection_;
|
||||
}
|
||||
sectionTimelineObj.SetVisibility(Timeline.instance.timelineState.currentState);
|
||||
|
||||
specialTimelineObjs.Add(sectionTimelineObj);
|
||||
specialTimelineObjs.Add(sectionTimelineObj.chartEntity.guid, sectionTimelineObj);
|
||||
//auto-open the dialog
|
||||
sectionTimelineObj.OnRightClick();
|
||||
}
|
||||
|
||||
public bool InteractingWithEvents()
|
||||
{
|
||||
return specialTimelineObjs.FindAll(c => c.hovering == true).Count > 0 || specialTimelineObjs.FindAll(c => c.moving == true).Count > 0;
|
||||
if (create)
|
||||
sectionTimelineObj.OnRightClick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,8 +16,6 @@ namespace HeavenStudio.Editor.Track
|
|||
[SerializeField] private GameObject chartLine;
|
||||
[SerializeField] private SectionDialog sectionDialog;
|
||||
|
||||
public RiqEntity chartSection;
|
||||
|
||||
new private void Update()
|
||||
{
|
||||
base.Update();
|
||||
|
@ -31,7 +29,9 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public void UpdateLabel()
|
||||
{
|
||||
sectionLabel.text = chartSection["sectionName"];
|
||||
sectionLabel.text = chartEntity["sectionName"];
|
||||
if (!moving)
|
||||
SetX(chartEntity);
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
|
@ -54,16 +54,19 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
}
|
||||
|
||||
public override bool OnMove(float beat)
|
||||
public override bool OnMove(float beat, bool final = false)
|
||||
{
|
||||
foreach (RiqEntity sectionChange in GameManager.instance.Beatmap.SectionMarkers)
|
||||
{
|
||||
if (this.chartSection == sectionChange)
|
||||
if (this.chartEntity == sectionChange)
|
||||
continue;
|
||||
if (beat > sectionChange.beat - Timeline.instance.snapInterval && beat < sectionChange.beat + Timeline.instance.snapInterval)
|
||||
return false;
|
||||
}
|
||||
this.chartSection.beat = beat;
|
||||
if (final)
|
||||
CommandManager.Instance.AddCommand(new Commands.MoveMarker(chartEntity.guid, beat, type));
|
||||
else
|
||||
SetX(beat);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ using UnityEngine;
|
|||
using TMPro;
|
||||
|
||||
using DG.Tweening;
|
||||
using Jukebox;
|
||||
|
||||
namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
|
@ -17,10 +18,13 @@ namespace HeavenStudio.Editor.Track
|
|||
private float startPosX;
|
||||
private float lastPosX;
|
||||
|
||||
public SpecialTimeline.HoveringTypes type;
|
||||
public bool moving = false;
|
||||
public bool hovering;
|
||||
public bool first = false;
|
||||
|
||||
public RiqEntity chartEntity;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
|
@ -49,23 +53,22 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
if (moving)
|
||||
{
|
||||
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
|
||||
|
||||
transform.position = new Vector3(mousePos.x - startPosX, transform.position.y, 0);
|
||||
transform.localPosition = new Vector3(Mathf.Clamp(Starpelly.Mathp.Round2Nearest(transform.localPosition.x, Timeline.SnapInterval()), 0, Mathf.Infinity), transform.localPosition.y);
|
||||
OnMove(Timeline.instance.MousePos2BeatSnap);
|
||||
|
||||
if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
if (!OnMove(transform.localPosition.x))
|
||||
transform.localPosition = new Vector3(lastPosX, transform.localPosition.y);
|
||||
/*if (!OnMove(transform.localPosition.x))
|
||||
transform.localPosition = new Vector3(lastPosX, transform.localPosition.y);*/
|
||||
|
||||
moving = false;
|
||||
OnMove(Timeline.instance.MousePos2BeatSnap, true);
|
||||
lastPosX = transform.localPosition.x;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
if (moving)
|
||||
{
|
||||
if (!OnMove(transform.localPosition.x))
|
||||
|
@ -73,10 +76,21 @@ namespace HeavenStudio.Editor.Track
|
|||
moving = false;
|
||||
lastPosX = transform.localPosition.x;
|
||||
}
|
||||
*/
|
||||
hovering = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetX(RiqEntity entity)
|
||||
{
|
||||
rectTransform.anchoredPosition = new Vector2((float)entity.beat * Timeline.instance.PixelsPerBeat, rectTransform.anchoredPosition.y);
|
||||
}
|
||||
|
||||
public void SetX(float beat)
|
||||
{
|
||||
rectTransform.anchoredPosition = new Vector2(beat * Timeline.instance.PixelsPerBeat, rectTransform.anchoredPosition.y);
|
||||
}
|
||||
|
||||
public void StartMove()
|
||||
{
|
||||
if (first) return;
|
||||
|
@ -89,18 +103,19 @@ namespace HeavenStudio.Editor.Track
|
|||
public void DeleteObj()
|
||||
{
|
||||
if (first) return;
|
||||
transform.parent.GetComponent<SpecialTimeline>().specialTimelineObjs.Remove(this);
|
||||
Destroy(this.gameObject);
|
||||
CommandManager.Instance.AddCommand(new Commands.DeleteMarker(chartEntity.guid, type));
|
||||
// transform.parent.GetComponent<SpecialTimeline>().specialTimelineObjs.Remove(this);
|
||||
// Destroy(this.gameObject);
|
||||
}
|
||||
|
||||
//events
|
||||
public virtual void Init() {}
|
||||
public virtual void OnLeftClick() {}
|
||||
public virtual void OnRightClick() {}
|
||||
public virtual bool OnMove(float beat)
|
||||
public virtual void Init() { }
|
||||
public virtual void OnLeftClick() { }
|
||||
public virtual void OnRightClick() { }
|
||||
public virtual bool OnMove(float beat, bool final = false)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
public virtual void SetVisibility(Timeline.CurrentTimelineState.State state) {}
|
||||
public virtual void SetVisibility(Timeline.CurrentTimelineState.State state) { }
|
||||
}
|
||||
}
|
|
@ -16,8 +16,6 @@ namespace HeavenStudio.Editor.Track
|
|||
[SerializeField] private TMP_Text tempoTXT;
|
||||
[SerializeField] private GameObject tempoLine;
|
||||
|
||||
public RiqEntity tempoChange;
|
||||
|
||||
new private void Update()
|
||||
{
|
||||
base.Update();
|
||||
|
@ -31,16 +29,18 @@ namespace HeavenStudio.Editor.Track
|
|||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
newTempo *= 5f;
|
||||
if (Input.GetKey(KeyCode.LeftControl))
|
||||
newTempo /= 100f;
|
||||
newTempo *= 0.01f;
|
||||
|
||||
tempoChange["tempo"] += newTempo;
|
||||
chartEntity["tempo"] += newTempo;
|
||||
|
||||
//make sure tempo is positive
|
||||
if (tempoChange["tempo"] < 1)
|
||||
tempoChange["tempo"] = 1;
|
||||
if (chartEntity["tempo"] < 1)
|
||||
chartEntity["tempo"] = 1;
|
||||
|
||||
if (first && newTempo != 0)
|
||||
Timeline.instance.UpdateStartingBPMText();
|
||||
|
||||
Timeline.instance.FitToSong();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,8 +49,9 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
private void UpdateTempo()
|
||||
{
|
||||
tempoTXT.text = $"{tempoChange["tempo"]} BPM";
|
||||
Timeline.instance.FitToSong();
|
||||
tempoTXT.text = chartEntity["tempo"].ToString("F") + $" BPM";
|
||||
if (!moving)
|
||||
SetX(chartEntity);
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
|
@ -69,21 +70,23 @@ namespace HeavenStudio.Editor.Track
|
|||
if (first) return;
|
||||
if (Timeline.instance.timelineState.currentState == Timeline.CurrentTimelineState.State.TempoChange)
|
||||
{
|
||||
GameManager.instance.Beatmap.TempoChanges.Remove(tempoChange);
|
||||
DeleteObj();
|
||||
}
|
||||
}
|
||||
|
||||
public override bool OnMove(float beat)
|
||||
public override bool OnMove(float beat, bool final = false)
|
||||
{
|
||||
foreach (var tempoChange in GameManager.instance.Beatmap.TempoChanges)
|
||||
{
|
||||
if (this.tempoChange == tempoChange)
|
||||
if (this.chartEntity == tempoChange)
|
||||
continue;
|
||||
if (beat > tempoChange.beat - Timeline.instance.snapInterval && beat < tempoChange.beat + Timeline.instance.snapInterval)
|
||||
return false;
|
||||
}
|
||||
this.tempoChange.beat = beat;
|
||||
if (final)
|
||||
CommandManager.Instance.AddCommand(new Commands.MoveMarker(chartEntity.guid, beat, type));
|
||||
else
|
||||
SetX(beat);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,6 @@ namespace HeavenStudio.Editor.Track
|
|||
[SerializeField] private TMP_Text volumeTXT;
|
||||
[SerializeField] private GameObject volumeLine;
|
||||
|
||||
public RiqEntity volumeChange;
|
||||
|
||||
new private void Update()
|
||||
{
|
||||
base.Update();
|
||||
|
@ -31,12 +29,12 @@ namespace HeavenStudio.Editor.Track
|
|||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
newVolume *= 5f;
|
||||
if (Input.GetKey(KeyCode.LeftControl))
|
||||
newVolume /= 100f;
|
||||
newVolume *= 0.01f;
|
||||
|
||||
volumeChange["volume"] += newVolume;
|
||||
chartEntity["volume"] += newVolume;
|
||||
|
||||
//make sure volume is positive
|
||||
volumeChange["volume"] = Mathf.Clamp(volumeChange["volume"], 0, 100);
|
||||
chartEntity["volume"] = Mathf.Clamp(chartEntity["volume"], 0, 100);
|
||||
|
||||
if (first && newVolume != 0)
|
||||
Timeline.instance.UpdateStartingVolText();
|
||||
|
@ -47,7 +45,9 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
private void UpdateVolume()
|
||||
{
|
||||
volumeTXT.text = $"{volumeChange["volume"]}%";
|
||||
volumeTXT.text = $"{chartEntity["volume"].ToString("F")}%";
|
||||
if (!moving)
|
||||
SetX(chartEntity);
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
|
@ -66,21 +66,23 @@ namespace HeavenStudio.Editor.Track
|
|||
if (first) return;
|
||||
if (Timeline.instance.timelineState.currentState == Timeline.CurrentTimelineState.State.MusicVolume)
|
||||
{
|
||||
GameManager.instance.Beatmap.VolumeChanges.Remove(volumeChange);
|
||||
DeleteObj();
|
||||
}
|
||||
}
|
||||
|
||||
public override bool OnMove(float beat)
|
||||
public override bool OnMove(float beat, bool final = false)
|
||||
{
|
||||
foreach (var volumeChange in GameManager.instance.Beatmap.VolumeChanges)
|
||||
{
|
||||
if (this.volumeChange == volumeChange)
|
||||
if (this.chartEntity == volumeChange)
|
||||
continue;
|
||||
if (beat > volumeChange.beat - Timeline.instance.snapInterval && beat < volumeChange.beat + Timeline.instance.snapInterval)
|
||||
return false;
|
||||
}
|
||||
this.volumeChange.beat = beat;
|
||||
if (final)
|
||||
CommandManager.Instance.AddCommand(new Commands.MoveMarker(chartEntity.guid, beat, type));
|
||||
else
|
||||
SetX(beat);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@ using UnityEngine.EventSystems;
|
|||
using TMPro;
|
||||
using Starpelly;
|
||||
using Jukebox;
|
||||
using Jukebox.Legacy;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq;
|
||||
|
||||
namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
|
@ -20,9 +21,6 @@ namespace HeavenStudio.Editor.Track
|
|||
[SerializeField] private TMP_Text CurrentTempo;
|
||||
|
||||
[Header("Timeline Properties")]
|
||||
private float lastBeatPos = 0;
|
||||
private Vector2 lastMousePos;
|
||||
public List<TimelineEventObj> eventObjs = new List<TimelineEventObj>();
|
||||
private bool lastFrameDrag;
|
||||
public int LayerCount = 5;
|
||||
public bool metronomeEnabled;
|
||||
|
@ -33,8 +31,22 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
[Header("Components")]
|
||||
[SerializeField] private RawImage waveform;
|
||||
[SerializeField] private Image layerBG;
|
||||
[SerializeField] private TimelineZoom zoomComponent;
|
||||
public Texture2D resizeCursor;
|
||||
|
||||
public float WidthPerBeat { get; private set; } = 100.0f;
|
||||
public float PixelsPerBeat => WidthPerBeat * Zoom;
|
||||
public float Zoom { get; private set; } = 1.0f;
|
||||
public float MousePos2Beat { get; private set; }
|
||||
public float MousePos2Layer { get; private set; }
|
||||
public float MousePos2BeatSnap => Mathp.Round2Nearest(MousePos2Beat + (SnapInterval() * 0.5f), SnapInterval());
|
||||
public bool MouseInTimeline { get; private set; }
|
||||
|
||||
private Vector2 relativeMousePos;
|
||||
public Vector2 RelativeMousePos => relativeMousePos;
|
||||
public float PlaybackBeat = 0.0f;
|
||||
|
||||
public static float SnapInterval() { return instance.snapInterval; }
|
||||
|
||||
public void SetSnap(float snap) { snapInterval = snap; }
|
||||
|
@ -123,16 +135,24 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
}
|
||||
|
||||
[Header("Panels")]
|
||||
[SerializeField] private RectTransform TopPanel;
|
||||
[SerializeField] private RectTransform TopPanelContent;
|
||||
[SerializeField] private RectTransform ContentPanel;
|
||||
[SerializeField] private RectTransform OverlayPanel, OverlayPanelContent;
|
||||
|
||||
[Header("Timeline Components")]
|
||||
[SerializeField] private RectTransform TimelineSlider;
|
||||
[SerializeField] private RectTransform TimelineGridSelect;
|
||||
[SerializeField] private RectTransform TimelineEventGrid;
|
||||
[SerializeField] private TMP_Text TimelinePlaybackBeat;
|
||||
public ScrollRect TimelineScroll;
|
||||
public RectTransform TimelineContent;
|
||||
[SerializeField] private ZoomComponent zoomComponent;
|
||||
[SerializeField] private RectTransform RealTimelineContent;
|
||||
[SerializeField] private RectTransform TimelineContent;
|
||||
public RectTransform EventContent;
|
||||
[SerializeField] private RectTransform TimelineSongPosLineRef;
|
||||
[SerializeField] private RectTransform TimelineEventObjRef;
|
||||
public RectTransform TimelineEventsHolder;
|
||||
[SerializeField] private RectTransform LayersRect;
|
||||
|
||||
[Header("Timeline Inputs")]
|
||||
|
@ -162,11 +182,16 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public Vector3[] LayerCorners = new Vector3[4];
|
||||
|
||||
public float leftSide => (TimelineContent.localPosition.x / TimelineContent.localScale.x) * -1;
|
||||
public float rightSide => (TimelineScroll.viewport.rect.width / TimelineContent.localScale.x) + leftSide;
|
||||
|
||||
public float leftSide => (RealTimelineContent.anchoredPosition.x / PixelsPerBeat) * -1;
|
||||
public float rightSide => (TimelineScroll.viewport.rect.width / PixelsPerBeat) + leftSide;
|
||||
|
||||
private Vector2 lastScreenSize;
|
||||
|
||||
public static Timeline instance { get; private set; }
|
||||
|
||||
[HideInInspector]
|
||||
public List<RiqEntity> CopiedEntities = new();
|
||||
|
||||
public bool userIsEditingInputField
|
||||
{
|
||||
get
|
||||
|
@ -180,19 +205,16 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public void LoadRemix()
|
||||
{
|
||||
// beatmap entities
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
{
|
||||
Destroy(eventObjs[i].gameObject);
|
||||
}
|
||||
eventObjs.Clear();
|
||||
|
||||
/*
|
||||
for (int i = 0; i < GameManager.instance.Beatmap.Entities.Count; i++)
|
||||
{
|
||||
var e = GameManager.instance.Beatmap.Entities[i];
|
||||
|
||||
AddEventObject(e.datamodel, false, new Vector3((float)e.beat, -e["track"] * LayerHeight()), e, false);
|
||||
}
|
||||
*/
|
||||
|
||||
TimelineBlockManager.Instance.Load();
|
||||
|
||||
SpecialInfo.Setup();
|
||||
UpdateOffsetText();
|
||||
|
@ -206,6 +228,13 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
instance = this;
|
||||
|
||||
for (var i = 0; i < LayerCount; i++)
|
||||
{
|
||||
var bg = Instantiate(layerBG.gameObject, layerBG.rectTransform.parent).GetComponent<Image>();
|
||||
if (i % 2 == 0) bg.enabled = false;
|
||||
}
|
||||
layerBG.gameObject.SetActive(false);
|
||||
|
||||
LoadRemix();
|
||||
|
||||
TimelineSlider.GetChild(0).GetComponent<Image>().color = EditorTheme.theme.properties.BeatMarkerCol.Hex2RGB();
|
||||
|
@ -214,25 +243,25 @@ namespace HeavenStudio.Editor.Track
|
|||
TimelineSlider.GetChild(3).GetComponent<TMP_Text>().color = EditorTheme.theme.properties.BeatMarkerCol.Hex2RGB();
|
||||
TimelineSongPosLineRef.GetComponent<Image>().color = EditorTheme.theme.properties.CurrentTimeMarkerCol.Hex2RGB();
|
||||
|
||||
PlayBTN.onClick.AddListener(delegate
|
||||
PlayBTN.onClick.AddListener(delegate
|
||||
{
|
||||
if (Conductor.instance.isPaused)
|
||||
PlayCheck(false);
|
||||
else
|
||||
PlayCheck(true);
|
||||
PlayCheck(true);
|
||||
});
|
||||
PauseBTN.onClick.AddListener(delegate
|
||||
PauseBTN.onClick.AddListener(delegate
|
||||
{
|
||||
if (Conductor.instance.isPlaying && !Conductor.instance.isPaused)
|
||||
PlayCheck(false);
|
||||
PlayCheck(false);
|
||||
});
|
||||
StopBTN.onClick.AddListener(delegate
|
||||
StopBTN.onClick.AddListener(delegate
|
||||
{
|
||||
if (Conductor.instance.isPlaying || Conductor.instance.isPaused)
|
||||
PlayCheck(true);
|
||||
PlayCheck(true);
|
||||
});
|
||||
|
||||
MetronomeBTN.onClick.AddListener(delegate
|
||||
MetronomeBTN.onClick.AddListener(delegate
|
||||
{
|
||||
MetronomeToggle();
|
||||
});
|
||||
|
@ -260,11 +289,11 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
ZoomInBTN.onClick.AddListener(delegate
|
||||
{
|
||||
zoomComponent.ZoomIn(0.015f * TimelineContent.localScale.x, Vector2.zero);
|
||||
zoomComponent.Zoom(0.25f * zoomComponent.Scale.x, Vector2.zero);
|
||||
});
|
||||
ZoomOutBTN.onClick.AddListener(delegate
|
||||
{
|
||||
zoomComponent.ZoomOut(-0.0125f * TimelineContent.localScale.x, Vector2.zero);
|
||||
zoomComponent.Zoom(-0.2f * zoomComponent.Scale.x, Vector2.zero);
|
||||
});
|
||||
ZoomResetBTN.onClick.AddListener(delegate
|
||||
{
|
||||
|
@ -304,6 +333,8 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
SetTimeButtonColors(true, false, false);
|
||||
MetronomeBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
MetronomeBTN.transform.GetChild(1).GetComponent<Image>().color = Color.gray;
|
||||
MetronomeBTN.transform.GetChild(2).GetComponent<Image>().color = Color.gray;
|
||||
|
||||
timelineState.SetState(CurrentTimelineState.State.Selection);
|
||||
|
||||
|
@ -314,12 +345,14 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public void FitToSong()
|
||||
{
|
||||
var currentSizeDelta = TimelineContent.sizeDelta;
|
||||
var currentSizeDelta = RealTimelineContent.sizeDelta;
|
||||
float songBeats = Conductor.instance.SongLengthInBeats();
|
||||
if (songBeats == 0) songBeats = 320;
|
||||
else songBeats += 10;
|
||||
TimelineContent.sizeDelta = new Vector2(songBeats, currentSizeDelta.y);
|
||||
TimelineEventGrid.sizeDelta = new Vector2(songBeats, currentSizeDelta.y);
|
||||
|
||||
TimelineContent.sizeDelta = new Vector2(songBeats * PixelsPerBeat, currentSizeDelta.y);
|
||||
// TimelineEventGrid.sizeDelta = new Vector2(songBeats * PixelsPerBeat, currentSizeDelta.y);
|
||||
RealTimelineContent.sizeDelta = new Vector2(TimelineContent.sizeDelta.x / Zoom, RealTimelineContent.sizeDelta.y);
|
||||
}
|
||||
|
||||
public void CreateWaveform()
|
||||
|
@ -349,17 +382,20 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public void MetronomeToggle()
|
||||
{
|
||||
if (!Conductor.instance.metronome)
|
||||
{
|
||||
MetronomeBTN.transform.GetChild(0).GetComponent<Image>().color = "009FC6".Hex2RGB();
|
||||
MetronomeBTN.transform.GetChild(1).GetComponent<Image>().color = "009FC6".Hex2RGB();
|
||||
MetronomeBTN.transform.GetChild(2).GetComponent<Image>().color = "009FC6".Hex2RGB();
|
||||
Conductor.instance.metronome = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MetronomeBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
MetronomeBTN.transform.GetChild(1).GetComponent<Image>().color = Color.gray;
|
||||
MetronomeBTN.transform.GetChild(2).GetComponent<Image>().color = Color.gray;
|
||||
Conductor.instance.metronome = false;
|
||||
}
|
||||
}
|
||||
|
@ -373,6 +409,54 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
private void Update()
|
||||
{
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(EventContent, Input.mousePosition, Editor.instance.EditorCamera, out relativeMousePos);
|
||||
|
||||
MouseInTimeline = this.gameObject.activeSelf && RectTransformUtility.RectangleContainsScreenPoint(EventContent, Input.mousePosition, Editor.instance.EditorCamera);
|
||||
|
||||
|
||||
/*
|
||||
if (MouseInTimeline)
|
||||
{
|
||||
var wheel = Input.mouseScrollDelta.y;
|
||||
|
||||
if (wheel != 0)
|
||||
{
|
||||
var incre = 0.0f;
|
||||
if (wheel > 0)
|
||||
{
|
||||
incre += wheel * (Zoom * 0.25f);
|
||||
}
|
||||
else
|
||||
{
|
||||
incre += wheel * (Zoom * 0.2f);
|
||||
}
|
||||
|
||||
var v = new Vector3[4];
|
||||
TimelineScroll.viewport.GetWorldCorners(v);
|
||||
var viewportPos = Editor.instance.EditorCamera.WorldToScreenPoint(v[0]);
|
||||
|
||||
var left = leftSide;
|
||||
var viewportWidth = TimelineScroll.viewport.rect.width;
|
||||
var localPointRec = Mathf.Lerp(left, left + (viewportWidth / Zoom),
|
||||
Mathp.Normalize(Input.mousePosition.x, viewportPos.x, viewportPos.x + viewportWidth));
|
||||
|
||||
var xPixels = (localPointRec * incre);
|
||||
xPixels *= (Zoom);
|
||||
|
||||
TimelineContent.anchoredPosition = new Vector2(
|
||||
TimelineContent.anchoredPosition.x - xPixels,
|
||||
TimelineContent.anchoredPosition.y
|
||||
);
|
||||
|
||||
Zoom += incre;
|
||||
Zoom = Mathf.Clamp(Zoom, 1, 1000);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
MousePos2Beat = relativeMousePos.x / PixelsPerBeat;
|
||||
MousePos2Layer = Mathf.Clamp(Mathf.FloorToInt(-(relativeMousePos.y) / LayerHeight()), 0, LayerCount - 1);
|
||||
|
||||
Conductor cond = Conductor.instance;
|
||||
// waveform.rectTransform.anchoredPosition = new Vector2(
|
||||
// -(GameManager.instance.Beatmap.data.offset / (60.0f / GameManager.instance.Beatmap.bpm)),
|
||||
|
@ -382,8 +466,8 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
if (!cond.isPlaying && !cond.isPaused)
|
||||
{
|
||||
SongBeat.text = $"Beat {string.Format("{0:0.000}", TimelineSlider.localPosition.x)}";
|
||||
SongPos.text = FormatTime(cond.GetSongPosFromBeat(TimelineSlider.localPosition.x));
|
||||
SongBeat.text = $"Beat {string.Format("{0:0.000}", PlaybackBeat)}";
|
||||
SongPos.text = FormatTime(cond.GetSongPosFromBeat(PlaybackBeat));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -391,12 +475,35 @@ namespace HeavenStudio.Editor.Track
|
|||
SongPos.text = FormatTime(cond.songPositionAsDouble);
|
||||
}
|
||||
|
||||
// Metronome animation
|
||||
{
|
||||
var rectTransform = MetronomeBTN.transform.GetChild(1).GetComponent<RectTransform>();
|
||||
var rot = 0.0f;
|
||||
if (Conductor.instance.metronome)
|
||||
{
|
||||
var startBeat = Mathf.FloorToInt(Conductor.instance.songPositionInBeats - 0.5f);
|
||||
var nm = Conductor.instance.GetLoopPositionFromBeat(0.5f, 1f);
|
||||
var loop = (startBeat % 2 == 0) ? Mathf.SmoothStep(-1.1f, 1f, nm) : Mathf.SmoothStep(1f, -1f, nm);
|
||||
|
||||
rot = loop * 45f;
|
||||
}
|
||||
else
|
||||
{
|
||||
rot = Mathf.LerpAngle(rectTransform.localEulerAngles.z, 0.0f, Time.deltaTime * 16);
|
||||
}
|
||||
|
||||
rectTransform.localEulerAngles =
|
||||
new Vector3(rectTransform.localEulerAngles.x, rectTransform.localEulerAngles.y,
|
||||
rot);
|
||||
}
|
||||
|
||||
|
||||
SliderControl();
|
||||
|
||||
#region Keyboard Shortcuts
|
||||
if ((!userIsEditingInputField) && Editor.instance.isShortcutsEnabled)
|
||||
{
|
||||
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.Space))
|
||||
{
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
|
@ -446,11 +553,11 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
if (Input.GetKey(KeyCode.LeftArrow) || (!Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.A)))
|
||||
{
|
||||
TimelineContent.transform.localPosition += new Vector3(moveSpeed * Time.deltaTime, 0);
|
||||
RealTimelineContent.transform.localPosition += new Vector3(moveSpeed * Time.deltaTime, 0);
|
||||
}
|
||||
else if (Input.GetKey(KeyCode.RightArrow) || (!Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.D)))
|
||||
{
|
||||
TimelineContent.transform.localPosition += new Vector3(-moveSpeed * Time.deltaTime, 0);
|
||||
RealTimelineContent.transform.localPosition += new Vector3(-moveSpeed * Time.deltaTime, 0);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
@ -465,29 +572,59 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
if (movingPlayback)
|
||||
{
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(TimelineContent, Input.mousePosition, Editor.instance.EditorCamera, out lastMousePos);
|
||||
TimelineSlider.localPosition = new Vector3(Mathf.Max(Mathp.Round2Nearest(lastMousePos.x + 0.12f, Timeline.SnapInterval()), 0), TimelineSlider.transform.localPosition.y);
|
||||
var playbackBeat = Mathf.Max(MousePos2BeatSnap, 0);
|
||||
TimelineSlider.localPosition = new Vector3(playbackBeat * PixelsPerBeat, TimelineSlider.transform.localPosition.y);
|
||||
|
||||
if (TimelineSlider.localPosition.x != lastBeatPos)
|
||||
cond.SetBeat(TimelineSlider.transform.localPosition.x);
|
||||
|
||||
lastBeatPos = TimelineSlider.localPosition.x;
|
||||
cond.SetBeat(playbackBeat);
|
||||
this.PlaybackBeat = playbackBeat;
|
||||
}
|
||||
|
||||
if (cond.isPlaying)
|
||||
PlaybackFocus(true);
|
||||
|
||||
TimelineContent.transform.localPosition = new Vector3(Mathf.Clamp(TimelineContent.transform.localPosition.x, Mathf.NegativeInfinity, 0), TimelineContent.transform.localPosition.y);
|
||||
RealTimelineContent.transform.localPosition = new Vector3(Mathf.Clamp(RealTimelineContent.transform.localPosition.x, Mathf.NegativeInfinity, 0), RealTimelineContent.transform.localPosition.y);
|
||||
|
||||
CurrentTempo.text = $" = {cond.songBpm}";
|
||||
|
||||
LayersRect.GetWorldCorners(LayerCorners);
|
||||
|
||||
for (var i = 0; i < LayersRect.childCount; i++)
|
||||
{
|
||||
var layerRect = LayersRect.GetChild(i).GetComponent<RectTransform>();
|
||||
layerRect.anchoredPosition = new Vector2(layerRect.anchoredPosition.x, -LayerHeight() * (i - 1));
|
||||
layerRect.sizeDelta = new Vector2(layerRect.sizeDelta.x, LayerHeight());
|
||||
}
|
||||
|
||||
for (var i = 0; i < layerBG.rectTransform.parent.childCount; i++)
|
||||
{
|
||||
var layerRect = layerBG.rectTransform.parent.GetChild(i).GetComponent<RectTransform>();
|
||||
layerRect.anchoredPosition = new Vector2(layerRect.anchoredPosition.x, -LayerHeight() * (i - 1));
|
||||
layerRect.sizeDelta = new Vector2(layerRect.sizeDelta.x, LayerHeight());
|
||||
}
|
||||
|
||||
RealTimelineContent.sizeDelta = new Vector2(RealTimelineContent.sizeDelta.x, LayerHeight() * LayerCount);
|
||||
}
|
||||
|
||||
public void LateUpdate()
|
||||
{
|
||||
TimelineBlockManager.Instance.UpdateMarkers();
|
||||
BoxSelection.instance.LayerSelectUpdate();
|
||||
|
||||
TimelineContent.anchoredPosition = RealTimelineContent.anchoredPosition;
|
||||
|
||||
TopPanelContent.anchoredPosition = new Vector2(TimelineContent.anchoredPosition.x, TopPanelContent.anchoredPosition.y);
|
||||
TopPanelContent.sizeDelta = new Vector2(TimelineContent.sizeDelta.x, TopPanelContent.sizeDelta.y);
|
||||
|
||||
OverlayPanelContent.anchoredPosition = new Vector2(TimelineContent.anchoredPosition.x, OverlayPanelContent.anchoredPosition.y);
|
||||
OverlayPanelContent.sizeDelta = new Vector2(TimelineContent.sizeDelta.x, OverlayPanelContent.sizeDelta.y);
|
||||
|
||||
LayersRect.anchoredPosition = new Vector2(LayersRect.anchoredPosition.x, TimelineContent.anchoredPosition.y);
|
||||
}
|
||||
|
||||
public static float GetScaleModifier()
|
||||
{
|
||||
Camera cam = Editor.instance.EditorCamera;
|
||||
return Mathf.Pow(cam.pixelWidth/1280f, 1f) * Mathf.Pow(cam.pixelHeight/720f, 0f);
|
||||
return Mathf.Pow(cam.pixelWidth / 1280f, 1f) * Mathf.Pow(cam.pixelHeight / 720f, 0f);
|
||||
}
|
||||
|
||||
public Vector2 LayerCornersToDist()
|
||||
|
@ -498,12 +635,11 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
private void SliderControl()
|
||||
{
|
||||
TimelinePlaybackBeat.text = $"Beat {string.Format("{0:0.000}", TimelineSlider.localPosition.x)}";
|
||||
TimelinePlaybackBeat.text = $"Beat {string.Format("{0:0.000}", PlaybackBeat)}";
|
||||
|
||||
if (TimelineSongPosLine != null)
|
||||
{
|
||||
TimelineSongPosLine.transform.localPosition = new Vector3(Conductor.instance.songPositionInBeats, TimelineSongPosLine.transform.localPosition.y);
|
||||
TimelineSongPosLine.transform.localScale = new Vector3(1f / TimelineContent.transform.localScale.x, TimelineSongPosLine.transform.localScale.y, 1);
|
||||
TimelineSongPosLine.transform.localPosition = new Vector3(Conductor.instance.songPositionInBeats * PixelsPerBeat, TimelineSongPosLine.transform.localPosition.y);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -514,13 +650,13 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
if (!Conductor.instance.isPlaying && !Conductor.instance.isPaused)
|
||||
{
|
||||
Play(false, TimelineSlider.transform.localPosition.x);
|
||||
Play(false, PlaybackBeat);
|
||||
}
|
||||
else
|
||||
{
|
||||
Stop(TimelineSlider.transform.localPosition.x);
|
||||
Stop(PlaybackBeat);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -528,11 +664,11 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
if (TimelineSongPosLine == null)
|
||||
{
|
||||
Play(false, TimelineSlider.transform.localPosition.x);
|
||||
Play(false, PlaybackBeat);
|
||||
}
|
||||
else
|
||||
{
|
||||
Play(false, TimelineSongPosLine.transform.localPosition.x);
|
||||
Play(false, Conductor.instance.songPositionInBeats);
|
||||
}
|
||||
}
|
||||
else if (!Conductor.instance.isPaused)
|
||||
|
@ -571,7 +707,7 @@ namespace HeavenStudio.Editor.Track
|
|||
// timelineSlider.value = 0;
|
||||
|
||||
if (TimelineSongPosLine != null)
|
||||
Destroy(TimelineSongPosLine.gameObject);
|
||||
Destroy(TimelineSongPosLine.gameObject);
|
||||
|
||||
GameManager.instance.Stop(time);
|
||||
|
||||
|
@ -597,10 +733,11 @@ namespace HeavenStudio.Editor.Track
|
|||
PauseBTN.transform.GetChild(0).GetComponent<Image>().color = Color.white;
|
||||
}
|
||||
else
|
||||
{ PauseBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
{
|
||||
PauseBTN.transform.GetChild(0).GetComponent<Image>().color = Color.gray;
|
||||
PauseBTN.enabled = false;
|
||||
}
|
||||
|
||||
|
||||
if (stopEnabled)
|
||||
{
|
||||
StopBTN.enabled = true;
|
||||
|
@ -624,11 +761,6 @@ namespace HeavenStudio.Editor.Track
|
|||
return string.Format("{0:00}:{1:00}:{2:000}", minutes, seconds, milliseconds);
|
||||
}
|
||||
|
||||
public bool CheckIfMouseInTimeline()
|
||||
{
|
||||
return (this.gameObject.activeSelf && RectTransformUtility.RectangleContainsScreenPoint(TimelineEventGrid, Input.mousePosition, Editor.instance.EditorCamera));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Functions
|
||||
|
@ -637,9 +769,10 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
var lerpSpd = (lerp) ? 12f : 10000000; // im lazy
|
||||
|
||||
var newPos = new Vector3((-Conductor.instance.songPositionInBeats * TimelineContent.localScale.x) + 200, TimelineContent.transform.localPosition.y);
|
||||
TimelineContent.transform.localPosition =
|
||||
Vector3.Lerp(TimelineContent.transform.localPosition, newPos, Time.deltaTime * lerpSpd);
|
||||
var newPos = new Vector3((-Conductor.instance.songPositionInBeats * PixelsPerBeat) + 200, RealTimelineContent.transform.localPosition.y);
|
||||
newPos.x = Mathf.Max(newPos.x, -(TimelineContent.rect.width - TimelineScroll.viewport.rect.width));
|
||||
RealTimelineContent.transform.localPosition =
|
||||
Vector3.Lerp(RealTimelineContent.transform.localPosition, newPos, Time.deltaTime * lerpSpd);
|
||||
}
|
||||
|
||||
public void WaveformToggle()
|
||||
|
@ -740,6 +873,107 @@ namespace HeavenStudio.Editor.Track
|
|||
return tex2D;
|
||||
}
|
||||
|
||||
public TimelineEventObj AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), RiqEntity entity = null, bool addEvent = false)
|
||||
{
|
||||
var game = EventCaller.instance.GetMinigame(eventName.Split(0));
|
||||
var action = EventCaller.instance.GetGameAction(game, eventName.Split(1));
|
||||
|
||||
var gameAction = EventCaller.instance.GetGameAction(EventCaller.instance.GetMinigame(eventName.Split(0)), eventName.Split(1));
|
||||
|
||||
if (addEvent)
|
||||
{
|
||||
RiqEntity tempEntity = entity;
|
||||
|
||||
if (entity == null)
|
||||
{
|
||||
RiqEntity en = GameManager.instance.Beatmap.AddNewEntity(eventName, 0, gameAction.defaultLength);
|
||||
|
||||
tempEntity = en;
|
||||
|
||||
// default param values
|
||||
var ep = action.parameters;
|
||||
|
||||
if (ep != null)
|
||||
{
|
||||
for (int i = 0; i < ep.Count; i++)
|
||||
{
|
||||
object returnVal = ep[i].parameter;
|
||||
|
||||
var propertyType = returnVal.GetType();
|
||||
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;
|
||||
}
|
||||
|
||||
//tempEntity[ep[i].propertyName] = returnVal;
|
||||
tempEntity.CreateProperty(ep[i].propertyName, returnVal);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// GameManager.instance.Beatmap.Entities.Add(tempEntity);
|
||||
Debug.LogWarning("Weird as fuck case called?");
|
||||
}
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
TimelineBlockManager.Instance.SetEntityToSet(tempEntity);
|
||||
}
|
||||
else
|
||||
{
|
||||
TimelineBlockManager.Instance.SetEntityToSet(entity);
|
||||
}
|
||||
|
||||
var marker = TimelineBlockManager.Instance.Pool.Get();
|
||||
|
||||
marker.SetMarkerInfo();
|
||||
|
||||
if (dragNDrop)
|
||||
{
|
||||
Selections.instance.ClickSelect(marker);
|
||||
marker.moving = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
entity["track"] = marker.GetTrack();
|
||||
}
|
||||
|
||||
CommandManager.Instance.AddCommand(new Commands.Place(marker.entity, marker.entity.guid));
|
||||
|
||||
return marker;
|
||||
}
|
||||
|
||||
public void CopySelected()
|
||||
{
|
||||
CopyEntities(Selections.instance.eventsSelected.Select(c => c.entity).ToList());
|
||||
}
|
||||
|
||||
public void CopyEntities(List<RiqEntity> original)
|
||||
{
|
||||
if (original.Count <= 0) return;
|
||||
|
||||
CopiedEntities.Clear();
|
||||
|
||||
foreach (RiqEntity entity in original)
|
||||
{
|
||||
CopiedEntities.Add(entity.DeepCopy());
|
||||
}
|
||||
}
|
||||
|
||||
public void Paste()
|
||||
{
|
||||
CommandManager.Instance.AddCommand(new Commands.Paste(CopiedEntities));
|
||||
}
|
||||
|
||||
/*
|
||||
public TimelineEventObj AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), RiqEntity entity = null, bool addEvent = false)
|
||||
{
|
||||
var game = EventCaller.instance.GetMinigame(eventName.Split(0));
|
||||
|
@ -761,7 +995,7 @@ namespace HeavenStudio.Editor.Track
|
|||
{
|
||||
if (gameAction.resizable == false)
|
||||
{
|
||||
g.GetComponent<RectTransform>().sizeDelta = new Vector2(gameAction.defaultLength, LayerHeight());
|
||||
g.GetComponent<RectTransform>().sizeDelta = new Vector2(gameAction.defaultLength * Timeline.instance.PixelsPerBeat, LayerHeight());
|
||||
float length = gameAction.defaultLength;
|
||||
eventObj.length = length;
|
||||
}
|
||||
|
@ -770,11 +1004,11 @@ namespace HeavenStudio.Editor.Track
|
|||
eventObj.resizable = true;
|
||||
if (entity != null && gameAction.defaultLength != entity.length && dragNDrop == false)
|
||||
{
|
||||
g.GetComponent<RectTransform>().sizeDelta = new Vector2(entity.length, LayerHeight());
|
||||
g.GetComponent<RectTransform>().sizeDelta = new Vector2(entity.length * Timeline.instance.PixelsPerBeat, LayerHeight());
|
||||
}
|
||||
else
|
||||
{
|
||||
g.GetComponent<RectTransform>().sizeDelta = new Vector2(gameAction.defaultLength, LayerHeight());
|
||||
g.GetComponent<RectTransform>().sizeDelta = new Vector2(gameAction.defaultLength * Timeline.instance.PixelsPerBeat, LayerHeight());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -850,6 +1084,7 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
return eventObj;
|
||||
}
|
||||
*/
|
||||
|
||||
private List<TimelineEventObj> duplicatedEventObjs = new List<TimelineEventObj>();
|
||||
public TimelineEventObj CopyEventObject(TimelineEventObj e)
|
||||
|
@ -861,51 +1096,22 @@ namespace HeavenStudio.Editor.Track
|
|||
return dup;
|
||||
}
|
||||
|
||||
public void FinalizeDuplicateEventStack()
|
||||
{
|
||||
CommandManager.instance.Execute(new Commands.Duplicate(duplicatedEventObjs));
|
||||
duplicatedEventObjs = new List<TimelineEventObj>();
|
||||
}
|
||||
|
||||
public void DestroyEventObject(RiqEntity entity)
|
||||
{
|
||||
if (EventParameterManager.instance.entity == entity)
|
||||
EventParameterManager.instance.Disable();
|
||||
|
||||
// eventObjs.Remove(entity.eventObj);
|
||||
foreach (TimelineEventObj e in eventObjs)
|
||||
{
|
||||
if (e.entity == entity)
|
||||
{
|
||||
Destroy(e.gameObject);
|
||||
eventObjs.Remove(e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
GameManager.instance.Beatmap.Entities.Remove(entity);
|
||||
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
|
||||
public bool IsMouseAboveEvents()
|
||||
{
|
||||
return Timeline.instance.eventObjs.FindAll(c => c.mouseHovering == true).Count > 0;
|
||||
}
|
||||
|
||||
public bool InteractingWithEvents()
|
||||
{
|
||||
return eventObjs.FindAll(c => c.moving == true).Count > 0 || eventObjs.FindAll(c => c.resizing == true).Count > 0;
|
||||
}
|
||||
|
||||
public float SnapToLayer(float y)
|
||||
{
|
||||
float size = LayerHeight();
|
||||
return Mathf.Clamp(Mathp.Round2Nearest(y, size), -size * 4f, 0f);
|
||||
return Mathf.Clamp(Mathp.Round2Nearest(y, size), -size * (LayerCount - 1), 0f);
|
||||
}
|
||||
|
||||
public float LayerHeight()
|
||||
{
|
||||
return LayersRect.rect.height / 5f;
|
||||
var defaultHeight = 32;
|
||||
return Mathf.Max(defaultHeight, (LayersRect.rect.height / LayerCount));
|
||||
// return LayersRect.rect.height / LayerCount;
|
||||
}
|
||||
|
||||
public float LayerToY(int layer)
|
||||
{
|
||||
return (-layer * LayerHeight());
|
||||
}
|
||||
|
||||
const float SpeedSnap = 0.25f;
|
||||
|
@ -927,6 +1133,16 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
}
|
||||
|
||||
public void OnZoom(float zoom)
|
||||
{
|
||||
Zoom = zoom;
|
||||
|
||||
TimelineSlider.localPosition = new Vector3(Conductor.instance.songPositionInBeats * PixelsPerBeat, TimelineSlider.transform.localPosition.y);
|
||||
|
||||
FitToSong();
|
||||
TimelineBlockManager.Instance.OnZoom();
|
||||
}
|
||||
|
||||
public void UpdateOffsetText()
|
||||
{
|
||||
// show up to 4 decimal places
|
||||
|
@ -938,7 +1154,7 @@ namespace HeavenStudio.Editor.Track
|
|||
// Failsafe against empty string.
|
||||
if (String.IsNullOrEmpty(FirstBeatOffset.text))
|
||||
FirstBeatOffset.text = "0";
|
||||
|
||||
|
||||
// Convert ms to s.
|
||||
double newOffset = Convert.ToDouble(FirstBeatOffset.text) / 1000f;
|
||||
|
||||
|
@ -960,7 +1176,7 @@ namespace HeavenStudio.Editor.Track
|
|||
// Failsafe against empty string.
|
||||
if (String.IsNullOrEmpty(text))
|
||||
text = "120";
|
||||
|
||||
|
||||
var newBPM = Convert.ToDouble(text);
|
||||
|
||||
// Failsafe against negative BPM.
|
||||
|
@ -974,7 +1190,7 @@ namespace HeavenStudio.Editor.Track
|
|||
newBPM = System.Math.Round(newBPM, 4);
|
||||
|
||||
RiqEntity tempoChange = GameManager.instance.Beatmap.TempoChanges[0];
|
||||
tempoChange["tempo"] = (float) newBPM;
|
||||
tempoChange["tempo"] = (float)newBPM;
|
||||
GameManager.instance.Beatmap.TempoChanges[0] = tempoChange;
|
||||
|
||||
// In case the newBPM ended up differing from the inputted string.
|
||||
|
@ -993,7 +1209,7 @@ namespace HeavenStudio.Editor.Track
|
|||
// Failsafe against empty string.
|
||||
if (String.IsNullOrEmpty(StartingVolumeSpecialVolume.text))
|
||||
StartingVolumeSpecialVolume.text = "100";
|
||||
|
||||
|
||||
var newVol = Convert.ToInt32(StartingVolumeSpecialVolume.text);
|
||||
newVol = Mathf.Clamp(newVol, 0, 100);
|
||||
|
||||
|
@ -1009,7 +1225,7 @@ namespace HeavenStudio.Editor.Track
|
|||
#region Commands
|
||||
|
||||
public void Move()
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
public void Undo()
|
||||
|
|
191
Assets/Scripts/LevelEditor/Timeline/TimelineBlockManager.cs
Normal file
|
@ -0,0 +1,191 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Pool;
|
||||
|
||||
using Jukebox;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Header;
|
||||
using System.Linq;
|
||||
|
||||
namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
public class TimelineBlockManager : MonoBehaviour
|
||||
{
|
||||
public static TimelineBlockManager Instance { get; private set; }
|
||||
|
||||
public TimelineEventObj EntityTemplate;
|
||||
public Dictionary<Guid, TimelineEventObj> EntityMarkers = new();
|
||||
public ObjectPool<TimelineEventObj> Pool { get; private set; }
|
||||
|
||||
private int firstMarkerToCareAbout = 0;
|
||||
private int lastMarkerToCareAbout = 0;
|
||||
private Timeline timeline;
|
||||
|
||||
|
||||
private RiqEntity entityToSet;
|
||||
|
||||
public bool InteractingWithEvents { get; private set; } = false;
|
||||
public bool MovingAnyEvents { get; private set; } = false;
|
||||
|
||||
public void SetEntityToSet(RiqEntity entity)
|
||||
{
|
||||
entityToSet = entity;
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
timeline = GetComponent<Timeline>();
|
||||
|
||||
Pool = new ObjectPool<TimelineEventObj>(CreateMarker, OnTakeMarkerFromPool, OnReturnMarkerToPool, OnDestroyMarker, true, 125, 1500);
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
var timeLeft = timeline.leftSide;
|
||||
var timeRight = timeline.rightSide;
|
||||
|
||||
foreach (var marker in EntityMarkers)
|
||||
{
|
||||
Destroy(marker.Value.gameObject);
|
||||
}
|
||||
|
||||
EntityMarkers.Clear();
|
||||
Pool.Clear();
|
||||
|
||||
foreach (var entity in GameManager.instance.Beatmap.Entities)
|
||||
{
|
||||
var vLeft = entity.beat + entity.length >= timeLeft;
|
||||
var vRight = entity.beat < timeRight;
|
||||
var active = vLeft && vRight;
|
||||
|
||||
if (!active) continue;
|
||||
|
||||
entityToSet = entity;
|
||||
Pool.Get();
|
||||
|
||||
Debug.Log(entity.datamodel);
|
||||
}
|
||||
}
|
||||
|
||||
public TimelineEventObj CreateEntity(RiqEntity entity)
|
||||
{
|
||||
entityToSet = entity;
|
||||
var marker = Pool.Get();
|
||||
marker.UpdateMarker();
|
||||
|
||||
return marker;
|
||||
}
|
||||
|
||||
public void OnZoom()
|
||||
{
|
||||
foreach (var marker in EntityMarkers.Values)
|
||||
{
|
||||
marker.SetWidthHeight();
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateMarkers()
|
||||
{
|
||||
var timeLeft = timeline.leftSide;
|
||||
var timeRight = timeline.rightSide;
|
||||
|
||||
var markersActiveBeats = new List<float>();
|
||||
foreach (var marker in EntityMarkers.Values)
|
||||
{
|
||||
if (marker.selected || marker.moving)
|
||||
{
|
||||
markersActiveBeats.Add((float)marker.entity.beat);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < GameManager.instance.Beatmap.Entities.Count; i++)
|
||||
{
|
||||
var entity = GameManager.instance.Beatmap.Entities[i];
|
||||
|
||||
var vLeft = entity.beat + entity.length >= timeLeft;
|
||||
var vRight = entity.beat < timeRight;
|
||||
|
||||
var active = vLeft && vRight;
|
||||
|
||||
var containsMarker = EntityMarkers.ContainsKey(entity.guid);
|
||||
|
||||
if (containsMarker)
|
||||
{
|
||||
var marker = EntityMarkers[entity.guid];
|
||||
if (marker.selected || marker.moving) active = true;
|
||||
}
|
||||
|
||||
if (active)
|
||||
{
|
||||
if (!containsMarker)
|
||||
{
|
||||
entityToSet = entity;
|
||||
Pool.Get();
|
||||
}
|
||||
EntityMarkers[entity.guid].UpdateMarker();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (EntityMarkers.ContainsKey(entity.guid))
|
||||
Pool.Release(EntityMarkers[entity.guid]);
|
||||
}
|
||||
}
|
||||
|
||||
InteractingWithEvents = false;
|
||||
MovingAnyEvents = false;
|
||||
foreach (var marker in EntityMarkers.Values)
|
||||
{
|
||||
if (marker.moving || marker.resizing || marker.mouseHovering)
|
||||
InteractingWithEvents = true;
|
||||
if (marker.moving)
|
||||
MovingAnyEvents = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void SortMarkers()
|
||||
{
|
||||
// Debug.Log("Sorted timeline blocks.");
|
||||
|
||||
var sortedBlocks = EntityMarkers.Values.OrderByDescending(c => c.entity.length).ToList();
|
||||
|
||||
var i = 0;
|
||||
foreach (var block in EntityMarkers.Values)
|
||||
{
|
||||
var index = sortedBlocks.FindIndex(c => c.entity.guid == block.entity.guid);
|
||||
block.transform.SetSiblingIndex(index + 1);
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
private TimelineEventObj CreateMarker()
|
||||
{
|
||||
TimelineEventObj marker = Instantiate(EntityTemplate.gameObject, Timeline.instance.TimelineEventsHolder).GetComponent<TimelineEventObj>();
|
||||
return marker;
|
||||
}
|
||||
|
||||
private void OnTakeMarkerFromPool(TimelineEventObj marker)
|
||||
{
|
||||
marker.SetEntity(entityToSet);
|
||||
marker.SetMarkerInfo();
|
||||
|
||||
SortMarkers();
|
||||
|
||||
marker.gameObject.SetActive(true);
|
||||
EntityMarkers.Add(entityToSet.guid, marker);
|
||||
}
|
||||
|
||||
private void OnReturnMarkerToPool(TimelineEventObj marker)
|
||||
{
|
||||
EntityMarkers.Remove(marker.entity.guid);
|
||||
marker.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
private void OnDestroyMarker(TimelineEventObj marker)
|
||||
{
|
||||
Destroy(marker.gameObject);
|
||||
}
|
||||
}
|
||||
}
|