From c8c5b8aa023caa07db6fed7807ca3aa776397b26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?15=EB=B0=95=EB=B3=B4=EC=8A=B9?= <pbs04054@gmail.com>
Date: Sun, 3 Nov 2019 20:09:26 +0900
Subject: [PATCH] =?UTF-8?q?forwardnote=20=EA=B5=AC=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Editor/Resources.meta => Materials.meta}  |   5 +-
 RhythmKata/Assets/Materials/DefaultNote.mat   | 101 +++++
 .../Assets/Materials/DefaultNote.mat.meta     |   8 +
 RhythmKata/Assets/Materials/EdgeNote.mat      | 101 +++++
 RhythmKata/Assets/Materials/EdgeNote.mat.meta |   8 +
 ...ources.meta => PinwheelFantasyEffect.meta} |   4 +-
 RhythmKata/Assets/Prefabs.meta                |   8 +
 RhythmKata/Assets/Prefabs/Ring.prefab         |  77 ++++
 RhythmKata/Assets/Prefabs/Ring.prefab.meta    |   7 +
 RhythmKata/Assets/Scenes/bs.unity             | 424 +++++++++++++++---
 RhythmKata/Assets/Scripts/EdgeNoteObject.cs   |  18 +
 .../Assets/Scripts/EdgeNoteObject.cs.meta     |  11 +
 .../Assets/Scripts/ForwardNoteObject.cs       |  48 ++
 .../Assets/Scripts/ForwardNoteObject.cs.meta  |  11 +
 RhythmKata/Assets/Scripts/GameManager.cs      |   2 +-
 RhythmKata/Assets/Scripts/IngameUIManager.cs  |  14 +-
 RhythmKata/Assets/Scripts/Note.cs             |  38 --
 RhythmKata/Assets/Scripts/NoteObject.cs       |  49 ++
 .../{Note.cs.meta => NoteObject.cs.meta}      |   0
 .../Assets/Scripts/SingletonBehaviour.cs      |  37 ++
 .../Assets/Scripts/SingletonBehaviour.cs.meta |  11 +
 .../Assets/SteamVR_Resources/Resources.meta   |   2 +-
 RhythmKata/Assets/ring.png                    | Bin 0 -> 29158 bytes
 RhythmKata/Assets/ring.png.meta               | 115 +++++
 24 files changed, 995 insertions(+), 104 deletions(-)
 rename RhythmKata/Assets/{SteamVR/Input/Editor/Resources.meta => Materials.meta} (57%)
 create mode 100644 RhythmKata/Assets/Materials/DefaultNote.mat
 create mode 100644 RhythmKata/Assets/Materials/DefaultNote.mat.meta
 create mode 100644 RhythmKata/Assets/Materials/EdgeNote.mat
 create mode 100644 RhythmKata/Assets/Materials/EdgeNote.mat.meta
 rename RhythmKata/Assets/{SteamVR/Resources.meta => PinwheelFantasyEffect.meta} (51%)
 create mode 100644 RhythmKata/Assets/Prefabs.meta
 create mode 100644 RhythmKata/Assets/Prefabs/Ring.prefab
 create mode 100644 RhythmKata/Assets/Prefabs/Ring.prefab.meta
 create mode 100644 RhythmKata/Assets/Scripts/EdgeNoteObject.cs
 create mode 100644 RhythmKata/Assets/Scripts/EdgeNoteObject.cs.meta
 create mode 100644 RhythmKata/Assets/Scripts/ForwardNoteObject.cs
 create mode 100644 RhythmKata/Assets/Scripts/ForwardNoteObject.cs.meta
 delete mode 100644 RhythmKata/Assets/Scripts/Note.cs
 create mode 100644 RhythmKata/Assets/Scripts/NoteObject.cs
 rename RhythmKata/Assets/Scripts/{Note.cs.meta => NoteObject.cs.meta} (100%)
 create mode 100644 RhythmKata/Assets/Scripts/SingletonBehaviour.cs
 create mode 100644 RhythmKata/Assets/Scripts/SingletonBehaviour.cs.meta
 create mode 100644 RhythmKata/Assets/ring.png
 create mode 100644 RhythmKata/Assets/ring.png.meta

diff --git a/RhythmKata/Assets/SteamVR/Input/Editor/Resources.meta b/RhythmKata/Assets/Materials.meta
similarity index 57%
rename from RhythmKata/Assets/SteamVR/Input/Editor/Resources.meta
rename to RhythmKata/Assets/Materials.meta
index 0fc5fc6..455d981 100644
--- a/RhythmKata/Assets/SteamVR/Input/Editor/Resources.meta
+++ b/RhythmKata/Assets/Materials.meta
@@ -1,9 +1,8 @@
 fileFormatVersion: 2
-guid: 7d5e740d15d7ca249b884d30ff558bc1
+guid: de818af80ad396d408717e02d3584fb9
 folderAsset: yes
-timeCreated: 1547747995
-licenseType: Store
 DefaultImporter:
+  externalObjects: {}
   userData: 
   assetBundleName: 
   assetBundleVariant: 
diff --git a/RhythmKata/Assets/Materials/DefaultNote.mat b/RhythmKata/Assets/Materials/DefaultNote.mat
new file mode 100644
index 0000000..ec7b2a7
--- /dev/null
+++ b/RhythmKata/Assets/Materials/DefaultNote.mat
@@ -0,0 +1,101 @@
+%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: Note
+  m_Shader: {fileID: 10753, 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:
+    - _AlphaTex:
+        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}
+    - _DecalTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - PixelSnap: 0
+    - _BumpScale: 1
+    - _ColorMask: 15
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _EnableExternalAlpha: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Stencil: 0
+    - _StencilComp: 8
+    - _StencilOp: 0
+    - _StencilReadMask: 255
+    - _StencilWriteMask: 255
+    - _UVSec: 0
+    - _UseUIAlphaClip: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _Flip: {r: 1, g: 1, b: 1, a: 1}
+    - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
diff --git a/RhythmKata/Assets/Materials/DefaultNote.mat.meta b/RhythmKata/Assets/Materials/DefaultNote.mat.meta
new file mode 100644
index 0000000..44008ed
--- /dev/null
+++ b/RhythmKata/Assets/Materials/DefaultNote.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e5126cfe2f1b13144a54b88b7c55be50
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/Materials/EdgeNote.mat b/RhythmKata/Assets/Materials/EdgeNote.mat
new file mode 100644
index 0000000..ec7b2a7
--- /dev/null
+++ b/RhythmKata/Assets/Materials/EdgeNote.mat
@@ -0,0 +1,101 @@
+%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: Note
+  m_Shader: {fileID: 10753, 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:
+    - _AlphaTex:
+        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}
+    - _DecalTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - PixelSnap: 0
+    - _BumpScale: 1
+    - _ColorMask: 15
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _EnableExternalAlpha: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Stencil: 0
+    - _StencilComp: 8
+    - _StencilOp: 0
+    - _StencilReadMask: 255
+    - _StencilWriteMask: 255
+    - _UVSec: 0
+    - _UseUIAlphaClip: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _Flip: {r: 1, g: 1, b: 1, a: 1}
+    - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
diff --git a/RhythmKata/Assets/Materials/EdgeNote.mat.meta b/RhythmKata/Assets/Materials/EdgeNote.mat.meta
new file mode 100644
index 0000000..201a360
--- /dev/null
+++ b/RhythmKata/Assets/Materials/EdgeNote.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c14b6a54d1736a94b94ac379f0cc3f76
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/SteamVR/Resources.meta b/RhythmKata/Assets/PinwheelFantasyEffect.meta
similarity index 51%
rename from RhythmKata/Assets/SteamVR/Resources.meta
rename to RhythmKata/Assets/PinwheelFantasyEffect.meta
index 32789b2..0ecd9d3 100644
--- a/RhythmKata/Assets/SteamVR/Resources.meta
+++ b/RhythmKata/Assets/PinwheelFantasyEffect.meta
@@ -1,6 +1,8 @@
 fileFormatVersion: 2
-guid: 40af2f692be87864ba388a27fcac9ed8
+guid: fb899d0efba85f14f8aa97aa7d5646c7
 folderAsset: yes
 DefaultImporter:
+  externalObjects: {}
   userData: 
   assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/Prefabs.meta b/RhythmKata/Assets/Prefabs.meta
new file mode 100644
index 0000000..57b4152
--- /dev/null
+++ b/RhythmKata/Assets/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 69f8a36c4c2b83744bb1c90ce4fe7cd9
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/Prefabs/Ring.prefab b/RhythmKata/Assets/Prefabs/Ring.prefab
new file mode 100644
index 0000000..928da05
--- /dev/null
+++ b/RhythmKata/Assets/Prefabs/Ring.prefab
@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8100479809720507869
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8100479809720507868}
+  - component: {fileID: 8100479809720507870}
+  - component: {fileID: 8100479809720507871}
+  m_Layer: 5
+  m_Name: Ring
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8100479809720507868
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8100479809720507869}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 5, y: 5, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 1.1, y: 1.1}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8100479809720507870
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8100479809720507869}
+  m_CullTransparentMesh: 0
+--- !u!114 &8100479809720507871
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8100479809720507869}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: ed5e85d6ad7b15842ae3af65f11a4b90, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
diff --git a/RhythmKata/Assets/Prefabs/Ring.prefab.meta b/RhythmKata/Assets/Prefabs/Ring.prefab.meta
new file mode 100644
index 0000000..921fdd0
--- /dev/null
+++ b/RhythmKata/Assets/Prefabs/Ring.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 13fc3a8405d796e4e87e099e870cc446
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/Scenes/bs.unity b/RhythmKata/Assets/Scenes/bs.unity
index 3b4d5cd..c03b76c 100644
--- a/RhythmKata/Assets/Scenes/bs.unity
+++ b/RhythmKata/Assets/Scenes/bs.unity
@@ -120,7 +120,7 @@ NavMeshSettings:
     debug:
       m_Flags: 0
   m_NavMeshData: {fileID: 0}
---- !u!1 &57421180
+--- !u!1 &56122231
 GameObject:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -128,73 +128,182 @@ GameObject:
   m_PrefabAsset: {fileID: 0}
   serializedVersion: 6
   m_Component:
-  - component: {fileID: 57421181}
-  - component: {fileID: 57421183}
-  - component: {fileID: 57421182}
-  m_Layer: 5
-  m_Name: Image
+  - component: {fileID: 56122235}
+  - component: {fileID: 56122234}
+  - component: {fileID: 56122233}
+  - component: {fileID: 56122232}
+  m_Layer: 0
+  m_Name: EdgeNote_Right
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!224 &57421181
-RectTransform:
+--- !u!65 &56122232
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 56122231}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &56122233
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 56122231}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &56122234
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 56122231}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &56122235
+Transform:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 57421180}
+  m_GameObject: {fileID: 56122231}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_LocalPosition: {x: 7.5, y: 0, z: 12.049999}
+  m_LocalScale: {x: 1, y: 10, z: 1}
   m_Children: []
-  m_Father: {fileID: 554573586}
-  m_RootOrder: 0
+  m_Father: {fileID: 0}
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 1, y: 1}
-  m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &57421182
-MonoBehaviour:
+--- !u!1 &358399389
+GameObject:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 57421180}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 358399393}
+  - component: {fileID: 358399392}
+  - component: {fileID: 358399391}
+  - component: {fileID: 358399390}
+  m_Layer: 0
+  m_Name: EdgeNote_Up
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!65 &358399390
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 358399389}
   m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_RaycastTarget: 1
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
-      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
-  m_Sprite: {fileID: 0}
-  m_Type: 0
-  m_PreserveAspect: 0
-  m_FillCenter: 1
-  m_FillMethod: 4
-  m_FillAmount: 1
-  m_FillClockwise: 1
-  m_FillOrigin: 0
-  m_UseSpriteMesh: 0
-  m_PixelsPerUnitMultiplier: 1
---- !u!222 &57421183
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 57421180}
-  m_CullTransparentMesh: 0
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &358399391
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 358399389}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &358399392
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 358399389}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &358399393
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 358399389}
+  m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
+  m_LocalPosition: {x: 0, y: 7.5, z: 12.05}
+  m_LocalScale: {x: 1, y: 10, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
 --- !u!1 &554573582
 GameObject:
   m_ObjectHideFlags: 0
@@ -207,6 +316,7 @@ GameObject:
   - component: {fileID: 554573585}
   - component: {fileID: 554573584}
   - component: {fileID: 554573583}
+  - component: {fileID: 554573587}
   m_Layer: 5
   m_Name: Canvas
   m_TagString: Untagged
@@ -284,8 +394,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 10}
   m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 57421181}
+  m_Children: []
   m_Father: {fileID: 0}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -294,6 +403,20 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 160, y: 90}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &554573587
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 554573582}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: b26911b9b7f765148874d3cea86781fc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  ringUIPrefab: {fileID: 8100479809720507869, guid: 13fc3a8405d796e4e87e099e870cc446,
+    type: 3}
 --- !u!1 &615417178
 GameObject:
   m_ObjectHideFlags: 0
@@ -371,12 +494,104 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 615417178}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: -1.64}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 0}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &949838646
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 949838650}
+  - component: {fileID: 949838649}
+  - component: {fileID: 949838648}
+  - component: {fileID: 949838647}
+  m_Layer: 0
+  m_Name: EdgeNote_Left
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!65 &949838647
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 949838646}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &949838648
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 949838646}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &949838649
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 949838646}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &949838650
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 949838646}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -7.5, y: 0, z: 12.05}
+  m_LocalScale: {x: 1, y: 10, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1078250867
 GameObject:
   m_ObjectHideFlags: 0
@@ -391,7 +606,7 @@ GameObject:
   - component: {fileID: 1078250868}
   - component: {fileID: 1078250872}
   m_Layer: 0
-  m_Name: Sphere
+  m_Name: DefaultNote
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -427,7 +642,7 @@ MeshRenderer:
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
-  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 2100000, guid: e5126cfe2f1b13144a54b88b7c55be50, type: 2}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -483,8 +698,9 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   startPoint: {x: 0, y: 0, z: 50}
-  maxRemainedTime: 5
+  maxRemainedTime: 2
   perfectZ: 10
+  ring: {fileID: 0}
 --- !u!1 &1568604744
 GameObject:
   m_ObjectHideFlags: 0
@@ -512,7 +728,7 @@ Light:
   m_Enabled: 1
   serializedVersion: 9
   m_Type: 1
-  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_Intensity: 1
   m_Range: 10
   m_SpotAngle: 30
@@ -576,3 +792,95 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &1890185780
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1890185784}
+  - component: {fileID: 1890185783}
+  - component: {fileID: 1890185782}
+  - component: {fileID: 1890185781}
+  m_Layer: 0
+  m_Name: EdgeNote_Down
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!65 &1890185781
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1890185780}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1890185782
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1890185780}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &1890185783
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1890185780}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1890185784
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1890185780}
+  m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
+  m_LocalPosition: {x: 0, y: -7.5, z: 12.05}
+  m_LocalScale: {x: 1, y: 10, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
diff --git a/RhythmKata/Assets/Scripts/EdgeNoteObject.cs b/RhythmKata/Assets/Scripts/EdgeNoteObject.cs
new file mode 100644
index 0000000..117b1fb
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/EdgeNoteObject.cs
@@ -0,0 +1,18 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EdgeNoteObject : MonoBehaviour
+{
+    // Start is called before the first frame update
+    void Start()
+    {
+        
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+}
diff --git a/RhythmKata/Assets/Scripts/EdgeNoteObject.cs.meta b/RhythmKata/Assets/Scripts/EdgeNoteObject.cs.meta
new file mode 100644
index 0000000..62e0d47
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/EdgeNoteObject.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9d22c6dafddad8240b23e0f8364a5fd2
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/Scripts/ForwardNoteObject.cs b/RhythmKata/Assets/Scripts/ForwardNoteObject.cs
new file mode 100644
index 0000000..b1961f1
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/ForwardNoteObject.cs
@@ -0,0 +1,48 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ForwardNoteObject : NoteObject
+{
+    public RectTransform ring;
+
+    public override void Init(float x, float y)
+    {
+        base.Init(x, y);
+        //Vector3 point = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width * x, Screen.height * y, Camera.main.nearClipPlane));
+        //
+
+        perfectZ = IngameUIManager.inst.transform.position.z;
+        Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width * x, Screen.height * y, Camera.main.nearClipPlane));
+        endPoint = ray.GetPoint(perfectZ);
+       
+        Debug.Log(endPoint);
+
+        transform.position = endPoint + new Vector3(0, 0, 50);
+        ring = IngameUIManager.inst.AddNoteRingUI();
+        ring.position = endPoint;
+    }
+    private void Start()
+    {
+        Init(Random.Range(0f, 1f), Random.Range(0f, 1f));
+    }
+
+    protected override void OnDestroy()
+    {
+        base.OnDestroy();
+        Destroy(ring.gameObject);
+    }
+
+    public override void NoteHit(NoteHitType type)
+    {
+        //OnNoteHit(NoteHitType.PERFECT, 300);
+    }
+
+    public override void SetPosition(float remainedTime)
+    {
+        base.SetPosition(remainedTime);
+        ring.localScale = (1 + 4 * remainedTime / maxRemainedTime) * new Vector3(1, 1, 1);
+        if (ring.localScale.x < 0)
+            Destroy(gameObject);
+    }
+}
diff --git a/RhythmKata/Assets/Scripts/ForwardNoteObject.cs.meta b/RhythmKata/Assets/Scripts/ForwardNoteObject.cs.meta
new file mode 100644
index 0000000..dd3d051
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/ForwardNoteObject.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5ede6b16436a58b4bb3118a59fd1a9ba
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/Scripts/GameManager.cs b/RhythmKata/Assets/Scripts/GameManager.cs
index bbc7814..244dff2 100644
--- a/RhythmKata/Assets/Scripts/GameManager.cs
+++ b/RhythmKata/Assets/Scripts/GameManager.cs
@@ -14,7 +14,7 @@ public class GameManager : MonoBehaviour
 
     private void Start()
     {
-        Note.OnNoteHit += UpdateScore;
+        NoteObject.OnNoteHit += UpdateScore;
     }
 
     public void StartStage()
diff --git a/RhythmKata/Assets/Scripts/IngameUIManager.cs b/RhythmKata/Assets/Scripts/IngameUIManager.cs
index 6943ffc..0288192 100644
--- a/RhythmKata/Assets/Scripts/IngameUIManager.cs
+++ b/RhythmKata/Assets/Scripts/IngameUIManager.cs
@@ -1,15 +1,25 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using UnityEngine.UI;
 
-public class IngameUIManager : MonoBehaviour
+public class IngameUIManager : SingletonBehaviour<IngameUIManager>
 {
+    public GameObject ringUIPrefab;
+
+    public List<GameObject> hitEffectPrefabs = new List<GameObject>();
+
     private void Start()
     {
-        Note.OnNoteHit += OnNoteHit;
+        NoteObject.OnNoteHit += OnNoteHit;
     }
     public void OnNoteHit(NoteHitType type, int score)
     {
 
     }
+    
+    public RectTransform AddNoteRingUI()
+    {
+        return Instantiate(ringUIPrefab, transform).GetComponent<RectTransform>();
+    }
 }
diff --git a/RhythmKata/Assets/Scripts/Note.cs b/RhythmKata/Assets/Scripts/Note.cs
deleted file mode 100644
index b2634dd..0000000
--- a/RhythmKata/Assets/Scripts/Note.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-public enum NoteHitType
-{
-    PERFECT,
-    GOOD,
-    BAD,
-    MISS
-}
-
-public class Note : MonoBehaviour
-{
-    public static Action<NoteHitType, int> OnNoteHit;
-    private float remainedTime = 5;
-
-	public Vector3 startPoint = new Vector3(0, 0, 50);
-	public float maxRemainedTime = 5;
-	public float perfectZ = 10;
-
-	private void Start()
-	{
-		transform.position = startPoint;
-	}
-
-	public void NoteHit()
-    {
-        OnNoteHit(NoteHitType.PERFECT, 300);
-    }
-
-    public void SetPosition(float remainedTime)
-    {
-		transform.position = Vector3.Lerp(startPoint, new Vector3(startPoint.x, startPoint.y, perfectZ), remainedTime / maxRemainedTime);
-    }
-}
diff --git a/RhythmKata/Assets/Scripts/NoteObject.cs b/RhythmKata/Assets/Scripts/NoteObject.cs
new file mode 100644
index 0000000..7b08f41
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/NoteObject.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public enum NoteHitType
+{
+    PERFECT,
+    GOOD,
+    BAD,
+    MISS
+}
+
+public abstract class NoteObject : MonoBehaviour
+{
+    public static Action<NoteHitType, int> OnNoteHit;
+    protected float remainedTime;
+
+    public Vector3 startPoint { get { return endPoint + new Vector3(0, 0, 50); } }
+    public Vector3 endPoint;
+
+	public float maxRemainedTime = 1;
+	public float perfectZ = 10;
+
+    protected virtual void Update()
+    {
+        //for debug
+        remainedTime -= Time.deltaTime;
+        SetPosition(remainedTime);
+    }
+    protected virtual void OnDestroy()
+    {
+        
+    }
+
+    public virtual void Init(float x, float y)
+    {
+        remainedTime = maxRemainedTime;
+    }
+
+
+    public abstract void NoteHit(NoteHitType type);
+
+    public virtual void SetPosition(float remainedTime)
+    {
+        transform.position = endPoint + new Vector3(0, 0, 50) * remainedTime / maxRemainedTime;
+    }
+}
diff --git a/RhythmKata/Assets/Scripts/Note.cs.meta b/RhythmKata/Assets/Scripts/NoteObject.cs.meta
similarity index 100%
rename from RhythmKata/Assets/Scripts/Note.cs.meta
rename to RhythmKata/Assets/Scripts/NoteObject.cs.meta
diff --git a/RhythmKata/Assets/Scripts/SingletonBehaviour.cs b/RhythmKata/Assets/Scripts/SingletonBehaviour.cs
new file mode 100644
index 0000000..a9b8e3a
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/SingletonBehaviour.cs
@@ -0,0 +1,37 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class SingletonBehaviour<T> : MonoBehaviour where T : MonoBehaviour
+{
+
+    private static T _inst = null;
+    public static T inst
+    {
+        get
+        {
+            if (_inst == null)
+            {
+                if (FindObjectsOfType<T>().Length > 1)
+                    Debug.LogError("More than one");
+                else if (FindObjectOfType<T>() != null)
+                    _inst = FindObjectOfType<T>();
+                else
+                {
+                    GameObject go = new GameObject
+                    {
+                        name = typeof(T).Name
+                    };
+                    _inst = go.AddComponent<T>();
+                }
+            }
+            return _inst;
+        }
+    }
+
+    public void SetStatic()
+    {
+        if (_inst != null)
+            DontDestroyOnLoad(_inst.gameObject);
+    }
+}
diff --git a/RhythmKata/Assets/Scripts/SingletonBehaviour.cs.meta b/RhythmKata/Assets/Scripts/SingletonBehaviour.cs.meta
new file mode 100644
index 0000000..80c7609
--- /dev/null
+++ b/RhythmKata/Assets/Scripts/SingletonBehaviour.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 95fb5fdfe9fe09348bd9e6232aec085b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/RhythmKata/Assets/SteamVR_Resources/Resources.meta b/RhythmKata/Assets/SteamVR_Resources/Resources.meta
index b6928de..6d3dcae 100644
--- a/RhythmKata/Assets/SteamVR_Resources/Resources.meta
+++ b/RhythmKata/Assets/SteamVR_Resources/Resources.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 53e7865ed14c65d4587a4fa922c6d0d7
+guid: 63951b5c98c98d94bb25b53a400cecb9
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}
diff --git a/RhythmKata/Assets/ring.png b/RhythmKata/Assets/ring.png
new file mode 100644
index 0000000000000000000000000000000000000000..447d3489580a1a2cdc7cb3756f6cf8671ec7b3d7
GIT binary patch
literal 29158
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%0DMYR){kE7}XZi6p#Aj&BIe!Q5+O#VJU7RAP=
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

literal 0
HcmV?d00001

diff --git a/RhythmKata/Assets/ring.png.meta b/RhythmKata/Assets/ring.png.meta
new file mode 100644
index 0000000..1f9ea6d
--- /dev/null
+++ b/RhythmKata/Assets/ring.png.meta
@@ -0,0 +1,115 @@
+fileFormatVersion: 2
+guid: ed5e85d6ad7b15842ae3af65f11a4b90
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 10
+  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
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    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
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    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: 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: Windows Store Apps
+    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: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
-- 
2.22.0