diff --git a/Assets/Prefabs/Spawnable.prefab b/Assets/Prefabs/Spawnable.prefab new file mode 100644 index 0000000..cad5f79 --- /dev/null +++ b/Assets/Prefabs/Spawnable.prefab @@ -0,0 +1,116 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7428655103634826682 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9132922436054103112} + - component: {fileID: 7093025589658215155} + - component: {fileID: 8477102196961729536} + - component: {fileID: 5695141572838855934} + - component: {fileID: 2377728217170679093} + m_Layer: 0 + m_Name: Spawnable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9132922436054103112 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7428655103634826682} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 27.818008, y: 12.697487, z: 0.0000705719} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7093025589658215155 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7428655103634826682} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8477102196961729536 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7428655103634826682} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &5695141572838855934 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7428655103634826682} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &2377728217170679093 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7428655103634826682} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 diff --git a/Assets/Prefabs/Spawnable.prefab.meta b/Assets/Prefabs/Spawnable.prefab.meta new file mode 100644 index 0000000..6b56a5c --- /dev/null +++ b/Assets/Prefabs/Spawnable.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 38de2a1b7c06c0d439b1411d8200ddbe +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Spawner.prefab b/Assets/Prefabs/Spawner.prefab new file mode 100644 index 0000000..fa2e651 --- /dev/null +++ b/Assets/Prefabs/Spawner.prefab @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1101515500710373964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1101515500710373962} + - component: {fileID: 1101515500710373963} + m_Layer: 0 + m_Name: Spawner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1101515500710373962 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101515500710373964} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -19.09, y: 26.47, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1101515500710373963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101515500710373964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2383af188ea82654ca888af5ecda1e2f, type: 3} + m_Name: + m_EditorClassIdentifier: + objPrefab: {fileID: 7428655103634826682, guid: 38de2a1b7c06c0d439b1411d8200ddbe, + type: 3} + spawnRate: 1 + amount: 5 + pool: [] diff --git a/Assets/Prefabs/Spawner.prefab.meta b/Assets/Prefabs/Spawner.prefab.meta new file mode 100644 index 0000000..d4f1131 --- /dev/null +++ b/Assets/Prefabs/Spawner.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a0861cc8cc628744c9c383cf3ec385aa +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Obstacles.unity b/Assets/Scenes/Obstacles.unity index 8921716..6075800 100644 --- a/Assets/Scenes/Obstacles.unity +++ b/Assets/Scenes/Obstacles.unity @@ -217,7 +217,7 @@ RectTransform: m_Children: - {fileID: 1301531513} m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -826,7 +826,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &663828000 GameObject: @@ -1007,7 +1007,7 @@ Transform: - {fileID: 663828001} - {fileID: 188521136} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &840320351 GameObject: @@ -1296,7 +1296,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} --- !u!114 &921826481 MonoBehaviour: @@ -1759,7 +1759,7 @@ PrefabInstance: - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3} propertyPath: m_RootOrder - value: 1 + value: 2 objectReference: {fileID: 0} - target: {fileID: 1772573266731274175, guid: 4dbf735f9da7b9f43b69f1577e4e5763, type: 3} @@ -1819,6 +1819,75 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1341139406} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1462496929 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalPosition.x + value: 3.62 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalPosition.y + value: 18.88 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373962, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1101515500710373964, guid: a0861cc8cc628744c9c383cf3ec385aa, + type: 3} + propertyPath: m_Name + value: Spawner + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a0861cc8cc628744c9c383cf3ec385aa, type: 3} --- !u!1 &1500657984 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8185732858306452726, guid: 3aef9205067d34c46bee46559d8e90dd, @@ -2649,7 +2718,7 @@ Transform: m_Children: - {fileID: 1866383021} m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 3.962, y: 0, z: 0} --- !u!1001 &507150369097360936 PrefabInstance: diff --git a/Assets/Scripts/ObjSpawner.cs b/Assets/Scripts/ObjSpawner.cs new file mode 100644 index 0000000..12f4ba6 --- /dev/null +++ b/Assets/Scripts/ObjSpawner.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ObjSpawner : MonoBehaviour +{ + [SerializeField] + private GameObject objPrefab; + [SerializeField] + private float spawnRate; + [SerializeField] + private int amount; + [SerializeField] + private List pool; + private int index = 0; + private int firstIndex = 0; + // Start is called before the first frame update + void Start() + { + for (int i = 0; i < amount; i++) + { + GameObject obj = Instantiate(objPrefab, this.transform); + obj.SetActive(false); + pool.Add(obj); + } + //TODO add trigger start + InvokeRepeating("Spawn",0, spawnRate); + } + private void Spawn(){ + if(index < amount){ + pool[index].transform.position = transform.position; + pool[index].transform.rotation = transform.rotation; + Rigidbody rb = pool[index].GetComponent(); + if(rb != null){ + rb.velocity = Vector3.zero; + rb.angularVelocity = Vector3.zero; + } + + pool[index].SetActive(true); + index++; + }else{ + pool[firstIndex].SetActive(false); + index = firstIndex; + firstIndex = firstIndex+1%pool.Count-1; + Spawn(); + } + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/ObjSpawner.cs.meta b/Assets/Scripts/ObjSpawner.cs.meta new file mode 100644 index 0000000..7c2103a --- /dev/null +++ b/Assets/Scripts/ObjSpawner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2383af188ea82654ca888af5ecda1e2f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: