From 2a9006b10c961d437ab2fa190f1774b04fedd1be Mon Sep 17 00:00:00 2001 From: DesignJiggles Date: Sat, 31 Jan 2026 15:04:21 -0600 Subject: [PATCH] Object spawner for tricks and treats --- Assets/Prefabs/GroundPlatform 1.prefab | 140 ++++++++++++++ Assets/Prefabs/GroundPlatform 1.prefab.meta | 7 + Assets/Prefabs/GroundPlatform.prefab | 67 ++++++- Assets/Scenes/Experiment.unity | 198 +++++++++++++++++++- Assets/Scripts/Spawner.cs | 28 +++ Assets/Scripts/Spawner.cs.meta | 2 + ProjectSettings/TagManager.asset | 3 + 7 files changed, 432 insertions(+), 13 deletions(-) create mode 100644 Assets/Prefabs/GroundPlatform 1.prefab create mode 100644 Assets/Prefabs/GroundPlatform 1.prefab.meta create mode 100644 Assets/Scripts/Spawner.cs create mode 100644 Assets/Scripts/Spawner.cs.meta diff --git a/Assets/Prefabs/GroundPlatform 1.prefab b/Assets/Prefabs/GroundPlatform 1.prefab new file mode 100644 index 0000000..e16f32d --- /dev/null +++ b/Assets/Prefabs/GroundPlatform 1.prefab @@ -0,0 +1,140 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4616042191970509174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 785503257073517251} + - component: {fileID: 2704103218734789630} + - component: {fileID: 5939159052026241568} + m_Layer: 0 + m_Name: GroundPlatform 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &785503257073517251 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4616042191970509174} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2704103218734789630 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4616042191970509174} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_Sprite: {fileID: -7311052988919531195, guid: 0e5595a51158fc248968f3aa60ed733a, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.64, y: 0.64} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 +--- !u!61 &5939159052026241568 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4616042191970509174} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 1, y: 0} + oldSize: {x: 0.64, y: 0.64} + newSize: {x: 0.64, y: 0.64} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 diff --git a/Assets/Prefabs/GroundPlatform 1.prefab.meta b/Assets/Prefabs/GroundPlatform 1.prefab.meta new file mode 100644 index 0000000..faef794 --- /dev/null +++ b/Assets/Prefabs/GroundPlatform 1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1017acc5b88e5264fb71ab5860cd268f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/GroundPlatform.prefab b/Assets/Prefabs/GroundPlatform.prefab index d3b973e..2565902 100644 --- a/Assets/Prefabs/GroundPlatform.prefab +++ b/Assets/Prefabs/GroundPlatform.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 785503257073517251} - component: {fileID: 2704103218734789630} - component: {fileID: 5939159052026241568} + - component: {fileID: -4751986922660366543} m_Layer: 0 m_Name: GroundPlatform m_TagString: Untagged @@ -78,16 +79,16 @@ SpriteRenderer: m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 + m_SortingLayerID: 1720116965 + m_SortingLayer: 1 m_SortingOrder: 0 m_MaskInteraction: 0 - m_Sprite: {fileID: 21300000, guid: 1b93ba1bb48e4887a33f6c1037f2a3f2, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: -7311052988919531195, guid: 0e5595a51158fc248968f3aa60ed733a, type: 3} + m_Color: {r: 0.6679245, g: 0, b: 0.6679245, a: 1} m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 - m_Size: {x: 1, y: 1} + m_Size: {x: 0.64, y: 0.64} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 @@ -100,6 +101,7 @@ BoxCollider2D: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4616042191970509174} m_Enabled: 1 + serializedVersion: 3 m_Density: 1 m_Material: {fileID: 0} m_IncludeLayers: @@ -108,10 +110,59 @@ BoxCollider2D: m_ExcludeLayers: serializedVersion: 2 m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 - m_UsedByComposite: 0 m_CompositeOperation: 0 - m_Offset: {x: 0, y: 0} - m_Size: {x: 1, y: 1} + m_CompositeOrder: 0 + m_Offset: {x: -0.32438478, y: 0.3111984} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 1, y: 0} + oldSize: {x: 0.64, y: 0.64} + newSize: {x: 0.64, y: 0.64} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 0.6360559, y: 0.6413306} m_EdgeRadius: 0 +--- !u!50 &-4751986922660366543 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4616042191970509174} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 diff --git a/Assets/Scenes/Experiment.unity b/Assets/Scenes/Experiment.unity index c2995d5..2b3af84 100644 --- a/Assets/Scenes/Experiment.unity +++ b/Assets/Scenes/Experiment.unity @@ -1195,6 +1195,52 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &908853548 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 908853550} + - component: {fileID: 908853549} + m_Layer: 0 + m_Name: Treat Spawner BL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &908853549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 908853548} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 14b0bf07aa1abc44a8ebd00cecacd6f4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Spawner + objectToSpawn: {fileID: 4616042191970509174, guid: 8cb7aafaad454727ae6ab1c0a3b8ead6, type: 3} + spawnInterval: 0.5 +--- !u!4 &908853550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 908853548} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.5, y: -2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1118230342 GameObject: m_ObjectHideFlags: 0 @@ -1357,7 +1403,7 @@ SpriteRenderer: m_LightmapParameters: {fileID: 0} m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: -363895853 - m_SortingLayer: 1 + m_SortingLayer: 2 m_SortingOrder: 0 m_MaskInteraction: 0 m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} @@ -1399,11 +1445,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7878350319992209165, guid: f38aee8caa1440842a40900c66c53167, type: 3} propertyPath: m_LocalScale.x - value: 1.5 + value: 2 objectReference: {fileID: 0} - target: {fileID: 7878350319992209165, guid: f38aee8caa1440842a40900c66c53167, type: 3} propertyPath: m_LocalScale.y - value: 1.5 + value: 2 objectReference: {fileID: 0} - target: {fileID: 7878350319992209165, guid: f38aee8caa1440842a40900c66c53167, type: 3} propertyPath: m_LocalPosition.x @@ -1464,11 +1510,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7878350319992209165, guid: f38aee8caa1440842a40900c66c53167, type: 3} propertyPath: m_LocalScale.x - value: 1.5 + value: 2 objectReference: {fileID: 0} - target: {fileID: 7878350319992209165, guid: f38aee8caa1440842a40900c66c53167, type: 3} propertyPath: m_LocalScale.y - value: 1.5 + value: 2 objectReference: {fileID: 0} - target: {fileID: 7878350319992209165, guid: f38aee8caa1440842a40900c66c53167, type: 3} propertyPath: m_LocalPosition.x @@ -1515,6 +1561,52 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: -8435245712485981826, guid: f38aee8caa1440842a40900c66c53167, type: 3} +--- !u!1 &1466477811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466477813} + - component: {fileID: 1466477812} + m_Layer: 0 + m_Name: Treat Spawner TL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1466477812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466477811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 14b0bf07aa1abc44a8ebd00cecacd6f4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Spawner + objectToSpawn: {fileID: 4616042191970509174, guid: 8cb7aafaad454727ae6ab1c0a3b8ead6, type: 3} + spawnInterval: 0.5 +--- !u!4 &1466477813 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466477811} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.5, y: 1.34, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1518904086 GameObject: m_ObjectHideFlags: 0 @@ -1731,6 +1823,98 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1759124602 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1759124604} + - component: {fileID: 1759124603} + m_Layer: 0 + m_Name: Treat Spawner TR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1759124603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759124602} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 14b0bf07aa1abc44a8ebd00cecacd6f4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Spawner + objectToSpawn: {fileID: 4616042191970509174, guid: 8cb7aafaad454727ae6ab1c0a3b8ead6, type: 3} + spawnInterval: 0.5 +--- !u!4 &1759124604 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759124602} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.5, y: 1.27, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1830238251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1830238253} + - component: {fileID: 1830238252} + m_Layer: 0 + m_Name: Treat Spawner BR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1830238252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830238251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 14b0bf07aa1abc44a8ebd00cecacd6f4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Spawner + objectToSpawn: {fileID: 4616042191970509174, guid: 8cb7aafaad454727ae6ab1c0a3b8ead6, type: 3} + spawnInterval: 0.5 +--- !u!4 &1830238253 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830238251} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.5, y: -2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2057686360 GameObject: m_ObjectHideFlags: 0 @@ -2027,3 +2211,7 @@ SceneRoots: - {fileID: 689117240} - {fileID: 1397916294} - {fileID: 1130768733} + - {fileID: 1830238253} + - {fileID: 908853550} + - {fileID: 1466477813} + - {fileID: 1759124604} diff --git a/Assets/Scripts/Spawner.cs b/Assets/Scripts/Spawner.cs new file mode 100644 index 0000000..710aacc --- /dev/null +++ b/Assets/Scripts/Spawner.cs @@ -0,0 +1,28 @@ +using System.Collections; +using UnityEngine; + +public class Spawner : MonoBehaviour +{ + // Reference to the Prefab to Spawn + [SerializeField] private GameObject objectToSpawn; + // Time interval between spawns + public float spawnInterval = 1f; + + void Start() + { + // Start the spawning process using a Coroutine + StartCoroutine(SpawnRoutine()); + } + + private IEnumerator SpawnRoutine() + { + // Infinite loop to keep spawning (can be modified) + while (true) + { + // Wait for the specified interval + yield return new WaitForSeconds(spawnInterval); + // Spawn the object at the spawner's position and rotation + Instantiate(objectToSpawn, transform.position, Quaternion.identity); + } + } +} diff --git a/Assets/Scripts/Spawner.cs.meta b/Assets/Scripts/Spawner.cs.meta new file mode 100644 index 0000000..7abcf08 --- /dev/null +++ b/Assets/Scripts/Spawner.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 14b0bf07aa1abc44a8ebd00cecacd6f4 \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 7734c82..508e778 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -41,6 +41,9 @@ TagManager: - name: Default uniqueID: 0 locked: 0 + - name: Treat + uniqueID: 1720116965 + locked: 0 - name: Player uniqueID: 3931071443 locked: 0