Commit aef05793 authored by Lokan Chung's avatar Lokan Chung

merge scene deco, changed forwardnoteobject, split classes, remove Core namespace

parent 62670fbc
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Skybox
m_Shader: {fileID: 104, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BackTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DownTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _FrontTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _LeftTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _RightTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _UpTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _Exposure: 1
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Rotation: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Tint: {r: 1, g: 1, b: 1, a: 0.5}
fileFormatVersion: 2
guid: 40e78a3b48ddefc4daacfed39c49fe6a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &6074254041624623150
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2824711142497691445}
- component: {fileID: 5007912880664849394}
m_Layer: 0
m_Name: Point Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2824711142497691445
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6074254041624623150}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8354046899824507575}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!108 &5007912880664849394
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6074254041624623150}
m_Enabled: 1
serializedVersion: 9
m_Type: 2
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 0.18
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 1
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &8354046899824507571 --- !u!1 &8354046899824507571
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -29,8 +120,9 @@ Transform: ...@@ -29,8 +120,9 @@ Transform:
m_GameObject: {fileID: 8354046899824507571} m_GameObject: {fileID: 8354046899824507571}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 10} m_LocalPosition: {x: 0, y: 0, z: 10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 3, y: 3, z: 3}
m_Children: [] m_Children:
- {fileID: 2824711142497691445}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......
...@@ -35,7 +35,7 @@ RectTransform: ...@@ -35,7 +35,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1.1, y: 1.1} m_SizeDelta: {x: 3.3, y: 3.3}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8100479809720507870 --- !u!222 &8100479809720507870
CanvasRenderer: CanvasRenderer:
...@@ -57,7 +57,7 @@ MonoBehaviour: ...@@ -57,7 +57,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 2100000, guid: e5126cfe2f1b13144a54b88b7c55be50, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
......
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9da68daca0d18d643a5342861db4e4df, type: 3}
m_Name: Precision Strike
m_EditorClassIdentifier: Assembly-CSharp:Core:LevelScriptableObject
bms: {fileID: -8350457297130525221, guid: bbd833f16d7e27749bf4697b9530280f, type: 3}
audioFile: {fileID: 8300000, guid: 51adb37087ebecf4d96fb77577c2312c, type: 3}
offsetBarTime: 0
fileFormatVersion: 2
guid: ccbc7c89d2b01a9469123e252cc2ecd6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

*---------------------- HEADER FIELD
#PLAYER 1
#GENRE Complextro
#TITLE Precision Strike
#ARTIST Lokan
#BPM 132
#PLAYLEVEL
#RANK 3
#LNTYPE 1
#WAV01 Precision Strike.wav
*---------------------- MAIN DATA FIELD
#00001:01
#00111:55
#00112:Q5
#00312:SS
#00411:4S
#00511:FF
#00512:0000000000000044
#00711:F5
#00712:000000000000008A
#00911:4T00004T
#00912:XTXT0000
#01011:000000X3
#01012:00430000
#01111:0000004X
#01112:00330000
#01211:000000XX
#01212:00X30000
#01311:6FX60000
#01312:PF00001T
#01411:004F0000
#01412:000000XF
#01511:00FX0000
#01512:000000F4
#01611:00FF0000
#01612:000000FF
#01711:XF
#01712:4F
#02111:1T1T0000
#02112:1T001T1T
#02211:1T1T0000
#02212:00001T1T
#02311:1T1T
#02312:001T001T
#02411:1T00001T00001T00001T00001T000000
#02412:1T00001T00001T00001T00001T000000
#02511:1T00001T
#02512:001T0000
#02611:0000001T
#02612:001T0000
#02711:1T00000000001T1T
#02712:001T1T00
#02811:001T001T
#02812:001T
#02911:001T1T00
#02912:001T001T
#03011:0000001T
#03012:001T0000
#03111:1T0000000000001T
#03112:001T1T1T
#03212:001T0000
#03311:001T0000
#03312:001T001T
#03411:001T0000
#03412:0000001T
#03511:1T0000000000001T
#03512:001T1T1T
#03611:001T001T
#03612:001T
#03711:001T0000
#03712:001T001T
#03811:001T0000
#03812:0000001T
#03911:0000001T00001T00
#03912:000000001T00001T
#04011:001T000000000000
#04012:0000001T001T0000
#04111:1T
#04112:1T
#04511:1T0000000000001T
#04512:1T0000000000001T
#04611:1T0000000000001T
#04612:1T0000000000001T
#04711:1T1T
#04712:1T1T
#04811:1T00001T00001T00
#04812:0000001T00000000001T000000000000
#04911:1T1T0000
#04912:1T001T1T
#05011:1T1T0000
#05012:00001T1T
#05111:1T1T0000
#05112:00001T1T
#05211:1T1T
#05212:001T001T
#05311:1T
#05412:1T
#05511:1T
#05611:001T
#05612:1T
#05811:1T00001T
#05812:1T1T0000
#05911:0000001T
#05912:001T0000
#06011:000000000000001T
#06012:001T1T00
#06111:0000001T00001T00
#06112:001T000000000000
#06211:001T
#06212:001T001T
#06311:0000001T
#06312:001T0000
#06411:0000001T00001T00
#06412:000000001T00001T
#06511:0000001T001T0000
#06512:001T000000000000
fileFormatVersion: 2
guid: bbd833f16d7e27749bf4697b9530280f
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: ee6f618bc43a08e44b3b2906bfdcf282, type: 3}
fileFormatVersion: 2
guid: 51adb37087ebecf4d96fb77577c2312c
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
...@@ -11,6 +11,6 @@ MonoBehaviour: ...@@ -11,6 +11,6 @@ MonoBehaviour:
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 0} m_Script: {fileID: 0}
m_Name: _LEVELS_ m_Name: _LEVELS_
m_EditorClassIdentifier: Assembly-CSharp:Core:LevelListscriptableObject m_EditorClassIdentifier: Assembly-CSharp::LevelListscriptableObject
levels: levels:
- {fileID: 11400000, guid: 01ec6c88fba9c7241bb2b3aabaa471e4, type: 2} - {fileID: 11400000, guid: ccbc7c89d2b01a9469123e252cc2ecd6, type: 2}
fileFormatVersion: 2 fileFormatVersion: 2
guid: e1892ae545de3a640a1b02a4e9e03a94 guid: 8aef72256133e3c479e5255c254cf80e
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000
......

*---------------------- HEADER FIELD
#PLAYER 1
#GENRE Complextro
#TITLE Precision Strike
#ARTIST Lokan
#BPM 132
#PLAYLEVEL
#RANK 3
#LNTYPE 1
#WAV01 Precision Strike.wav
*---------------------- MAIN DATA FIELD
#00001:01
#00111:11
#00112:1T
#00312:1T
#00411:1T
#00511:1T
#00512:000000000000001T
#00711:1T
#00712:000000000000001T
#00911:1T00001T
#00912:1T1T0000
#01011:0000001T
#01012:001T0000
#01111:0000001T
#01112:001T0000
#01211:0000001T
#01212:001T0000
#01311:1T1T0000
#01312:1T00001T
#01411:001T0000
#01412:0000001T
#01511:001T0000
#01512:0000001T
#01611:001T0000
#01612:0000001T
#01711:1T
#01712:1T
#02111:1T1T0000
#02112:1T001T1T
#02211:1T1T0000
#02212:00001T1T
#02311:1T1T
#02312:001T001T
#02411:1T00001T00001T00001T00001T000000
#02412:1T00001T00001T00001T00001T000000
#02511:1T00001T
#02512:001T0000
#02611:0000001T
#02612:001T0000
#02711:1T00000000001T1T
#02712:001T1T00
#02811:001T001T
#02812:001T
#02911:001T1T00
#02912:001T001T
#03011:0000001T
#03012:001T0000
#03111:1T0000000000001T
#03112:001T1T1T
#03212:001T0000
#03311:001T0000
#03312:001T001T
#03411:001T0000
#03412:0000001T
#03511:1T0000000000001T
#03512:001T1T1T
#03611:001T001T
#03612:001T
#03711:001T0000
#03712:001T001T
#03811:001T0000
#03812:0000001T
#03911:0000001T00001T00
#03912:000000001T00001T
#04011:001T000000000000
#04012:0000001T001T0000
#04111:1T
#04112:1T
#04511:1T0000000000001T
#04512:1T0000000000001T
#04611:1T0000000000001T
#04612:1T0000000000001T
#04711:1T1T
#04712:1T1T
#04811:1T00001T00001T00
#04812:0000001T00000000001T000000000000
#04911:1T1T0000
#04912:1T001T1T
#05011:1T1T0000
#05012:00001T1T
#05111:1T1T0000
#05112:00001T1T
#05211:1T1T
#05212:001T001T
#05311:1T
#05412:1T
#05511:1T
#05611:001T
#05612:1T
#05811:1T00001T
#05812:1T1T0000
#05911:0000001T
#05912:001T0000
#06011:000000000000001T
#06012:001T1T00
#06111:0000001T00001T00
#06112:001T000000000000
#06211:001T
#06212:001T001T
#06311:0000001T
#06312:001T0000
#06411:0000001T00001T00
#06412:000000001T00001T
#06511:0000001T001T0000
#06512:001T000000000000
fileFormatVersion: 2
guid: f9be371db1f04ff4fbbb85708d767dc8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: ee6f618bc43a08e44b3b2906bfdcf282, type: 3}
...@@ -9,7 +9,7 @@ MonoBehaviour: ...@@ -9,7 +9,7 @@ MonoBehaviour:
m_GameObject: {fileID: 0} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 0} m_Script: {fileID: 11500000, guid: 9da68daca0d18d643a5342861db4e4df, type: 3}
m_Name: test m_Name: test
m_EditorClassIdentifier: Assembly-CSharp:Core:LevelScriptableObject m_EditorClassIdentifier: Assembly-CSharp:Core:LevelScriptableObject
bms: {fileID: -3578495943587161340, guid: 902bbdf1e37cea640b6168c6f0772ddb, type: 3} bms: {fileID: -3578495943587161340, guid: 902bbdf1e37cea640b6168c6f0772ddb, type: 3}
......

*---------------------- HEADER FIELD *---------------------- HEADER FIELD
#PLAYER 1 #PLAYER 1
...@@ -8,10 +8,15 @@ ...@@ -8,10 +8,15 @@
#BPM 130 #BPM 130
#PLAYLEVEL 9 #PLAYLEVEL 9
#RANK 2 #RANK 2
#TOTAL 470
#SUBTITLE [7keys hyper]
#STAGEFILE _title.bmp #STAGEFILE _title.bmp
#BANNER _banner.bmp #BANNER _banner.bmp
#DIFFICULTY 3
#TOTAL 470
#LNTYPE 1
#WAV01 b_Snare_v38l32o5c.wav #WAV01 b_Snare_v38l32o5c.wav
#WAV02 b_Snare_v102l16o5cp.wav #WAV02 b_Snare_v102l16o5cp.wav
#WAV03 b_Bass_v102l64-3o4e.wav #WAV03 b_Bass_v102l64-3o4e.wav
...@@ -533,6 +538,8 @@ ...@@ -533,6 +538,8 @@
#WAVEF Voices1__009.wav #WAVEF Voices1__009.wav
#WAVEG Voices1__010.wav #WAVEG Voices1__010.wav
*---------------------- EXPANSION FIELD
#BMP01 AA.bmp #BMP01 AA.bmp
#BMP02 AB.bmp #BMP02 AB.bmp
#BMP03 AC.bmp #BMP03 AC.bmp
...@@ -799,16 +806,10 @@ ...@@ -799,16 +806,10 @@
#SUBTITLE [7keys hyper]
#DIFFICULTY 3
#LNTYPE 1
*---------------------- MAIN DATA FIELD *---------------------- MAIN DATA FIELD
#00101:04 #00101:04
#00101:00 #00101:00
#00101:00 #00101:00
...@@ -816,10 +817,12 @@ ...@@ -816,10 +817,12 @@
#00104:0102030405060708090A0B0C0D0E0F0G #00104:0102030405060708090A0B0C0D0E0F0G
#00106:6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H #00106:6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H
#00107:69 #00107:69
#00111:F1F2F3F4
#00113:4I #00113:4I
#00204:0102030405060708090A0B0C0D0E0F69 #00204:0102030405060708090A0B0C0D0E0F69
#00206:6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H #00206:6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H6A6B6C6D6E6F6G6H
#00211:F5
#00301:09 #00301:09
#00301:00 #00301:00
...@@ -2162,3 +2165,4 @@ ...@@ -2162,3 +2165,4 @@
#08401:ZZ #08401:ZZ
fileFormatVersion: 2
guid: f6e8e93552be6744abed71b7b7553a5c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 183d1d3e655e0294c8f38c5b687642a8
ModelImporter:
serializedVersion: 26
internalIDToNameTable: []
externalObjects: {}
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 097e90ccb3ed3214996ef9ae96411c38
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
...@@ -20,13 +20,13 @@ RenderSettings: ...@@ -20,13 +20,13 @@ RenderSettings:
m_FogDensity: 0.01 m_FogDensity: 0.01
m_LinearFogStart: 0 m_LinearFogStart: 0
m_LinearFogEnd: 300 m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} m_AmbientSkyColor: {r: 0.2716714, g: 0.29690573, b: 0.3490566, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1 m_AmbientIntensity: 1
m_AmbientMode: 0 m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} m_SkyboxMaterial: {fileID: 2100000, guid: 40e78a3b48ddefc4daacfed39c49fe6a, type: 2}
m_HaloStrength: 0.5 m_HaloStrength: 0.5
m_FlareStrength: 1 m_FlareStrength: 1
m_FlareFadeSpeed: 3 m_FlareFadeSpeed: 3
...@@ -120,6 +120,90 @@ NavMeshSettings: ...@@ -120,6 +120,90 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1001 &23206332
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -927199367670048503, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_Name
value: Tunnel
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalPosition.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_RootOrder
value: 8
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 90
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalScale.y
value: 9
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalScale.z
value: 9
objectReference: {fileID: 0}
- target: {fileID: -1504981713932161579, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 8b1348d66ad68bd4096d8cf9a78088f3, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 183d1d3e655e0294c8f38c5b687642a8, type: 3}
--- !u!1 &56122231 --- !u!1 &56122231
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -212,6 +296,90 @@ Transform: ...@@ -212,6 +296,90 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 3 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &341502039
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -927199367670048503, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_Name
value: Tunnel (1)
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_RootOrder
value: 9
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 90
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalScale.y
value: 10
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_LocalScale.z
value: 10
objectReference: {fileID: 0}
- target: {fileID: -1504981713932161579, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 150603c95ae82bb4a9364677de3f13c1, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 183d1d3e655e0294c8f38c5b687642a8, type: 3}
--- !u!1 &358399389 --- !u!1 &358399389
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -623,7 +791,7 @@ MonoBehaviour: ...@@ -623,7 +791,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: cb855524a23a32a43a730dbccc41c251, type: 3} m_Script: {fileID: 11500000, guid: cb855524a23a32a43a730dbccc41c251, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
levelList: {fileID: 11400000, guid: e1892ae545de3a640a1b02a4e9e03a94, type: 2} levelList: {fileID: 11400000, guid: 8aef72256133e3c479e5255c254cf80e, type: 2}
ForwardNoteObject: {fileID: 8354046899824507576, guid: a13dadc44404fcd4f8cfb986339b1507, ForwardNoteObject: {fileID: 8354046899824507576, guid: a13dadc44404fcd4f8cfb986339b1507,
type: 3} type: 3}
test: 0 test: 0
...@@ -920,3 +1088,22 @@ Transform: ...@@ -920,3 +1088,22 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 6 m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
--- !u!1 &2112533737 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 183d1d3e655e0294c8f38c5b687642a8,
type: 3}
m_PrefabInstance: {fileID: 341502039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &2112533738
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2112533737}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 183e7944aec0f0249bd62b3ce6505251, type: 3}
m_Name:
m_EditorClassIdentifier:
incr: 1
...@@ -6,132 +6,129 @@ using System.Text.RegularExpressions; ...@@ -6,132 +6,129 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using UnityEngine; using UnityEngine;
namespace Core class BMS
{ {
class BMS // metadata
{
// metadata
public string title; public string title;
public double bpm; public double bpm;
public string genre; public string genre;
public string author; public string author;
public List<BmsNote> notes = new List<BmsNote>(); public List<BmsNote> notes = new List<BmsNote>();
public Level ToLevel() public Level ToLevel()
{ {
var level = new Level(); var level = new Level();
// convert metadata // convert metadata
level.bpm = bpm; level.bpm = bpm;
// sort all notes // sort all notes
notes.Sort((note1, note2) => notes.Sort((note1, note2) =>
{ {
var diff = note1.barTime - note2.barTime; var diff = note1.barTime - note2.barTime;
if (diff < 0) if (diff < 0)
return -1; return -1;
else if (diff == 0) else if (diff == 0)
return 0; return 0;
else else
return 1; return 1;
}); });
// convert all bms note to level note // convert all bms note to level note
foreach (var note in notes) foreach (var note in notes)
{ {
var levelNote = Note.Create(note, bpm); var levelNote = Note.Create(note, bpm);
if (levelNote != null) if (levelNote != null)
level.AddNote(levelNote); level.AddNote(levelNote);
} }
return level; return level;
}
} }
}
class BmsNote class BmsNote
{ {
public string num; public string num;
public string lane; public string lane;
public double barTime; public double barTime;
} }
class BmsParser class BmsParser
{
private static char[] SEP_NEWLINE = { '\n' };
private static char[] SEP_SPACE = { ' ' };
private static char[] SEP_COLON = { ':' };
private static Regex RX_DATALINE = new Regex(@"#[0-9]{5}");
public BMS Parse(string raw)
{ {
private static char[] SEP_NEWLINE = { '\n' }; var lines = raw.Split(SEP_NEWLINE);
private static char[] SEP_SPACE = { ' ' };
private static char[] SEP_COLON = { ':' };
private static Regex RX_DATALINE = new Regex(@"#[0-9]{5}"); var bms = new BMS();
public BMS Parse(string raw) foreach (var line in lines)
{ {
var lines = raw.Split(SEP_NEWLINE); // metadata
if (line.StartsWith("#TITLE"))
bms.title = line.Substring(line.IndexOf(' ') + 1);
var bms = new BMS(); if (line.StartsWith("#GENRE"))
bms.genre = line.Substring(line.IndexOf(' ') + 1);
foreach (var line in lines) if (line.StartsWith("#BPM"))
{ bms.bpm = double.Parse(line.Substring(line.IndexOf(' ') + 1));
// metadata
if (line.StartsWith("#TITLE"))
bms.title = line.Substring(line.IndexOf(' ') + 1);
if (line.StartsWith("#GENRE")) if (line.StartsWith("#ARTIST"))
bms.genre = line.Substring(line.IndexOf(' ') + 1); bms.author = line.Substring(line.IndexOf(' ') + 1);
if (line.StartsWith("#BPM")) // data lane
bms.bpm = double.Parse(line.Substring(line.IndexOf(' ') + 1)); if (RX_DATALINE.IsMatch(line))
{
if (line.StartsWith("#ARTIST")) var bar = int.Parse(line.Substring(1, 3));
bms.author = line.Substring(line.IndexOf(' ') + 1); var lane = line.Substring(4, 2);
var data = line.Substring(7).Trim();
// data lane // no support for variable bar length or bpm yet
if (RX_DATALINE.IsMatch(line)) if ((data.Length & 1) == 1 || data.Contains("."))
{ {
var bar = int.Parse(line.Substring(1, 3)); // ignore these lines
var lane = line.Substring(4, 2); }
var data = line.Substring(7).Trim();
// no support for variable bar length or bpm yet var denominator = data.Length / 2;
if ((data.Length & 1) == 1 || data.Contains("."))
{
// ignore these lines
}
var denominator = data.Length / 2; // process notes in the bar
for (int i = 0; i < denominator; i++)
{
var num = data.Substring(i * 2, 2);
var barTime = bar + i / (double)denominator;
// process notes in the bar // ignore empty notes
for (int i = 0; i < data.Length; i += 2) if (num != "00")
{ {
var num = data.Substring(i, 2); var note = new BmsNote();
var barTime = bar + i / (double)denominator;
// ignore empty notes note.num = num;
if (num != "00") note.lane = lane;
{ note.barTime = barTime;
var note = new BmsNote();
note.num = num; bms.notes.Add(note);
note.lane = lane;
note.barTime = barTime;
bms.notes.Add(note);
}
} }
} }
} }
Debug.Log(bms.author);
Debug.Log(bms.bpm);
Debug.Log(bms.title);
Debug.Log(bms.genre);
return bms;
} }
Debug.Log(bms.author);
Debug.Log(bms.bpm);
Debug.Log(bms.title);
Debug.Log(bms.genre);
return bms;
} }
} }
\ No newline at end of file
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
class Level
namespace Core
{ {
class Level private Queue<Note> notes = new Queue<Note>();
{ public double bpm;
private Queue<Note> notes = new Queue<Note>();
public double bpm;
public void AddNote(Note note)
{
notes.Enqueue(note);
}
public void HandleInput()
{
}
public void UpdateNotes(double time)
{
foreach (var note in notes)
{
float remainingTime = (float)(note.Time - time);
note.Update(remainingTime);
}
}
}
abstract class Note
{
// define common note properties
public double Time;
public HandType HandType;
protected NoteObject noteObject;
// interpret note option
protected abstract void FromBmsNum(String num);
protected abstract NoteObject CreateNoteObjectImpl();
// instantiate associated game object
public void CreateNoteObject()
{
noteObject = CreateNoteObjectImpl();
}
public void Update(float remainingTime)
{
if (remainingTime < 0 || remainingTime > 2)
{
noteObject.gameObject.SetActive(false);
} else
{
noteObject.gameObject.SetActive(true);
}
noteObject.SetPosition(remainingTime);
}
// factory method
// may return null if given note is not supported
public static Note Create(BmsNote bn, double bpm)
{
Note note = null;
HandType handType = HandType.None;
switch (bn.lane)
{
case "11": // 1p first lane: FORWARD LEFT HAND
note = new ForwardNote();
handType = HandType.Left;
break;
case "12": // 1p second lane: FORWARD RIGHT HAND
note = new ForwardNote();
handType = HandType.Right;
break;
//case "13": // 1p third lane: REAR LEFT HAND
// handType = HandType.Left;
// break;
//case "14": // 1p forth lane: REAR RIGHT HAND
// handType = HandType.Right;
// break;
//case "15": // 1p fifth lane: EDGE LEFT HAND
// handType = HandType.Left;
// break;
//case "16": // 1p sixth lane: EDGE RIGHT HAND
// handType = HandType.Right;
// break;
// add action notes
default:
return null;
}
note.FromBmsNum(bn.num); public void AddNote(Note note)
note.HandType = handType;
note.Time = bn.barTime * (60.0 / bpm * 4);
Debug.Log(note.Time);
note.CreateNoteObject();
return note;
}
}
class ForwardNote : Note
{ {
private float x, y; notes.Enqueue(note);
protected override NoteObject CreateNoteObjectImpl()
{
var obj = MonoBehaviour.Instantiate<NoteObject>(PlayEngine.inst.ForwardNoteObject);
obj.Init(x, y);
return obj;
}
protected override void FromBmsNum(string num)
{
// since 00 is used for empty notes, 1 ~ Z is valid range
x = charToCoord(num[0]) / 35.0f;
y = charToCoord(num[1]) / 35.0f;
}
private int charToCoord(char a)
{
if (char.IsDigit(a))
{
return a - '1';
}
else if (char.IsLetter(a))
{
return char.ToLower(a) - 'a' + 9;
}
throw new ArgumentException("wrong data");
}
} }
class RearNote : Note public void HandleInput()
{ {
protected override NoteObject CreateNoteObjectImpl()
{
throw new NotImplementedException();
}
protected override void FromBmsNum(string num)
{
throw new NotImplementedException();
}
} }
class EdgeNote : Note public void UpdateNotes(double time)
{ {
protected override NoteObject CreateNoteObjectImpl() foreach (var note in notes)
{ {
throw new NotImplementedException(); float remainingTime = (float)(note.Time - time);
note.Update(remainingTime);
} }
protected override void FromBmsNum(string num)
{
throw new NotImplementedException();
}
}
enum NoteType
{
Front,
Rear,
Edge,
Action
} }
}
enum HandType
{
Left,
Right,
None
}
[CreateAssetMenu(fileName = "New Level", menuName = "Level", order = 1)]
public class LevelScriptableObject : ScriptableObject
{
public TextAsset bms;
public AudioClip audioFile;
public double offsetBarTime = 0;
}
[CreateAssetMenu(fileName = "New Level List", menuName = "Level List", order = 1)]
public class LevelListscriptableObject : ScriptableObject
{
public LevelScriptableObject[] levels;
}
}
\ No newline at end of file
using UnityEngine;
[CreateAssetMenu(fileName = "New Level List", menuName = "Level List", order = 1)]
public class LevelListscriptableObject : ScriptableObject
{
public LevelScriptableObject[] levels;
}
\ No newline at end of file
fileFormatVersion: 2
guid: 49ad3034f020cf4489ea812c6de4c520
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
[CreateAssetMenu(fileName = "New Level", menuName = "Level", order = 1)]
public class LevelScriptableObject : ScriptableObject
{
public TextAsset bms;
public AudioClip audioFile;
public double offsetBarTime = 0;
}
\ No newline at end of file
fileFormatVersion: 2
guid: 9da68daca0d18d643a5342861db4e4df
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using System;
using System.Collections;
abstract class Note
{
// define common note properties
public double Time;
public HandType HandType;
protected NoteObject noteObject;
// interpret note option
protected abstract void FromBmsNum(String num);
protected abstract NoteObject CreateNoteObjectImpl();
// instantiate associated game object
public void CreateNoteObject()
{
noteObject = CreateNoteObjectImpl();
}
public void Update(float remainingTime)
{
if (remainingTime < 0 || remainingTime > 2)
{
noteObject.gameObject.SetActive(false);
}
else
{
noteObject.gameObject.SetActive(true);
}
noteObject.SetPosition(remainingTime);
}
// factory method
// may return null if given note is not supported
public static Note Create(BmsNote bn, double bpm)
{
Note note = null;
HandType handType = HandType.None;
switch (bn.lane)
{
case "11": // 1p first lane: FORWARD LEFT HAND
note = new ForwardNote();
handType = HandType.Left;
break;
case "12": // 1p second lane: FORWARD RIGHT HAND
note = new ForwardNote();
handType = HandType.Right;
break;
//case "13": // 1p third lane: REAR LEFT HAND
// handType = HandType.Left;
// break;
//case "14": // 1p forth lane: REAR RIGHT HAND
// handType = HandType.Right;
// break;
//case "15": // 1p fifth lane: EDGE LEFT HAND
// handType = HandType.Left;
// break;
//case "16": // 1p sixth lane: EDGE RIGHT HAND
// handType = HandType.Right;
// break;
// add action notes
default:
return null;
}
note.FromBmsNum(bn.num);
note.HandType = handType;
note.Time = bn.barTime * (60.0 / bpm * 4);
note.CreateNoteObject();
return note;
}
}
class ForwardNote : Note
{
private float x, y;
protected override NoteObject CreateNoteObjectImpl()
{
var obj = MonoBehaviour.Instantiate<ForwardNoteObject>(PlayEngine.inst.ForwardNoteObject);
obj.Init(x, y, HandType);
return obj;
}
protected override void FromBmsNum(string num)
{
Debug.Log(num);
// since 00 is used for empty notes, 1 ~ Z is valid range
x = charToCoord(num[0]) / 35.0f;
y = charToCoord(num[1]) / 35.0f;
}
private int charToCoord(char a)
{
if (char.IsDigit(a))
{
return a - '1';
}
else if (char.IsLetter(a))
{
return char.ToLower(a) - 'a' + 9;
}
throw new ArgumentException("wrong data");
}
}
class RearNote : Note
{
protected override NoteObject CreateNoteObjectImpl()
{
throw new NotImplementedException();
}
protected override void FromBmsNum(string num)
{
throw new NotImplementedException();
}
}
class EdgeNote : Note
{
protected override NoteObject CreateNoteObjectImpl()
{
throw new NotImplementedException();
}
protected override void FromBmsNum(string num)
{
throw new NotImplementedException();
}
}
public enum NoteType
{
Front,
Rear,
Edge,
Action
}
public enum HandType
{
Left,
Right,
None
}
\ No newline at end of file
fileFormatVersion: 2
guid: b820ac883a1211242a63a9179c17395d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
...@@ -6,9 +6,9 @@ public class ForwardNoteObject : NoteObject ...@@ -6,9 +6,9 @@ public class ForwardNoteObject : NoteObject
{ {
public RectTransform ring; public RectTransform ring;
public override void Init(float x, float y) // 각 노트별 개별 함수이기 때문에 상속 관계 유지 불필요.
public void Init(float x, float y, HandType handType)
{ {
base.Init(x, y);
//Vector3 point = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width * x, Screen.height * y, Camera.main.nearClipPlane)); //Vector3 point = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width * x, Screen.height * y, Camera.main.nearClipPlane));
// //
...@@ -21,6 +21,20 @@ public class ForwardNoteObject : NoteObject ...@@ -21,6 +21,20 @@ public class ForwardNoteObject : NoteObject
transform.position = endPoint + new Vector3(0, 0, 50); transform.position = endPoint + new Vector3(0, 0, 50);
ring = IngameUIManager.inst.AddNoteRingUI(); ring = IngameUIManager.inst.AddNoteRingUI();
ring.position = endPoint; ring.position = endPoint;
Material mat = GetComponent<Renderer>().material;
switch (handType)
{
case HandType.Left:
mat.color = Color.red;
break;
case HandType.Right:
mat.color = Color.blue;
break;
}
} }
private void Start() private void Start()
{ {
...@@ -28,18 +42,21 @@ public class ForwardNoteObject : NoteObject ...@@ -28,18 +42,21 @@ public class ForwardNoteObject : NoteObject
private void OnDisable() private void OnDisable()
{ {
ring.gameObject.SetActive(false); if (ring != null)
ring.gameObject.SetActive(false);
} }
private void OnEnable() private void OnEnable()
{ {
ring.gameObject.SetActive(true); if (ring != null)
ring.gameObject.SetActive(true);
} }
protected override void OnDestroy() protected override void OnDestroy()
{ {
base.OnDestroy(); base.OnDestroy();
Destroy(ring.gameObject); if(ring != null)
Destroy(ring.gameObject);
} }
public override void NoteHit(NoteHitType type) public override void NoteHit(NoteHitType type)
...@@ -51,5 +68,12 @@ public class ForwardNoteObject : NoteObject ...@@ -51,5 +68,12 @@ public class ForwardNoteObject : NoteObject
{ {
base.SetPosition(remainedTime); base.SetPosition(remainedTime);
ring.localScale = (1 + 4 * remainedTime / maxRemainedTime) * new Vector3(1, 1, 1); ring.localScale = (1 + 4 * remainedTime / maxRemainedTime) * new Vector3(1, 1, 1);
// change ring alpha
var img = ring.gameObject.GetComponent<UnityEngine.UI.Image>();
var color = img.color;
color.a = 1f-Mathf.Clamp(remainedTime / maxRemainedTime, 0, 1);
img.color = color;
} }
} }
...@@ -29,12 +29,11 @@ public abstract class NoteObject : MonoBehaviour ...@@ -29,12 +29,11 @@ public abstract class NoteObject : MonoBehaviour
} }
public virtual void Init(float x, float y) public void Awake()
{ {
remainedTime = maxRemainedTime; remainedTime = maxRemainedTime;
} }
public abstract void NoteHit(NoteHitType type); public abstract void NoteHit(NoteHitType type);
public virtual void SetPosition(float remainedTime) public virtual void SetPosition(float remainedTime)
......
...@@ -5,11 +5,11 @@ using UnityEngine; ...@@ -5,11 +5,11 @@ using UnityEngine;
[RequireComponent(typeof(AudioSource))] [RequireComponent(typeof(AudioSource))]
public class PlayEngine : SingletonBehaviour<PlayEngine> public class PlayEngine : SingletonBehaviour<PlayEngine>
{ {
public Core.LevelListscriptableObject levelList; public LevelListscriptableObject levelList;
public ForwardNoteObject ForwardNoteObject; public ForwardNoteObject ForwardNoteObject;
private double startTime; private double startTime;
private Core.Level level; private Level level;
private AudioSource audioSource; private AudioSource audioSource;
private AudioClip audioClip; private AudioClip audioClip;
...@@ -30,7 +30,7 @@ public class PlayEngine : SingletonBehaviour<PlayEngine> ...@@ -30,7 +30,7 @@ public class PlayEngine : SingletonBehaviour<PlayEngine>
var audioFile = levelData.audioFile; var audioFile = levelData.audioFile;
var offsetBarTime = levelData.offsetBarTime; var offsetBarTime = levelData.offsetBarTime;
var bms = new Core.BmsParser().Parse(bmsText); var bms = new BmsParser().Parse(bmsText);
var level = bms.ToLevel(); var level = bms.ToLevel();
this.level = level; this.level = level;
...@@ -42,7 +42,7 @@ public class PlayEngine : SingletonBehaviour<PlayEngine> ...@@ -42,7 +42,7 @@ public class PlayEngine : SingletonBehaviour<PlayEngine>
startDspTime = scheduleOffset + dspTime; startDspTime = scheduleOffset + dspTime;
audioSource.clip = audioFile; audioSource.clip = audioFile;
audioSource.PlayScheduled(playOffset); audioSource.PlayScheduled(playOffset + dspTime);
Debug.Log(playOffset); Debug.Log(playOffset);
} }
...@@ -53,5 +53,15 @@ public class PlayEngine : SingletonBehaviour<PlayEngine> ...@@ -53,5 +53,15 @@ public class PlayEngine : SingletonBehaviour<PlayEngine>
var time = AudioSettings.dspTime - startDspTime; var time = AudioSettings.dspTime - startDspTime;
level.UpdateNotes(time); level.UpdateNotes(time);
} }
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
audioSource.time -= 1.0f;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
audioSource.time += 1.0f;
}
} }
} }
...@@ -4,7 +4,7 @@ MonoImporter: ...@@ -4,7 +4,7 @@ MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
defaultReferences: defaultReferences:
- levelList: {fileID: 11400000, guid: e1892ae545de3a640a1b02a4e9e03a94, type: 2} - levelList: {fileID: 11400000, guid: 8aef72256133e3c479e5255c254cf80e, type: 2}
- ForwardNoteObject: {fileID: 8354046899824507576, guid: a13dadc44404fcd4f8cfb986339b1507, - ForwardNoteObject: {fileID: 8354046899824507576, guid: a13dadc44404fcd4f8cfb986339b1507,
type: 3} type: 3}
executionOrder: 0 executionOrder: 0
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TunnelObject : MonoBehaviour
{
private float rot = 0.1f;
public float incr = 1f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//rot += incr * Time.time;
transform.Rotate(rot, 0, 0);
}
}
fileFormatVersion: 2
guid: 183e7944aec0f0249bd62b3ce6505251
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 5a6dd3e017aa2714cbee02eea8a8ec38
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 6c2f353e9d8b923488045a750ad902fd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: c1bd9f6e8fc7c484db8d32ca80ca2db1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 76ceaaeccce0ba24fab73809156cb586
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 4f3d65ae4cb8c1e42a5aadb7d931832d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Rainbow Wireframe 1
m_Shader: {fileID: 4800000, guid: 2fd7d2ad6e49f5b44ac540005c095ff5, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _Thickness: 5
m_Colors:
- _Color: {r: 0.7735849, g: 0.7735849, b: 0.7735849, a: 1}
fileFormatVersion: 2
guid: 8b1348d66ad68bd4096d8cf9a78088f3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Rainbow Wireframe 2
m_Shader: {fileID: 4800000, guid: 2fd7d2ad6e49f5b44ac540005c095ff5, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: f2aff80574802eb4dabbce2988cb2067, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _Thickness: 5
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
fileFormatVersion: 2
guid: 3ea398864e8f202419d8fe1fd9d39206
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Rainbow Wireframe
m_Shader: {fileID: 4800000, guid: 2fd7d2ad6e49f5b44ac540005c095ff5, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: 1250643187cd6e84f873b5efc80f049d, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _Thickness: 5
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
fileFormatVersion: 2
guid: 150603c95ae82bb4a9364677de3f13c1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Wireframe Cutout Double-Sided
m_Shader: {fileID: 4800000, guid: 2fd7d2ad6e49f5b44ac540005c095ff5, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Texture:
m_Texture: {fileID: 2800000, guid: f2aff80574802eb4dabbce2988cb2067, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _Thickness: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment