diff --git a/.idea/.idea.hyper-racer/.idea/.gitignore b/.idea/.idea.hyper-racer/.idea/.gitignore
new file mode 100644
index 0000000..eb7461d
--- /dev/null
+++ b/.idea/.idea.hyper-racer/.idea/.gitignore
@@ -0,0 +1,13 @@
+# 디폴트 무시된 파일
+/shelf/
+/workspace.xml
+# Rider에서 무시된 파일
+/contentModel.xml
+/modules.xml
+/.idea.hyper-racer.iml
+/projectSettingsUpdater.xml
+# 에디터 기반 HTTP 클라이언트 요청
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.hyper-racer/.idea/encodings.xml b/.idea/.idea.hyper-racer/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.hyper-racer/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.hyper-racer/.idea/indexLayout.xml b/.idea/.idea.hyper-racer/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.hyper-racer/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.hyper-racer/.idea/vcs.xml b/.idea/.idea.hyper-racer/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.hyper-racer/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/Prefabs/Car.prefab b/Assets/Prefabs/Car.prefab
index 152a770..74cedad 100644
--- a/Assets/Prefabs/Car.prefab
+++ b/Assets/Prefabs/Car.prefab
@@ -9,9 +9,12 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 5008924908329562417}
+ - component: {fileID: 6725779848200828261}
+ - component: {fileID: 3413363630203867387}
+ - component: {fileID: 5109171103557533979}
m_Layer: 0
m_Name: Car
- m_TagString: Untagged
+ m_TagString: Player
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@@ -32,6 +35,66 @@ Transform:
- {fileID: 1784336456945261021}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &6725779848200828261
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 760539630995037048}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b895886c69b2a2f46becc4c401a46d41, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!65 &3413363630203867387
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 760539630995037048}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 0.5, y: 0.5, z: 1}
+ m_Center: {x: 0, y: 0.3, z: 0}
+--- !u!54 &5109171103557533979
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 760539630995037048}
+ serializedVersion: 4
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_CenterOfMass: {x: 0, y: 0, z: 0}
+ m_InertiaTensor: {x: 1, y: 1, z: 1}
+ m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ImplicitCom: 1
+ m_ImplicitTensor: 1
+ m_UseGravity: 1
+ m_IsKinematic: 1
+ m_Interpolate: 0
+ m_Constraints: 0
+ m_CollisionDetection: 0
--- !u!1 &1020141606158369988
GameObject:
m_ObjectHideFlags: 0
@@ -43,7 +106,6 @@ GameObject:
- component: {fileID: 1784336456945261021}
- component: {fileID: 634751819130617363}
- component: {fileID: 1942844400824365698}
- - component: {fileID: 3240914084039788826}
m_Layer: 0
m_Name: Car Model
m_TagString: Untagged
@@ -116,24 +178,3 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!65 &3240914084039788826
-BoxCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1020141606158369988}
- m_Material: {fileID: 0}
- m_IncludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_ExcludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_LayerOverridePriority: 0
- m_IsTrigger: 0
- m_ProvidesContacts: 0
- m_Enabled: 1
- serializedVersion: 3
- m_Size: {x: 1, y: 1, z: 1}
- m_Center: {x: 0, y: 0, z: 0}
diff --git a/Assets/Prefabs/Road.prefab b/Assets/Prefabs/Road.prefab
index deeca1d..ad3edc8 100644
--- a/Assets/Prefabs/Road.prefab
+++ b/Assets/Prefabs/Road.prefab
@@ -11,7 +11,6 @@ GameObject:
- component: {fileID: 2797165861471716645}
- component: {fileID: 6601045137243288556}
- component: {fileID: 4428132594534793092}
- - component: {fileID: 3239040711238787068}
m_Layer: 0
m_Name: Left Wall
m_TagString: Untagged
@@ -84,27 +83,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!65 &3239040711238787068
-BoxCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2145145660633328863}
- m_Material: {fileID: 0}
- m_IncludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_ExcludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_LayerOverridePriority: 0
- m_IsTrigger: 0
- m_ProvidesContacts: 0
- m_Enabled: 1
- serializedVersion: 3
- m_Size: {x: 1, y: 1, z: 1}
- m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &4369078642710373103
GameObject:
m_ObjectHideFlags: 0
@@ -116,7 +94,6 @@ GameObject:
- component: {fileID: 4118850787427677521}
- component: {fileID: 6870227808342940373}
- component: {fileID: 6617408307785989021}
- - component: {fileID: 9215493061109789446}
m_Layer: 0
m_Name: Right Wall
m_TagString: Untagged
@@ -189,27 +166,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!65 &9215493061109789446
-BoxCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4369078642710373103}
- m_Material: {fileID: 0}
- m_IncludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_ExcludeLayers:
- serializedVersion: 2
- m_Bits: 0
- m_LayerOverridePriority: 0
- m_IsTrigger: 0
- m_ProvidesContacts: 0
- m_Enabled: 1
- serializedVersion: 3
- m_Size: {x: 1, y: 1, z: 1}
- m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &5727221990906001058
GameObject:
m_ObjectHideFlags: 0
@@ -219,6 +175,8 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 4178132661795734011}
+ - component: {fileID: 6528481743159623274}
+ - component: {fileID: 6120861585028208109}
m_Layer: 0
m_Name: Road
m_TagString: Untagged
@@ -244,6 +202,39 @@ Transform:
- {fileID: 4118850787427677521}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &6528481743159623274
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5727221990906001058}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3406ee5e48dd5a847857f84a17ea44df, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!65 &6120861585028208109
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5727221990906001058}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 4, y: 0.5, z: 10}
+ m_Center: {x: 0, y: 0.25, z: 0}
--- !u!1 &8959781656392176700
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity
index 6172632..ac00cae 100644
--- a/Assets/Scenes/Game.unity
+++ b/Assets/Scenes/Game.unity
@@ -157,7 +157,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -50}
- m_SizeDelta: {x: 200, y: 50}
+ m_SizeDelta: {x: 300, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &235866482
MonoBehaviour:
@@ -206,8 +206,8 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_fontSize: 36
- m_fontSizeBase: 36
+ m_fontSize: 44
+ m_fontSizeBase: 44
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
@@ -267,7 +267,8 @@ GameObject:
- component: {fileID: 436294420}
- component: {fileID: 436294423}
- component: {fileID: 436294422}
- - component: {fileID: 436294421}
+ - component: {fileID: 436294425}
+ - component: {fileID: 436294424}
m_Layer: 5
m_Name: RightMoveButton
m_TagString: Untagged
@@ -294,50 +295,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &436294421
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 436294419}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_WrapAround: 0
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
- m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
- m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_SelectedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_SelectedTrigger: Selected
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 436294422}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
--- !u!114 &436294422
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -376,6 +333,63 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 436294419}
m_CullTransparentMesh: 1
+--- !u!114 &436294424
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 436294419}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3637266a3325f4148938cc42f691b2bf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &436294425
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 436294419}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Delegates:
+ - eventID: 2
+ callback:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 436294424}
+ m_TargetAssemblyTypeName: MoveButton, Assembly-CSharp
+ m_MethodName: ButtonDown
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+ - eventID: 3
+ callback:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 436294424}
+ m_TargetAssemblyTypeName: MoveButton, Assembly-CSharp
+ m_MethodName: ButtonUp
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
--- !u!1 &722205835
GameObject:
m_ObjectHideFlags: 0
@@ -504,7 +518,7 @@ Camera:
near clip plane: 0.3
far clip plane: 1000
field of view: 60
- orthographic: 1
+ orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
@@ -530,7 +544,7 @@ Transform:
m_GameObject: {fileID: 931054082}
serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
- m_LocalPosition: {x: 0, y: 10, z: 0}
+ m_LocalPosition: {x: 0, y: 8, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -580,6 +594,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0698b7f52bbf6d14882b7c9da029d07d, type: 3}
m_Name:
m_EditorClassIdentifier:
+ carPrefab: {fileID: 760539630995037048, guid: 103fb7e71e4459e4b93a7b0891f9d844, type: 3}
+ roadPrefab: {fileID: 5727221990906001058, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
+ leftMoveButton: {fileID: 2056539410}
+ rightMoveButton: {fileID: 436294424}
--- !u!1 &1382488884
GameObject:
m_ObjectHideFlags: 0
@@ -722,7 +740,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
- m_UiScaleMode: 0
+ m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
@@ -778,63 +796,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
---- !u!1001 &1647335606
-PrefabInstance:
- m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 0}
- m_Modifications:
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalRotation.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalRotation.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalRotation.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 4178132661795734011, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 5727221990906001058, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
- propertyPath: m_Name
- value: Road
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: 25a54d19bf0cf244fa383ef163ec519b, type: 3}
--- !u!1 &2056539405
GameObject:
m_ObjectHideFlags: 0
@@ -846,7 +807,8 @@ GameObject:
- component: {fileID: 2056539406}
- component: {fileID: 2056539409}
- component: {fileID: 2056539408}
- - component: {fileID: 2056539407}
+ - component: {fileID: 2056539411}
+ - component: {fileID: 2056539410}
m_Layer: 5
m_Name: LeftMoveButton
m_TagString: Untagged
@@ -873,50 +835,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &2056539407
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2056539405}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_WrapAround: 0
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
- m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
- m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_SelectedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_SelectedTrigger: Selected
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 2056539408}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
--- !u!114 &2056539408
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -955,6 +873,63 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2056539405}
m_CullTransparentMesh: 1
+--- !u!114 &2056539410
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2056539405}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3637266a3325f4148938cc42f691b2bf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &2056539411
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2056539405}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Delegates:
+ - eventID: 2
+ callback:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2056539410}
+ m_TargetAssemblyTypeName: MoveButton, Assembly-CSharp
+ m_MethodName: ButtonDown
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+ - eventID: 3
+ callback:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2056539410}
+ m_TargetAssemblyTypeName: MoveButton, Assembly-CSharp
+ m_MethodName: ButtonUp
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
@@ -962,6 +937,5 @@ SceneRoots:
- {fileID: 931054085}
- {fileID: 1382488886}
- {fileID: 1017920448}
- - {fileID: 1647335606}
- {fileID: 1448752094}
- {fileID: 722205838}
diff --git a/Assets/Scripts/CarController.cs b/Assets/Scripts/CarController.cs
index 69be22f..92089e6 100644
--- a/Assets/Scripts/CarController.cs
+++ b/Assets/Scripts/CarController.cs
@@ -4,15 +4,8 @@ using UnityEngine;
public class CarController : MonoBehaviour
{
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
+ public void Move(float direction)
+ {
+ transform.Translate(Vector3.right * (direction * Time.deltaTime));
+ }
}
diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs
index 1c6702c..25269a5 100644
--- a/Assets/Scripts/GameManager.cs
+++ b/Assets/Scripts/GameManager.cs
@@ -1,18 +1,118 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+using UnityEngine.Serialization;
public class GameManager : MonoBehaviour
{
- // Start is called before the first frame update
- void Start()
+ // 프리팹
+ [Header("Prefabs")]
+ [SerializeField] private GameObject carPrefab;
+ [SerializeField] private GameObject roadPrefab;
+
+ // UI 관련 코드
+ [SerializeField] private MoveButton leftMoveButton;
+ [SerializeField] private MoveButton rightMoveButton;
+
+ // 도로 오브젝트 풀
+ private Queue _roadPool = new Queue();
+ private const int RoadPoolSize = 3;
+
+ // 도로 이동
+ private List _activeRoads = new List();
+
+ // 싱글톤
+ private static GameManager _instance;
+ public static GameManager Instance
{
-
+ get
+ {
+ if(_instance == null)
+ {
+ _instance = FindObjectOfType();
+ }
+ return _instance;
+ }
}
- // Update is called once per frame
- void Update()
+ private void Awake()
{
-
+ if (_instance != null && _instance != this)
+ {
+ Destroy(this.gameObject);
+ }
+ else
+ {
+ _instance = this;
+ }
}
+
+ private void Start()
+ {
+ // Road 오브젝트 풀 초기화
+ InitializeRoadPool();
+
+ StartGame();
+ }
+
+ private void Update()
+ {
+ // 활성화된 도로를 아래로 서서히 이동
+ foreach (var activeRoad in _activeRoads)
+ {
+ activeRoad.transform.Translate(Vector3.back * Time.deltaTime);
+ }
+ }
+
+ private void StartGame()
+ {
+ // 도로 생성
+ SpawnRoad(Vector3.zero);
+
+ // 자동차 생성
+ var carController = Instantiate(carPrefab, new Vector3(0, 0, -3f), Quaternion.identity)
+ .GetComponent();
+
+ // left, right move button에 자동차 컨트롤 기능 적용
+ leftMoveButton.OnMoveButtonDown += () => carController.Move(-1f);
+ rightMoveButton.OnMoveButtonDown += () => carController.Move(1f);
+ }
+
+ // 도로 생성 및 관리
+ #region 도로 생성 및 관리
+
+ ///
+ /// 도로 오브젝트 풀 초기화
+ ///
+ private void InitializeRoadPool()
+ {
+ for (int i = 0; i < RoadPoolSize; i++)
+ {
+ GameObject road = Instantiate(roadPrefab);
+ road.SetActive(false);
+ _roadPool.Enqueue(road);
+ }
+ }
+ ///
+ /// 도로 오브젝트 풀에서 불러와 배치하는 함수
+ ///
+ public void SpawnRoad(Vector3 position)
+ {
+ if (_roadPool.Count > 0)
+ {
+ GameObject road = _roadPool.Dequeue();
+ road.transform.position = position;
+ road.SetActive(true);
+
+ // 활성화 된 길을 움직이기 위해 List에 저장
+ _activeRoads.Add(road);
+ }
+ else
+ {
+ GameObject road = Instantiate(roadPrefab, position, Quaternion.identity);
+ _activeRoads.Add(road);
+ }
+ }
+
+ #endregion
}
diff --git a/Assets/Scripts/MoveButton.cs b/Assets/Scripts/MoveButton.cs
new file mode 100644
index 0000000..48ac345
--- /dev/null
+++ b/Assets/Scripts/MoveButton.cs
@@ -0,0 +1,30 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class MoveButton : MonoBehaviour
+{
+ public delegate void MoveButtonDelegate();
+ public event MoveButtonDelegate OnMoveButtonDown;
+
+ private bool _isDown;
+
+ private void Update()
+ {
+ if (_isDown)
+ {
+ // do something...
+ OnMoveButtonDown.Invoke();
+ }
+ }
+
+ public void ButtonDown()
+ {
+ _isDown = true;
+ }
+
+ public void ButtonUp()
+ {
+ _isDown = false;
+ }
+}
diff --git a/Assets/Scripts/MoveButton.cs.meta b/Assets/Scripts/MoveButton.cs.meta
new file mode 100644
index 0000000..9a56082
--- /dev/null
+++ b/Assets/Scripts/MoveButton.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3637266a3325f4148938cc42f691b2bf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/RoadController.cs b/Assets/Scripts/RoadController.cs
index 14fe3f3..b1d1c2d 100644
--- a/Assets/Scripts/RoadController.cs
+++ b/Assets/Scripts/RoadController.cs
@@ -4,15 +4,29 @@ using UnityEngine;
public class RoadController : MonoBehaviour
{
- // Start is called before the first frame update
- void Start()
+ ///
+ /// 플레이어 차량이 도로에 진입하면 다음 도로를 생성
+ ///
+ ///
+ private void OnTriggerEnter(Collider other)
{
-
+ Debug.Log("Enter?");
+ if (other.CompareTag("Player"))
+ {
+ GameManager.Instance.SpawnRoad(transform.position + new Vector3(0,0,10));
+ }
}
- // Update is called once per frame
- void Update()
+ ///
+ /// 플레이어 차량이 도로를 벗어나면 해당 도로를 제거
+ ///
+ ///
+ private void OnTriggerExit(Collider other)
{
-
+ Debug.Log("Exit?");
+ if (other.CompareTag("Player"))
+ {
+
+ }
}
}
diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset
index 0147887..1f214b3 100644
--- a/ProjectSettings/EditorBuildSettings.asset
+++ b/ProjectSettings/EditorBuildSettings.asset
@@ -4,5 +4,8 @@
EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
- m_Scenes: []
+ m_Scenes:
+ - enabled: 1
+ path: Assets/Scenes/Game.unity
+ guid: 72e80415c03009f4d8c429120ef81f97
m_configObjects: {}
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index 57e7e40..9f2adbd 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -161,7 +161,8 @@ PlayerSettings:
resetResolutionOnWindowResize: 0
androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1
- applicationIdentifier: {}
+ applicationIdentifier:
+ Android: com.DefaultCompany.hyperracer
buildNumber:
Standalone: 0
VisionOS: 0
@@ -284,7 +285,99 @@ PlayerSettings:
AndroidValidateAppBundleSize: 1
AndroidAppBundleSizeToValidate: 150
m_BuildTargetIcons: []
- m_BuildTargetPlatformIcons: []
+ m_BuildTargetPlatformIcons:
+ - m_BuildTarget: Android
+ m_Icons:
+ - m_Textures: []
+ m_Width: 432
+ m_Height: 432
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 324
+ m_Height: 324
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 216
+ m_Height: 216
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 162
+ m_Height: 162
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 108
+ m_Height: 108
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 81
+ m_Height: 81
+ m_Kind: 2
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 192
+ m_Height: 192
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 144
+ m_Height: 144
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 96
+ m_Height: 96
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 72
+ m_Height: 72
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 48
+ m_Height: 48
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 36
+ m_Height: 36
+ m_Kind: 1
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 192
+ m_Height: 192
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 144
+ m_Height: 144
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 96
+ m_Height: 96
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 72
+ m_Height: 72
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 48
+ m_Height: 48
+ m_Kind: 0
+ m_SubKind:
+ - m_Textures: []
+ m_Width: 36
+ m_Height: 36
+ m_Kind: 0
+ m_SubKind:
m_BuildTargetBatching:
- m_BuildTarget: Standalone
m_StaticBatching: 1
@@ -679,7 +772,7 @@ PlayerSettings:
m_RenderingPath: 1
m_MobileRenderingPath: 1
metroPackageName: hyper-racer
- metroPackageVersion:
+ metroPackageVersion: 1.0.0.0
metroCertificatePath:
metroCertificatePassword:
metroCertificateSubject:
@@ -687,7 +780,7 @@ PlayerSettings:
metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: hyper-racer
wsaImages: {}
- metroTileShortName:
+ metroTileShortName: hyper-racer
metroTileShowName: 0
metroMediumTileShowName: 0
metroLargeTileShowName: 0