diff options
-rw-r--r-- | Assets/Prefabs.meta | 8 | ||||
-rw-r--r-- | Assets/Prefabs/Columns.prefab | 314 | ||||
-rw-r--r-- | Assets/Prefabs/Columns.prefab.meta | 8 | ||||
-rw-r--r-- | Assets/Scripts/Column.cs | 13 | ||||
-rw-r--r-- | Assets/Scripts/Column.cs.meta | 11 | ||||
-rw-r--r-- | Assets/Scripts/ColumnPool.cs | 47 | ||||
-rw-r--r-- | Assets/Scripts/ColumnPool.cs.meta | 11 | ||||
-rw-r--r-- | Assets/Scripts/GameControl.cs | 14 | ||||
-rw-r--r-- | Assets/Scripts/RepeatingBackground.cs (renamed from Assets/RepeatingBackground.cs) | 0 | ||||
-rw-r--r-- | Assets/Scripts/RepeatingBackground.cs.meta (renamed from Assets/RepeatingBackground.cs.meta) | 0 |
10 files changed, 426 insertions, 0 deletions
diff --git a/Assets/Prefabs.meta b/Assets/Prefabs.meta new file mode 100644 index 0000000..d1841a4 --- /dev/null +++ b/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d5c621106c6b2449a0f161b34907513 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Columns.prefab b/Assets/Prefabs/Columns.prefab new file mode 100644 index 0000000..35d6de8 --- /dev/null +++ b/Assets/Prefabs/Columns.prefab @@ -0,0 +1,314 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1529020711380460} + m_IsPrefabParent: 1 +--- !u!1 &1114962039861856 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4024445432218166} + - component: {fileID: 212972729437490470} + - component: {fileID: 61674151720270818} + m_Layer: 0 + m_Name: ColumnSprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1529020711380460 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4647285703146720} + - component: {fileID: 61159391983824676} + - component: {fileID: 50092027346389414} + - component: {fileID: 114426965130018998} + - component: {fileID: 114489249268378274} + m_Layer: 0 + m_Name: Columns + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1585685942540690 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4629760513912680} + - component: {fileID: 212617900475732074} + - component: {fileID: 61268751467386004} + m_Layer: 0 + m_Name: ColumnSprite (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4024445432218166 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1114962039861856} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4647285703146720} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4629760513912680 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1585685942540690} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 8, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4647285703146720} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!4 &4647285703146720 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1529020711380460} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4024445432218166} + - {fileID: 4629760513912680} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!50 &50092027346389414 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1529020711380460} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!61 &61159391983824676 +BoxCollider2D: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1529020711380460} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 1.12, y: 1.92} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 2.18} + m_EdgeRadius: 0 +--- !u!61 &61268751467386004 +BoxCollider2D: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1585685942540690} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 2.56, y: 10.24} + newSize: {x: 2.56, y: 10.24} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.82, y: 10.24} + m_EdgeRadius: 0 +--- !u!61 &61674151720270818 +BoxCollider2D: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1114962039861856} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 2.56, y: 10.24} + newSize: {x: 2.56, y: 10.24} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.82, y: 10.24} + m_EdgeRadius: 0 +--- !u!114 &114426965130018998 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1529020711380460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 507311850444501439bf73c415a849c4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114489249268378274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1529020711380460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5912db75c1bb467498e47dee365735ab, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!212 &212617900475732074 +SpriteRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1585685942540690} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_Materials: + - {fileID: 10754, 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_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 1448942725 + m_SortingLayer: 2 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 03847b6726093434c902345de00eb08b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.56, y: 10.24} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 +--- !u!212 &212972729437490470 +SpriteRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1114962039861856} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_Materials: + - {fileID: 10754, 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_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 1448942725 + m_SortingLayer: 2 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 03847b6726093434c902345de00eb08b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.56, y: 10.24} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 diff --git a/Assets/Prefabs/Columns.prefab.meta b/Assets/Prefabs/Columns.prefab.meta new file mode 100644 index 0000000..baaeb9b --- /dev/null +++ b/Assets/Prefabs/Columns.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d443215fd37f2b04cbc5fbd3e28c9c08 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Column.cs b/Assets/Scripts/Column.cs new file mode 100644 index 0000000..2468c0b --- /dev/null +++ b/Assets/Scripts/Column.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Column : MonoBehaviour { + private void OnTriggerEnter2D(Collider2D other) + { + if (other.GetComponent<Bird>() != null) + { + GameControl.instance.BirdScored(); + } + } +} diff --git a/Assets/Scripts/Column.cs.meta b/Assets/Scripts/Column.cs.meta new file mode 100644 index 0000000..6d586c8 --- /dev/null +++ b/Assets/Scripts/Column.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 507311850444501439bf73c415a849c4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ColumnPool.cs b/Assets/Scripts/ColumnPool.cs new file mode 100644 index 0000000..34d10b8 --- /dev/null +++ b/Assets/Scripts/ColumnPool.cs @@ -0,0 +1,47 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ColumnPool : MonoBehaviour { + + public int columnPoolSize = 5; + public GameObject columnPrefab; + public float spawnRate = 4f; + public float columnMin = -1f; + public float columnMax = 3.5f; + + private GameObject[] columns; + private Vector2 objectPoolPosition = new Vector2(-15f, 25f); + private float timeSinceLastSpawned; + private float spawnXPosition = 10f; + private int currentColumn = 0; + + + // Use this for initialization + void Start () + { + columns = new GameObject[columnPoolSize]; + for (int i = 0; i < columnPoolSize; i++) + { + columns[i] = (GameObject)Instantiate(columnPrefab, objectPoolPosition, Quaternion.identity); + } + } + + // Update is called once per frame + void Update () + { + timeSinceLastSpawned += Time.deltaTime; + + if (GameControl.instance.gameOver == false && timeSinceLastSpawned >= spawnRate) + { + timeSinceLastSpawned = 0; + float spawnYPosition = Random.Range(columnMin, columnMax); + columns[currentColumn].transform.position = new Vector2(spawnXPosition, spawnYPosition); + currentColumn++; + if (currentColumn >= columnPoolSize) + { + currentColumn = 0; + } + } + } +} diff --git a/Assets/Scripts/ColumnPool.cs.meta b/Assets/Scripts/ColumnPool.cs.meta new file mode 100644 index 0000000..9443cf7 --- /dev/null +++ b/Assets/Scripts/ColumnPool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 92bc843fdec1c82468ce24704bbbb884 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameControl.cs b/Assets/Scripts/GameControl.cs index afd79b7..77f58d7 100644 --- a/Assets/Scripts/GameControl.cs +++ b/Assets/Scripts/GameControl.cs @@ -2,14 +2,18 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; +using UnityEngine.UI; public class GameControl : MonoBehaviour { public static GameControl instance; public GameObject gameOverText; + public Text scoreText; public bool gameOver = false; public float scrollSpeed = -1.5f; + private int score = 0; + // Use this for initialization void Awake () { @@ -31,6 +35,16 @@ public class GameControl : MonoBehaviour { } } + public void BirdScored() + { + if (gameOver) + { + return; + } + score++; + scoreText.text = "Score: " + score.ToString(); + } + public void BirdDied() { gameOverText.SetActive(true); diff --git a/Assets/RepeatingBackground.cs b/Assets/Scripts/RepeatingBackground.cs index 4722ec2..4722ec2 100644 --- a/Assets/RepeatingBackground.cs +++ b/Assets/Scripts/RepeatingBackground.cs diff --git a/Assets/RepeatingBackground.cs.meta b/Assets/Scripts/RepeatingBackground.cs.meta index 4c10802..4c10802 100644 --- a/Assets/RepeatingBackground.cs.meta +++ b/Assets/Scripts/RepeatingBackground.cs.meta |