diff --git a/2D Beginner/Assets/Art/Sprites/VFX/Materials.meta b/2D Beginner/Assets/Art/Sprites/VFX/Materials.meta new file mode 100644 index 0000000000000000000000000000000000000000..656f28aae441eb7d09ea3313682023d4ea91e708 --- /dev/null +++ b/2D Beginner/Assets/Art/Sprites/VFX/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 667d53df4e28fe94b999e5e29a452540 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat new file mode 100644 index 0000000000000000000000000000000000000000..0f84a83e1cb5dbd1463bbc06d707a0a8d730837c --- /dev/null +++ b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat @@ -0,0 +1,37 @@ +%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: CollectibleHealth + 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} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 00e89d1057578a342b22583144a5ee03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - PixelSnap: 0 + - _EnableExternalAlpha: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat.meta b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..a03e107bb18d9b948271f7eb8c90b3b6e0fb7e1e --- /dev/null +++ b/2D Beginner/Assets/Art/Sprites/VFX/Materials/CollectibleHealth.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d2bd73899b429441a2baf276424a797 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab new file mode 100644 index 0000000000000000000000000000000000000000..023d34349e891d7664bb4c6c7eb7daaeec1e805d --- /dev/null +++ b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab @@ -0,0 +1,124 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6033027262453235429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3830083915671589380} + - component: {fileID: 5394940580506829047} + - component: {fileID: 7458017502642382889} + - component: {fileID: 2297645790402054491} + m_Layer: 0 + m_Name: CollectibleHealth + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3830083915671589380 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033027262453235429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -2.8, z: 0} + m_LocalScale: {x: 0.25515625, y: 0.27759373, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &5394940580506829047 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033027262453235429} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + 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_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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 00e89d1057578a342b22583144a5ee03, 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: 2.56} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!61 &7458017502642382889 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033027262453235429} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: -0.11733401, y: -0.10785043} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 2.56, y: 2.56} + newSize: {x: 2.56, y: 2.56} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 2.325332, y: 2.0423186} + m_EdgeRadius: 0 +--- !u!114 &2297645790402054491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033027262453235429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 611a43685f6ebf842bf42c4f01eb3d96, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab.meta b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..8d27f15e63a47e2786925d6c5f2b1343b1820861 --- /dev/null +++ b/2D Beginner/Assets/Prefabs/CollectibleHealth.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0dcad5d1b04f356479e4ed32c44a500b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D Beginner/Assets/Scenes/MainScene.unity b/2D Beginner/Assets/Scenes/MainScene.unity index b1203533db34839ab6414b959633471c9c4981f5..817625d585dde4446ef8339d3e63f2a9ed000386 100644 --- a/2D Beginner/Assets/Scenes/MainScene.unity +++ b/2D Beginner/Assets/Scenes/MainScene.unity @@ -1630,6 +1630,8 @@ GameObject: - component: {fileID: 1764730405} - component: {fileID: 1764730404} - component: {fileID: 1764730406} + - component: {fileID: 1764730408} + - component: {fileID: 1764730407} m_Layer: 0 m_Name: Tilemap m_TagString: Untagged @@ -1670,7 +1672,7 @@ TilemapRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 6d2bd73899b429441a2baf276424a797, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -4525,10 +4527,103 @@ TilemapCollider2D: m_Material: {fileID: 0} m_IsTrigger: 0 m_UsedByEffector: 0 - m_UsedByComposite: 0 + m_UsedByComposite: 1 m_Offset: {x: 0, y: 0} m_MaximumTileChangeCount: 1000 m_ExtrusionFactor: 0.00001 +--- !u!66 &1764730407 +CompositeCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1764730402} + 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_GeometryType: 0 + m_GenerationType: 0 + m_EdgeRadius: 0 + m_ColliderPaths: + - m_Collider: {fileID: 1764730406} + m_ColliderPaths: + - - X: 60000000 + Y: -10000000 + - X: 70000000 + Y: -10000000 + - X: 70000000 + Y: 0 + - X: 80000000 + Y: 0 + - X: 80000000 + Y: 40000000 + - X: 20000000 + Y: 40000000 + - X: 20000000 + Y: 0 + - X: 30000000 + Y: 0 + - X: 30000000 + Y: -20000000 + - X: 60000000 + Y: -20000000 + - - X: -30000000 + Y: 30000000 + - X: -90000000 + Y: 30000000 + - X: -90000000 + Y: 0 + - X: -60000000 + Y: 0 + - X: -60000000 + Y: -30000000 + - X: -30000000 + Y: -30000000 + m_CompositePaths: + m_Paths: + - - {x: 5.999971, y: -2} + - {x: 6.0000296, y: -1} + - {x: 7, y: -0.99997073} + - {x: 7.0000296, y: 0} + - {x: 8, y: 0.000029300001} + - {x: 7.9999704, y: 4} + - {x: 2, y: 3.999971} + - {x: 2.0000293, y: 0} + - {x: 3, y: -0.0000294} + - {x: 3.0000293, y: -2} + - - {x: -3.0000293, y: -3} + - {x: -3.0000293, y: 3} + - {x: -9, y: 2.999971} + - {x: -8.99997, y: 0} + - {x: -6, y: -0.0000294} + - {x: -5.999971, y: -3} + m_VertexDistance: 0.0005 + m_OffsetDistance: 0.00005 +--- !u!50 &1764730408 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1764730402} + m_BodyType: 2 + 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!1001 &1866705356 PrefabInstance: m_ObjectHideFlags: 0 @@ -4869,7 +4964,8 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 2110435280929417719, guid: 8304b7a64eaaf8441abb739ad553a952, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 8304b7a64eaaf8441abb739ad553a952, type: 3} --- !u!1001 &4236602152682955334 PrefabInstance: @@ -4928,6 +5024,63 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 83ce328b51fb6d4429f0a9869c7e064a, type: 3} +--- !u!1001 &5194603723943032834 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_RootOrder + value: 39 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalPosition.y + value: -2.8 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3830083915671589380, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6033027262453235429, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} + propertyPath: m_Name + value: CollectibleHealth + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0dcad5d1b04f356479e4ed32c44a500b, type: 3} --- !u!1001 &5992971037037920545 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/2D Beginner/Assets/Scripts/HealthCollectible.cs b/2D Beginner/Assets/Scripts/HealthCollectible.cs new file mode 100644 index 0000000000000000000000000000000000000000..798f8bb4c28924c59454902616192915145c2daf --- /dev/null +++ b/2D Beginner/Assets/Scripts/HealthCollectible.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class HealthCollectible : MonoBehaviour +{ + void OnTriggerEnter2D(Collider2D other) + { + RubyController controller = other.GetComponent<RubyController>(); + + if (controller != null) + { + if (controller.health < controller.maxHealth) + { + controller.ChangeHealth(1); + Destroy(gameObject); // This is the GameObject that the script is attached to (the collectible health pack) + } + + } + } +} diff --git a/2D Beginner/Assets/Scripts/HealthCollectible.cs.meta b/2D Beginner/Assets/Scripts/HealthCollectible.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..080d1f7b4a1c367e0c707fa777b83e227edb7982 --- /dev/null +++ b/2D Beginner/Assets/Scripts/HealthCollectible.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 611a43685f6ebf842bf42c4f01eb3d96 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/2D Beginner/Assets/Scripts/RubyController.cs b/2D Beginner/Assets/Scripts/RubyController.cs index f02bb7b4f0a784ad43620e706a74cc6320cd2c1c..fd977af3bb0abefaef813ae32a92c1e313e67d06 100644 --- a/2D Beginner/Assets/Scripts/RubyController.cs +++ b/2D Beginner/Assets/Scripts/RubyController.cs @@ -4,6 +4,11 @@ using UnityEngine; public class RubyController : MonoBehaviour { + public float speed; + public int maxHealth = 5; + public int health { get { return currentHealth; } } + int currentHealth; + Rigidbody2D rigidbody2D; float horizontal; float vertical; @@ -12,6 +17,9 @@ public class RubyController : MonoBehaviour void Start() { rigidbody2D = GetComponent<Rigidbody2D>(); + currentHealth = maxHealth; + currentHealth = 1; + speed = 3.0f; } // Update is called once per frame @@ -24,8 +32,15 @@ public class RubyController : MonoBehaviour private void FixedUpdate() { Vector2 position = rigidbody2D.position; - position.x = position.x + 3.0f * horizontal * Time.deltaTime; // deltaTime is a variable that Unity fills with the time it takes for a frame to be rendered - position.y = position.y + 3.0f * vertical * Time.deltaTime; + position.x = position.x + speed * horizontal * Time.deltaTime; // deltaTime is a variable that Unity fills with the time it takes for a frame to be rendered + position.y = position.y + speed * vertical * Time.deltaTime; rigidbody2D.MovePosition(position); } + + public void ChangeHealth(int amount) + { + // Clamping ensures that the first parameter (here currentHealth + amount) never goes lower than the second parameter (here 0) and never goes above the third parameter (maxHealth). + currentHealth = Mathf.Clamp(currentHealth + amount, 0, maxHealth); + Debug.Log(currentHealth + "/" + maxHealth); + } }