From ec4077be1bee4bc608b32c48fbf06cb0fb916a48 Mon Sep 17 00:00:00 2001 From: minseok Date: Sun, 3 Nov 2024 11:06:39 +0900 Subject: [PATCH 1/4] feat(HW2) --- Assets/Resources/Scenes.meta | 8 + Assets/Resources/Scenes/HW1.unity | 687 ++++++++++++++++++ Assets/Resources/Scenes/HW1.unity.meta | 7 + Assets/Scripts/Enemy.meta | 8 + Assets/Scripts/{ => Enemy}/EnemyAi.cs | 9 +- Assets/Scripts/{ => Enemy}/EnemyAi.cs.meta | 0 Assets/Scripts/Enemy/EnemyHealth.cs | 27 + Assets/Scripts/Enemy/EnemyHealth.cs.meta | 11 + .../{Spawner.cs => Enemy/EnemySpawner.cs} | 25 +- .../EnemySpawner.cs.meta} | 0 Assets/Scripts/Player.cs | 21 - Assets/Scripts/Player.meta | 8 + Assets/Scripts/Player/Player.cs | 60 ++ Assets/Scripts/{ => Player}/Player.cs.meta | 0 Assets/Scripts/Weapon.meta | 8 + Assets/Scripts/Weapon/Arrow.meta | 8 + Assets/Scripts/Weapon/Arrow/Arrow.cs | 61 ++ Assets/Scripts/Weapon/Arrow/Arrow.cs.meta | 11 + Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs | 82 +++ .../Scripts/Weapon/Arrow/ArrowSpawner.cs.meta | 11 + Assets/Slime Gel.prefab | 83 ++- Assets/arrowPrefab.prefab | 164 +++++ Assets/arrowPrefab.prefab.meta | 7 + 23 files changed, 1263 insertions(+), 43 deletions(-) create mode 100644 Assets/Resources/Scenes.meta create mode 100644 Assets/Resources/Scenes/HW1.unity create mode 100644 Assets/Resources/Scenes/HW1.unity.meta create mode 100644 Assets/Scripts/Enemy.meta rename Assets/Scripts/{ => Enemy}/EnemyAi.cs (70%) rename Assets/Scripts/{ => Enemy}/EnemyAi.cs.meta (100%) create mode 100644 Assets/Scripts/Enemy/EnemyHealth.cs create mode 100644 Assets/Scripts/Enemy/EnemyHealth.cs.meta rename Assets/Scripts/{Spawner.cs => Enemy/EnemySpawner.cs} (60%) rename Assets/Scripts/{Spawner.cs.meta => Enemy/EnemySpawner.cs.meta} (100%) delete mode 100644 Assets/Scripts/Player.cs create mode 100644 Assets/Scripts/Player.meta create mode 100644 Assets/Scripts/Player/Player.cs rename Assets/Scripts/{ => Player}/Player.cs.meta (100%) create mode 100644 Assets/Scripts/Weapon.meta create mode 100644 Assets/Scripts/Weapon/Arrow.meta create mode 100644 Assets/Scripts/Weapon/Arrow/Arrow.cs create mode 100644 Assets/Scripts/Weapon/Arrow/Arrow.cs.meta create mode 100644 Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs create mode 100644 Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs.meta create mode 100644 Assets/arrowPrefab.prefab create mode 100644 Assets/arrowPrefab.prefab.meta diff --git a/Assets/Resources/Scenes.meta b/Assets/Resources/Scenes.meta new file mode 100644 index 00000000..4779b175 --- /dev/null +++ b/Assets/Resources/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41a5c5970192a3c49ba2c602b163d0d3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Scenes/HW1.unity b/Assets/Resources/Scenes/HW1.unity new file mode 100644 index 00000000..193ebae1 --- /dev/null +++ b/Assets/Resources/Scenes/HW1.unity @@ -0,0 +1,687 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &92570375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 92570377} + - component: {fileID: 92570376} + m_Layer: 0 + m_Name: Enemy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &92570376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 92570375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 44829256bc72f3d44b208002b67f728b, type: 3} + m_Name: + m_EditorClassIdentifier: + enemyObject: {fileID: 101294353282796750, guid: 5b353af4c8ffb8d468f5463481b7d745, type: 3} +--- !u!4 &92570377 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 92570375} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.752898, y: -0.3671018, z: 0.16692284} + 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 &98569913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 98569915} + - component: {fileID: 98569914} + m_Layer: 0 + m_Name: AimLine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!120 &98569914 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98569913} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 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: 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_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.9929199 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!4 &98569915 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98569913} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.329463, y: 3.4171515, z: -0.011106351} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1278323729} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &491691375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 491691377} + - component: {fileID: 491691376} + m_Layer: 3 + m_Name: Layer_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &491691376 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 491691375} + 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_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: 86f917da3ee3c69479ab74f43290683f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 40, y: 20} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &491691377 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 491691375} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.32, y: -2.7543426, 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 &587751682 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 587751685} + - component: {fileID: 587751684} + - component: {fileID: 587751683} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &587751683 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 587751682} + m_Enabled: 1 +--- !u!20 &587751684 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 587751682} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &587751685 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 587751682} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + 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 &1000949500 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1000949501} + - component: {fileID: 1000949502} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1000949501 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000949500} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.13, y: 0.08, z: 0.15910597} + m_LocalScale: {x: 2.5379639, y: 2.2512, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1278323729} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!70 &1000949502 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000949500} + m_Enabled: 1 + 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_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_Size: {x: 0.5, y: 1} + m_Direction: 0 +--- !u!1 &1278323727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1278323729} + - component: {fileID: 1278323728} + - component: {fileID: 1278323732} + - component: {fileID: 1278323733} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1278323728 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278323727} + 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_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: 1 + m_Sprite: {fileID: 162385204, guid: fbcbeda1b3b5a71469b5f5621016a590, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 4.3125, y: 2.75} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1278323729 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278323727} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.78, y: -0.07, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 98569915} + - {fileID: 1000949501} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1278323732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278323727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ffdc98dba9cf840519d1456a3b8785bd, type: 3} + m_Name: + m_EditorClassIdentifier: + aimLine: {fileID: 98569915} + arrowPrefab: {fileID: 4303553219462044247, guid: 6c651349be6df404dbe4c43239c232cb, type: 3} + arrowSpeed: 10 + moveSpeed: 10 +--- !u!50 &1278323733 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278323727} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 0 + 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 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 587751685} + - {fileID: 491691377} + - {fileID: 1278323729} + - {fileID: 92570377} diff --git a/Assets/Resources/Scenes/HW1.unity.meta b/Assets/Resources/Scenes/HW1.unity.meta new file mode 100644 index 00000000..61e22abc --- /dev/null +++ b/Assets/Resources/Scenes/HW1.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3f803523275517d4abbed21ad662cdca +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy.meta b/Assets/Scripts/Enemy.meta new file mode 100644 index 00000000..ce80551f --- /dev/null +++ b/Assets/Scripts/Enemy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f1f03ec0ebdd294989d6260a77520ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EnemyAi.cs b/Assets/Scripts/Enemy/EnemyAi.cs similarity index 70% rename from Assets/Scripts/EnemyAi.cs rename to Assets/Scripts/Enemy/EnemyAi.cs index 12bb6b90..3daf1102 100644 --- a/Assets/Scripts/EnemyAi.cs +++ b/Assets/Scripts/Enemy/EnemyAi.cs @@ -4,8 +4,13 @@ public class EnemyAi : MonoBehaviour { - [SerializeField] private Transform player; - [SerializeField] private float moveSpeed; + private Transform player; + [SerializeField] private float moveSpeed; + + private void Start() + { + player = GameObject.Find("Player").transform; + } void Update() { diff --git a/Assets/Scripts/EnemyAi.cs.meta b/Assets/Scripts/Enemy/EnemyAi.cs.meta similarity index 100% rename from Assets/Scripts/EnemyAi.cs.meta rename to Assets/Scripts/Enemy/EnemyAi.cs.meta diff --git a/Assets/Scripts/Enemy/EnemyHealth.cs b/Assets/Scripts/Enemy/EnemyHealth.cs new file mode 100644 index 00000000..40f8fee9 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyHealth.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +public class EnemyHealth : MonoBehaviour +{ + public int maxHealth = 50; + private int currentHealth; + + void Start() + { + currentHealth = maxHealth; + } + + public void TakeDamage(int damage) + { + currentHealth -= damage; + + if (currentHealth <= 0) + { + Die(); + } + } + + void Die() + { + Destroy(gameObject); // �� ������Ʈ ���� + } +} diff --git a/Assets/Scripts/Enemy/EnemyHealth.cs.meta b/Assets/Scripts/Enemy/EnemyHealth.cs.meta new file mode 100644 index 00000000..fa9ef44c --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyHealth.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 93a2ff715bbf5114196d246bf6da2d69 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Spawner.cs b/Assets/Scripts/Enemy/EnemySpawner.cs similarity index 60% rename from Assets/Scripts/Spawner.cs rename to Assets/Scripts/Enemy/EnemySpawner.cs index 0e62dae4..ea54759f 100644 --- a/Assets/Scripts/Spawner.cs +++ b/Assets/Scripts/Enemy/EnemySpawner.cs @@ -2,22 +2,15 @@ using System.Collections.Generic; using UnityEngine; -public class Spawner : MonoBehaviour +public class EnemySpawner : MonoBehaviour { - [SerializeField] GameObject enemyObject; - + [SerializeField] GameObject enemyPrefab; float curTime = 0; int enemyCount = 0; - private void Start() - { - - } - private void Update() { - curTime += Time.deltaTime; if (curTime >= 1 && enemyCount < 5) { @@ -27,27 +20,25 @@ private void Update() } } - void MakeRandomEnemy() + void MakeRandomEnemy() { - Instantiate(enemyObject); - enemyObject.transform.position = PickRandomPosition(); - enemyObject.GetComponent().color = PickRandomColor(); + GameObject enemy = Instantiate(enemyPrefab, PickRandomPosition(), Quaternion.identity); + enemy.transform.SetParent(transform); // ������ ���� �θ� ������Ʈ�� �߰� + enemy.GetComponent().color = PickRandomColor(); } - Vector3 PickRandomPosition() + Vector3 PickRandomPosition() { float x = Random.Range(-3f, 3f); float y = Random.Range(-3f, 3f); - return new Vector3(x, y, 0); } - Color PickRandomColor() + Color PickRandomColor() { float r = Random.Range(0, 1f); float g = Random.Range(0, 1f); float b = Random.Range(0, 1f); - return new Color(r, g, b); } } diff --git a/Assets/Scripts/Spawner.cs.meta b/Assets/Scripts/Enemy/EnemySpawner.cs.meta similarity index 100% rename from Assets/Scripts/Spawner.cs.meta rename to Assets/Scripts/Enemy/EnemySpawner.cs.meta diff --git a/Assets/Scripts/Player.cs b/Assets/Scripts/Player.cs deleted file mode 100644 index 94ec4419..00000000 --- a/Assets/Scripts/Player.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class Player : MonoBehaviour -{ - private Rigidbody2D rb; - - [SerializeField] private float moveSpeed; - - private void Start() - { - } - void Update() - { - transform.position += Vector3.right * Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime; - transform.position += Vector3.up * Input.GetAxisRaw("Vertical") * moveSpeed * Time.deltaTime; - - - } -} diff --git a/Assets/Scripts/Player.meta b/Assets/Scripts/Player.meta new file mode 100644 index 00000000..7e5234f8 --- /dev/null +++ b/Assets/Scripts/Player.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5fe818e6f89aba4f912148586276c38 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/Player.cs b/Assets/Scripts/Player/Player.cs new file mode 100644 index 00000000..2fe83154 --- /dev/null +++ b/Assets/Scripts/Player/Player.cs @@ -0,0 +1,60 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + + private Vector3 mousePosition; + private Vector2 direction; + + private Rigidbody2D rb; + + [SerializeField] private float moveSpeed; + + private float xInput; + private float yInput; + + private int facingDir = 1; + private bool facingRight = true; + + private void Start() + { + rb = GetComponent(); + } + + void Update() + { + xInput = Input.GetAxisRaw("Horizontal"); + yInput = Input.GetAxisRaw("Vertical"); + + Move(); + FlipController(); + } + + private void Move() + { + rb.velocity = new Vector2(xInput * moveSpeed, yInput * moveSpeed); + } + + private void Flip() + { + facingDir = facingDir * -1; + facingRight = !facingRight; + transform.Rotate(0, 180, 0); + } + + private void FlipController() + { + if (rb.velocity.x > 0 && ! facingRight) + { + Flip(); + } + else if (rb.velocity.x < 0 && facingRight) + { + Flip(); + } + } + + +} diff --git a/Assets/Scripts/Player.cs.meta b/Assets/Scripts/Player/Player.cs.meta similarity index 100% rename from Assets/Scripts/Player.cs.meta rename to Assets/Scripts/Player/Player.cs.meta diff --git a/Assets/Scripts/Weapon.meta b/Assets/Scripts/Weapon.meta new file mode 100644 index 00000000..0196f866 --- /dev/null +++ b/Assets/Scripts/Weapon.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f660604aa89a436448435c3f00d33abd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Arrow.meta b/Assets/Scripts/Weapon/Arrow.meta new file mode 100644 index 00000000..6fb9aadc --- /dev/null +++ b/Assets/Scripts/Weapon/Arrow.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0843a8b900034974f9f17d027cd0c6eb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Arrow/Arrow.cs b/Assets/Scripts/Weapon/Arrow/Arrow.cs new file mode 100644 index 00000000..6eae9af8 --- /dev/null +++ b/Assets/Scripts/Weapon/Arrow/Arrow.cs @@ -0,0 +1,61 @@ +using UnityEngine; + +public class Arrow : MonoBehaviour +{ + private Transform target; // �� Ÿ�� + private float speed; // ȭ�� �ӵ� + public int damage = 10; // ������ + + public void SetTarget(Transform newTarget) + { + target = newTarget; + } + + public void SetSpeed(float newSpeed) + { + speed = newSpeed; + } + + private void Update() + { + if (target == null) + { + Destroy(gameObject); // Ÿ���� ������ ȭ�� ���� + return; + } + + // Ÿ�� �������� �̵� + Vector3 direction = (target.position - transform.position).normalized; + transform.position += direction * speed * Time.deltaTime; + + // ������ �ſ� ��������� �浹 ó�� + if (Vector3.Distance(transform.position, target.position) < 0.2f) + { + HitTarget(); + } + } + + void HitTarget() + { + if (target != null) // Ÿ���� null���� Ȯ�� + { + EnemyHealth enemyHealth = target.GetComponent(); + if (enemyHealth != null) + { + enemyHealth.TakeDamage(damage); // ���� ü�� ���� + } + } + + Destroy(gameObject); // ȭ�� ���� + } + + private void OnDestroy() + { + // ȭ���� �ı��� �� Spawner���� �˸� + ArrowSpawner spawner = FindObjectOfType(); + if (spawner != null) + { + spawner.currentArrow = null; // ȭ���� �ı��Ǹ� Spawner�� ���ο� ȭ���� ������ �� �ֵ��� null�� ���� + } + } +} diff --git a/Assets/Scripts/Weapon/Arrow/Arrow.cs.meta b/Assets/Scripts/Weapon/Arrow/Arrow.cs.meta new file mode 100644 index 00000000..6c945402 --- /dev/null +++ b/Assets/Scripts/Weapon/Arrow/Arrow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 028ea57c9b8ae04458852a78738112e6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs new file mode 100644 index 00000000..806ce0f9 --- /dev/null +++ b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs @@ -0,0 +1,82 @@ +using UnityEngine; + +public class ArrowSpawner : MonoBehaviour +{ + [SerializeField] private GameObject arrowPrefab; // ȭ�� ������ + [SerializeField] private Transform playerTransform; // �÷��̾� ��ġ ���� + [SerializeField] private Transform enemyContainer; // ���� ��� �θ� ������Ʈ + + public GameObject currentArrow = null; // ���� ������ ȭ�� + private bool isSpawningAllowed = true; // ȭ�� ���� ���� ���� + + private void Update() + { + // ���� ������ ȭ���� �������� ���� + if (!IsEnemyAlive()) + { + return; + } + + // ���� ȭ���� �Ҹ�Ǿ����� �� ȭ�� ���� + if (currentArrow == null && isSpawningAllowed) + { + SpawnArrow(); + } + } + + // ȭ�� ���� �Լ� + void SpawnArrow() + { + Transform target = FindClosestEnemy(); // ���� ����� �� ã�� + + if (target != null) // ���� ������ ���� ȭ�� ���� + { + // ȭ�� �������� ��ȿ���� Ȯ�� + if (arrowPrefab != null) + { + currentArrow = Instantiate(arrowPrefab, playerTransform.position, Quaternion.identity); // ȭ�� ������ ���� + Arrow arrowScript = currentArrow.GetComponent(); // ȭ���� Arrow ��ũ��Ʈ �������� + arrowScript.SetTarget(target); // Ÿ�� ���� + } + else + { + Debug.LogError("Arrow Prefab is missing! Please assign it in the Inspector."); + } + } + } + + // ���� ����� ���� ã���ִ� �Լ� + Transform FindClosestEnemy() + { + Transform closestEnemy = null; + float shortestDistance = Mathf.Infinity; + + foreach (Transform enemy in enemyContainer) // enemyContainer�� Transform���� ��� + { + if (enemy != null) // �� ������Ʈ�� ��ȿ�� ���� + { + float distanceToEnemy = Vector3.Distance(playerTransform.position, enemy.position); + if (distanceToEnemy < shortestDistance) + { + shortestDistance = distanceToEnemy; + closestEnemy = enemy; + } + } + } + + return closestEnemy; + } + + // ���� ��� �ִ��� ���θ� Ȯ���ϴ� �Լ� + bool IsEnemyAlive() + { + foreach (Transform enemy in enemyContainer) // enemyContainer�� Transform���� ��� + { + if (enemy != null) // �� ������Ʈ�� ��ȿ�ϸ� true ��ȯ + { + return true; + } + } + return false; // ��� ���� null�̸� false ��ȯ + } +} diff --git a/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs.meta b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs.meta new file mode 100644 index 00000000..9a491e6b --- /dev/null +++ b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f2bf64ce2bf15c4d8e1de813280e88f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Slime Gel.prefab b/Assets/Slime Gel.prefab index 7b216480..dd77451d 100644 --- a/Assets/Slime Gel.prefab +++ b/Assets/Slime Gel.prefab @@ -11,6 +11,9 @@ GameObject: - component: {fileID: 757467468562543729} - component: {fileID: 9203273483502432701} - component: {fileID: 1754167827276662455} + - component: {fileID: 6776436742360375581} + - component: {fileID: 928503278183555542} + - component: {fileID: 8034808927973042050} m_Layer: 0 m_Name: Slime Gel m_TagString: Untagged @@ -27,7 +30,7 @@ Transform: m_GameObject: {fileID: 101294353282796750} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.055416107, y: 0.7731534, z: 0} + m_LocalPosition: {x: 1.0297936, y: -1.438735, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -75,7 +78,7 @@ SpriteRenderer: m_SortingLayer: 0 m_SortingOrder: 1 m_Sprite: {fileID: 21300000, guid: d1f94eb541d98c94c9e0a776707e9c7c, type: 3} - m_Color: {r: 0.27370936, g: 0.17531717, b: 0.7716167, a: 1} + m_Color: {r: 0.39634997, g: 0.41327232, b: 0.4084131, a: 1} m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 @@ -97,5 +100,79 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2efe405969bd0294795ba3fbca8e3055, type: 3} m_Name: m_EditorClassIdentifier: - player: {fileID: 0} moveSpeed: 2 +--- !u!114 &6776436742360375581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101294353282796750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93a2ff715bbf5114196d246bf6da2d69, type: 3} + m_Name: + m_EditorClassIdentifier: + maxHealth: 50 +--- !u!50 &928503278183555542 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101294353282796750} + m_BodyType: 0 + 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_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 +--- !u!58 &8034808927973042050 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101294353282796750} + m_Enabled: 1 + 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_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 0.5 diff --git a/Assets/arrowPrefab.prefab b/Assets/arrowPrefab.prefab new file mode 100644 index 00000000..6e0a3761 --- /dev/null +++ b/Assets/arrowPrefab.prefab @@ -0,0 +1,164 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4303553219462044247 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8703952986289129162} + - component: {fileID: 5794082839752006492} + - component: {fileID: 6612569619856313388} + - component: {fileID: 6436514257553287120} + - component: {fileID: 3353646052915222600} + m_Layer: 0 + m_Name: arrowPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8703952986289129162 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4303553219462044247} + serializedVersion: 2 + m_LocalRotation: {x: -0.013522498, y: 0.034452263, z: 0.365114, w: 0.9302269} + m_LocalPosition: {x: 4.6874266, y: -0.39759493, z: 0.0036197542} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: -2.884, y: 3.112, z: 42.782} +--- !u!212 &5794082839752006492 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4303553219462044247} + 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_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: 1 + m_Sprite: {fileID: 21300000, guid: 59c8cd2a91ad7f846b9efd79b945c356, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!50 &6612569619856313388 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4303553219462044247} + m_BodyType: 0 + 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_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 +--- !u!70 &6436514257553287120 +CapsuleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4303553219462044247} + m_Enabled: 1 + 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_UsedByComposite: 0 + m_Offset: {x: 0.040094245, y: 0.03155905} + m_Size: {x: 1.2759246, y: 1.2724292} + m_Direction: 0 +--- !u!114 &3353646052915222600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4303553219462044247} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 028ea57c9b8ae04458852a78738112e6, type: 3} + m_Name: + m_EditorClassIdentifier: + damage: 10 diff --git a/Assets/arrowPrefab.prefab.meta b/Assets/arrowPrefab.prefab.meta new file mode 100644 index 00000000..3b1022a2 --- /dev/null +++ b/Assets/arrowPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4c0adbc3b475eda419bcb9f5f25aea44 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From 8b8ebc864d6bbd847e2146ea614a203fde76cf38 Mon Sep 17 00:00:00 2001 From: minseok Date: Sat, 9 Nov 2024 21:44:51 +0900 Subject: [PATCH 2/4] fix(hw2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 화살 무기 코드 수정 --- Assets/Scripts/Enemy/EnemyHealth.cs | 2 +- Assets/Scripts/Enemy/EnemySpawner.cs | 2 +- Assets/Scripts/Weapon/Arrow/Arrow.cs | 25 ++++++------ Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs | 44 +++++++++++---------- Assets/Slime Gel.prefab | 4 +- 5 files changed, 41 insertions(+), 36 deletions(-) diff --git a/Assets/Scripts/Enemy/EnemyHealth.cs b/Assets/Scripts/Enemy/EnemyHealth.cs index 40f8fee9..b121a5dd 100644 --- a/Assets/Scripts/Enemy/EnemyHealth.cs +++ b/Assets/Scripts/Enemy/EnemyHealth.cs @@ -22,6 +22,6 @@ public void TakeDamage(int damage) void Die() { - Destroy(gameObject); // �� ������Ʈ ���� + Destroy(gameObject); } } diff --git a/Assets/Scripts/Enemy/EnemySpawner.cs b/Assets/Scripts/Enemy/EnemySpawner.cs index ea54759f..e615db72 100644 --- a/Assets/Scripts/Enemy/EnemySpawner.cs +++ b/Assets/Scripts/Enemy/EnemySpawner.cs @@ -23,7 +23,7 @@ private void Update() void MakeRandomEnemy() { GameObject enemy = Instantiate(enemyPrefab, PickRandomPosition(), Quaternion.identity); - enemy.transform.SetParent(transform); // ������ ���� �θ� ������Ʈ�� �߰� + enemy.transform.SetParent(transform); enemy.GetComponent().color = PickRandomColor(); } diff --git a/Assets/Scripts/Weapon/Arrow/Arrow.cs b/Assets/Scripts/Weapon/Arrow/Arrow.cs index 6eae9af8..3d59549c 100644 --- a/Assets/Scripts/Weapon/Arrow/Arrow.cs +++ b/Assets/Scripts/Weapon/Arrow/Arrow.cs @@ -2,9 +2,9 @@ public class Arrow : MonoBehaviour { - private Transform target; // �� Ÿ�� - private float speed; // ȭ�� �ӵ� - public int damage = 10; // ������ + private Transform target; + private float speed; + public int damage = 10; public void SetTarget(Transform newTarget) { @@ -20,15 +20,18 @@ private void Update() { if (target == null) { - Destroy(gameObject); // Ÿ���� ������ ȭ�� ���� + Destroy(gameObject); return; } - // Ÿ�� �������� �̵� + Vector3 direction = (target.position - transform.position).normalized; transform.position += direction * speed * Time.deltaTime; - // ������ �ſ� ��������� �浹 ó�� + + transform.LookAt(target); + + if (Vector3.Distance(transform.position, target.position) < 0.2f) { HitTarget(); @@ -37,25 +40,25 @@ private void Update() void HitTarget() { - if (target != null) // Ÿ���� null���� Ȯ�� + if (target != null) { EnemyHealth enemyHealth = target.GetComponent(); if (enemyHealth != null) { - enemyHealth.TakeDamage(damage); // ���� ü�� ���� + enemyHealth.TakeDamage(damage); } } - Destroy(gameObject); // ȭ�� ���� + Destroy(gameObject); } private void OnDestroy() { - // ȭ���� �ı��� �� Spawner���� �˸� + ArrowSpawner spawner = FindObjectOfType(); if (spawner != null) { - spawner.currentArrow = null; // ȭ���� �ı��Ǹ� Spawner�� ���ο� ȭ���� ������ �� �ֵ��� null�� ���� + spawner.currentArrow = null; } } } diff --git a/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs index 806ce0f9..588354f3 100644 --- a/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs +++ b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs @@ -2,41 +2,43 @@ public class ArrowSpawner : MonoBehaviour { - [SerializeField] private GameObject arrowPrefab; // ȭ�� ������ - [SerializeField] private Transform playerTransform; // �÷��̾� ��ġ ���� - [SerializeField] private Transform enemyContainer; // ���� ��� �θ� ������Ʈ + [SerializeField] private GameObject arrowPrefab; + [SerializeField] private Transform playerTransform; + [SerializeField] private Transform enemyContainer; + [SerializeField] private float arrowSpeed = 3f; - public GameObject currentArrow = null; // ���� ������ ȭ�� - private bool isSpawningAllowed = true; // ȭ�� ���� ���� ���� + public GameObject currentArrow = null; + private bool isSpawningAllowed = true; private void Update() { - // ���� ������ ȭ���� �������� ���� + if (!IsEnemyAlive()) { return; } - // ���� ȭ���� �Ҹ�Ǿ����� �� ȭ�� ���� + if (currentArrow == null && isSpawningAllowed) { SpawnArrow(); } } - // ȭ�� ���� �Լ� + void SpawnArrow() { - Transform target = FindClosestEnemy(); // ���� ����� �� ã�� + Transform target = FindClosestEnemy(); - if (target != null) // ���� ������ ���� ȭ�� ���� + if (target != null) { - // ȭ�� �������� ��ȿ���� Ȯ�� + if (arrowPrefab != null) { - currentArrow = Instantiate(arrowPrefab, playerTransform.position, Quaternion.identity); // ȭ�� ������ ���� - Arrow arrowScript = currentArrow.GetComponent(); // ȭ���� Arrow ��ũ��Ʈ �������� - arrowScript.SetTarget(target); // Ÿ�� ���� + currentArrow = Instantiate(arrowPrefab, playerTransform.position, Quaternion.identity); + Arrow arrowScript = currentArrow.GetComponent(); + arrowScript.SetTarget(target); + arrowScript.SetSpeed(arrowSpeed); } else { @@ -45,15 +47,15 @@ void SpawnArrow() } } - // ���� ����� ���� ã���ִ� �Լ� + Transform FindClosestEnemy() { Transform closestEnemy = null; float shortestDistance = Mathf.Infinity; - foreach (Transform enemy in enemyContainer) // enemyContainer�� Transform���� ��� + foreach (Transform enemy in enemyContainer) { - if (enemy != null) // �� ������Ʈ�� ��ȿ�� ���� + if (enemy != null) { float distanceToEnemy = Vector3.Distance(playerTransform.position, enemy.position); if (distanceToEnemy < shortestDistance) @@ -67,16 +69,16 @@ Transform FindClosestEnemy() return closestEnemy; } - // ���� ��� �ִ��� ���θ� Ȯ���ϴ� �Լ� + bool IsEnemyAlive() { - foreach (Transform enemy in enemyContainer) // enemyContainer�� Transform���� ��� + foreach (Transform enemy in enemyContainer) { - if (enemy != null) // �� ������Ʈ�� ��ȿ�ϸ� true ��ȯ + if (enemy != null) { return true; } } - return false; // ��� ���� null�̸� false ��ȯ + return false; } } diff --git a/Assets/Slime Gel.prefab b/Assets/Slime Gel.prefab index dd77451d..78aa6208 100644 --- a/Assets/Slime Gel.prefab +++ b/Assets/Slime Gel.prefab @@ -129,7 +129,7 @@ Rigidbody2D: m_Mass: 1 m_LinearDrag: 0 m_AngularDrag: 0.05 - m_GravityScale: 1 + m_GravityScale: 0 m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -140,7 +140,7 @@ Rigidbody2D: m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 - m_Constraints: 0 + m_Constraints: 4 --- !u!58 &8034808927973042050 CircleCollider2D: m_ObjectHideFlags: 0 From 6a3764bd9b332783d025c0fada84d2a6d00928b6 Mon Sep 17 00:00:00 2001 From: minseok Date: Sat, 9 Nov 2024 22:31:00 +0900 Subject: [PATCH 3/4] fix(hw2) arrow system --- Assets/Resources/Scenes/HW1.unity | 261 ++++++++++++------------------ 1 file changed, 99 insertions(+), 162 deletions(-) diff --git a/Assets/Resources/Scenes/HW1.unity b/Assets/Resources/Scenes/HW1.unity index 193ebae1..34c4f2f2 100644 --- a/Assets/Resources/Scenes/HW1.unity +++ b/Assets/Resources/Scenes/HW1.unity @@ -151,7 +151,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 44829256bc72f3d44b208002b67f728b, type: 3} m_Name: m_EditorClassIdentifier: - enemyObject: {fileID: 101294353282796750, guid: 5b353af4c8ffb8d468f5463481b7d745, type: 3} + enemyPrefab: {fileID: 101294353282796750, guid: 5b353af4c8ffb8d468f5463481b7d745, type: 3} --- !u!4 &92570377 Transform: m_ObjectHideFlags: 0 @@ -167,7 +167,7 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &98569913 +--- !u!1 &102871422 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -175,133 +175,46 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 98569915} - - component: {fileID: 98569914} + - component: {fileID: 102871424} + - component: {fileID: 102871423} m_Layer: 0 - m_Name: AimLine + m_Name: ArrowSpawner m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!120 &98569914 -LineRenderer: - serializedVersion: 2 +--- !u!114 &102871423 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 98569913} + m_GameObject: {fileID: 102871422} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 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: 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_Positions: - - {x: 0, y: 0, z: 0} - - {x: 0, y: 0, z: 1} - m_Parameters: - serializedVersion: 3 - widthMultiplier: 1 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.9929199 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: -1 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 0 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - textureScale: {x: 1, y: 1} - shadowBias: 0.5 - generateLightingData: 0 - m_MaskInteraction: 0 - m_UseWorldSpace: 1 - m_Loop: 0 - m_ApplyActiveColorSpace: 1 ---- !u!4 &98569915 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f2bf64ce2bf15c4d8e1de813280e88f, type: 3} + m_Name: + m_EditorClassIdentifier: + arrowPrefab: {fileID: 4303553219462044247, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + playerTransform: {fileID: 1278323729} + enemyContainer: {fileID: 92570377} + arrowSpeed: 10 + currentArrow: {fileID: 906604912} +--- !u!4 &102871424 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 98569913} + m_GameObject: {fileID: 102871422} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -7.329463, y: 3.4171515, z: -0.011106351} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.752898, y: -0.3671018, z: 0.16692284} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1278323729} + m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &491691375 GameObject: @@ -387,6 +300,11 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &579137781 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + m_PrefabInstance: {fileID: 1706731398} + m_PrefabAsset: {fileID: 0} --- !u!1 &587751682 GameObject: m_ObjectHideFlags: 0 @@ -479,7 +397,7 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1000949500 +--- !u!1 &906604912 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -487,65 +405,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1000949501} - - component: {fileID: 1000949502} + - component: {fileID: 906604913} m_Layer: 0 - m_Name: GameObject + m_Name: Arrow m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1000949501 +--- !u!4 &906604913 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1000949500} + m_GameObject: {fileID: 906604912} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.13, y: 0.08, z: 0.15910597} - m_LocalScale: {x: 2.5379639, y: 2.2512, z: 1} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.752898, y: -0.3671018, z: 0.16692284} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1278323729} + m_Children: + - {fileID: 579137781} + m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!70 &1000949502 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1000949500} - m_Enabled: 1 - 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_UsedByComposite: 0 - m_Offset: {x: 0, y: 0} - m_Size: {x: 0.5, y: 1} - m_Direction: 0 --- !u!1 &1278323727 GameObject: m_ObjectHideFlags: 0 @@ -629,9 +512,7 @@ Transform: m_LocalPosition: {x: 1.78, y: -0.07, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 98569915} - - {fileID: 1000949501} + m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1278323732 @@ -646,9 +527,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ffdc98dba9cf840519d1456a3b8785bd, type: 3} m_Name: m_EditorClassIdentifier: - aimLine: {fileID: 98569915} - arrowPrefab: {fileID: 4303553219462044247, guid: 6c651349be6df404dbe4c43239c232cb, type: 3} - arrowSpeed: 10 moveSpeed: 10 --- !u!50 &1278323733 Rigidbody2D: @@ -676,7 +554,64 @@ Rigidbody2D: m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 - m_Constraints: 0 + m_Constraints: 4 +--- !u!1001 &1706731398 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 906604913} + m_Modifications: + - target: {fileID: 4303553219462044247, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_Name + value: arrowPrefab + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalPosition.x + value: 4.6874266 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalPosition.y + value: -0.39759493 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0036197542 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9302269 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalRotation.x + value: -0.013522498 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalRotation.y + value: 0.034452263 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalRotation.z + value: 0.365114 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -2.884 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 3.112 + objectReference: {fileID: 0} + - target: {fileID: 8703952986289129162, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 42.782 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4c0adbc3b475eda419bcb9f5f25aea44, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -685,3 +620,5 @@ SceneRoots: - {fileID: 491691377} - {fileID: 1278323729} - {fileID: 92570377} + - {fileID: 906604913} + - {fileID: 102871424} From fcd398b823c2513c6695c4aee60cb82ba14fa24e Mon Sep 17 00:00:00 2001 From: minseok Date: Sun, 10 Nov 2024 13:39:27 +0900 Subject: [PATCH 4/4] fix(/hw2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 무기 추가 --- Assets/Scripts/Weapon/Arrow/Arrow.cs | 8 +- Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs | 17 ++- Assets/Scripts/Weapon/Shield.meta | 8 ++ Assets/Scripts/Weapon/Shield/Shield.cs | 78 ++++++++++++++ Assets/Scripts/Weapon/Shield/Shield.cs.meta | 11 ++ Assets/Scripts/Weapon/Shield/ShieldSpawner.cs | 76 +++++++++++++ .../Weapon/Shield/ShieldSpawner.cs.meta | 11 ++ Assets/Scripts/Weapon/Sword.meta | 8 ++ Assets/Scripts/Weapon/Sword/SwordSpin.cs | 41 +++++++ Assets/Scripts/Weapon/Sword/SwordSpin.cs.meta | 11 ++ Assets/Slime Gel.prefab | 28 ----- Assets/arrowPrefab.prefab | 64 ----------- Assets/shieldPrefab.prefab | 100 ++++++++++++++++++ Assets/shieldPrefab.prefab.meta | 7 ++ Assets/swordPrefab.prefab | 86 +++++++++++++++ Assets/swordPrefab.prefab.meta | 7 ++ 16 files changed, 452 insertions(+), 109 deletions(-) create mode 100644 Assets/Scripts/Weapon/Shield.meta create mode 100644 Assets/Scripts/Weapon/Shield/Shield.cs create mode 100644 Assets/Scripts/Weapon/Shield/Shield.cs.meta create mode 100644 Assets/Scripts/Weapon/Shield/ShieldSpawner.cs create mode 100644 Assets/Scripts/Weapon/Shield/ShieldSpawner.cs.meta create mode 100644 Assets/Scripts/Weapon/Sword.meta create mode 100644 Assets/Scripts/Weapon/Sword/SwordSpin.cs create mode 100644 Assets/Scripts/Weapon/Sword/SwordSpin.cs.meta create mode 100644 Assets/shieldPrefab.prefab create mode 100644 Assets/shieldPrefab.prefab.meta create mode 100644 Assets/swordPrefab.prefab create mode 100644 Assets/swordPrefab.prefab.meta diff --git a/Assets/Scripts/Weapon/Arrow/Arrow.cs b/Assets/Scripts/Weapon/Arrow/Arrow.cs index 3d59549c..02930efd 100644 --- a/Assets/Scripts/Weapon/Arrow/Arrow.cs +++ b/Assets/Scripts/Weapon/Arrow/Arrow.cs @@ -24,14 +24,10 @@ private void Update() return; } - Vector3 direction = (target.position - transform.position).normalized; transform.position += direction * speed * Time.deltaTime; - - transform.LookAt(target); - if (Vector3.Distance(transform.position, target.position) < 0.2f) { HitTarget(); @@ -49,12 +45,12 @@ void HitTarget() } } - Destroy(gameObject); + Destroy(gameObject); } private void OnDestroy() { - + ArrowSpawner spawner = FindObjectOfType(); if (spawner != null) { diff --git a/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs index 588354f3..2cdb9da5 100644 --- a/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs +++ b/Assets/Scripts/Weapon/Arrow/ArrowSpawner.cs @@ -2,30 +2,27 @@ public class ArrowSpawner : MonoBehaviour { - [SerializeField] private GameObject arrowPrefab; - [SerializeField] private Transform playerTransform; + [SerializeField] private GameObject arrowPrefab; + [SerializeField] private Transform playerTransform; [SerializeField] private Transform enemyContainer; - [SerializeField] private float arrowSpeed = 3f; + [SerializeField] private float arrowSpeed = 10f; public GameObject currentArrow = null; - private bool isSpawningAllowed = true; + private bool isSpawningAllowed = true; private void Update() { - if (!IsEnemyAlive()) { return; } - if (currentArrow == null && isSpawningAllowed) { SpawnArrow(); } } - void SpawnArrow() { Transform target = FindClosestEnemy(); @@ -47,13 +44,12 @@ void SpawnArrow() } } - Transform FindClosestEnemy() { Transform closestEnemy = null; float shortestDistance = Mathf.Infinity; - foreach (Transform enemy in enemyContainer) + foreach (Transform enemy in enemyContainer) { if (enemy != null) { @@ -65,11 +61,10 @@ Transform FindClosestEnemy() } } } - + return closestEnemy; } - bool IsEnemyAlive() { foreach (Transform enemy in enemyContainer) diff --git a/Assets/Scripts/Weapon/Shield.meta b/Assets/Scripts/Weapon/Shield.meta new file mode 100644 index 00000000..2e5cea36 --- /dev/null +++ b/Assets/Scripts/Weapon/Shield.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 518bea1e48a879648b45d8c9507c1d37 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Shield/Shield.cs b/Assets/Scripts/Weapon/Shield/Shield.cs new file mode 100644 index 00000000..89a76536 --- /dev/null +++ b/Assets/Scripts/Weapon/Shield/Shield.cs @@ -0,0 +1,78 @@ +using UnityEngine; + +public class Shield : MonoBehaviour +{ + private Transform target; + private float speed; + public int damage = 10; + public float damageDuration = 2f; + private float damageTimer = 0f; + + private bool isActive = true; + + public void SetTarget(Transform newTarget) + { + target = newTarget; + } + + public void SetSpeed(float newSpeed) + { + speed = newSpeed; + } + + private void Update() + { + if (target == null) + { + Destroy(gameObject); + return; + } + + + Vector3 direction = (target.position - transform.position).normalized; + transform.position += direction * speed * Time.deltaTime; + + + if (Vector3.Distance(transform.position, target.position) < 0.2f) + { + HitTarget(); + } + + + if (isActive) + { + damageTimer += Time.deltaTime; + if (damageTimer >= damageDuration) + { + isActive = false; + } + } + } + + void HitTarget() + { + if (target != null && isActive) + { + EnemyHealth enemyHealth = target.GetComponent(); + if (enemyHealth != null) + { + enemyHealth.TakeDamage((int)(damage * Time.deltaTime)); + } + } + + if (!isActive) + { + Destroy(gameObject); + } + } + + private void OnDestroy() + { + + ShieldSpawner spawner = FindObjectOfType(); + if (spawner != null) + { + spawner.currentShield = null; + } + } +} diff --git a/Assets/Scripts/Weapon/Shield/Shield.cs.meta b/Assets/Scripts/Weapon/Shield/Shield.cs.meta new file mode 100644 index 00000000..9244a162 --- /dev/null +++ b/Assets/Scripts/Weapon/Shield/Shield.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6537f31ba93e9fd49af288c370dcfeb2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Shield/ShieldSpawner.cs b/Assets/Scripts/Weapon/Shield/ShieldSpawner.cs new file mode 100644 index 00000000..7047d259 --- /dev/null +++ b/Assets/Scripts/Weapon/Shield/ShieldSpawner.cs @@ -0,0 +1,76 @@ +using UnityEngine; + +public class ShieldSpawner : MonoBehaviour +{ + [SerializeField] private GameObject shieldPrefab; + [SerializeField] private Transform playerTransform; + [SerializeField] private Transform enemyContainer; + [SerializeField] private float shieldSpeed = 10f; + + public GameObject currentShield = null; + private bool isSpawningAllowed = true; + + private void Update() + { + + if (!IsEnemyAlive()) + { + return; + } + + if (currentShield == null && isSpawningAllowed) + { + SpawnShield(); + } + } + + void SpawnShield() + { + Transform target = FindClosestEnemy(); + + if (target != null) + { + if (shieldPrefab != null) + { + currentShield = Instantiate(shieldPrefab, playerTransform.position, Quaternion.identity); + Shield shieldScript = currentShield.GetComponent(); + shieldScript.SetTarget(target); + shieldScript.SetSpeed(shieldSpeed); + } + + } + } + + Transform FindClosestEnemy() + { + Transform closestEnemy = null; + float shortestDistance = Mathf.Infinity; + + foreach (Transform enemy in enemyContainer) + { + if (enemy != null) + { + float distanceToEnemy = Vector3.Distance(playerTransform.position, enemy.position); + if (distanceToEnemy < shortestDistance) + { + shortestDistance = distanceToEnemy; + closestEnemy = enemy; + } + } + } + + return closestEnemy; + } + + bool IsEnemyAlive() + { + foreach (Transform enemy in enemyContainer) + { + if (enemy != null) + { + return true; + } + } + return false; + } +} diff --git a/Assets/Scripts/Weapon/Shield/ShieldSpawner.cs.meta b/Assets/Scripts/Weapon/Shield/ShieldSpawner.cs.meta new file mode 100644 index 00000000..1611c73e --- /dev/null +++ b/Assets/Scripts/Weapon/Shield/ShieldSpawner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 735daf12dee61ff4b81549ca99706cb8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Sword.meta b/Assets/Scripts/Weapon/Sword.meta new file mode 100644 index 00000000..d2e41bae --- /dev/null +++ b/Assets/Scripts/Weapon/Sword.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b919443c0e0d374199c3e365e841f08 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapon/Sword/SwordSpin.cs b/Assets/Scripts/Weapon/Sword/SwordSpin.cs new file mode 100644 index 00000000..7fbe99ed --- /dev/null +++ b/Assets/Scripts/Weapon/Sword/SwordSpin.cs @@ -0,0 +1,41 @@ +using UnityEngine; + +public class SwordOrbit : MonoBehaviour +{ + public Transform player; + public float orbitRadius = 1.5f; + public float orbitSpeed = 180f; + public int swordDamage = 10; + + private float currentAngle = 0f; + + private void Update() + { + if (player != null) + { + + currentAngle += orbitSpeed * Time.deltaTime; + + + float radians = currentAngle * Mathf.Deg2Rad; + float x = player.position.x + orbitRadius * Mathf.Cos(radians); + float y = player.position.y + orbitRadius * Mathf.Sin(radians); + + transform.position = new Vector3(x, y, transform.position.z); + + + Vector3 direction = transform.position - player.position; + float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg; + transform.rotation = Quaternion.Euler(0, 0, angle); + } + } + + private void OnTriggerEnter2D(Collider2D other) + { + EnemyHealth enemyHealth = other.GetComponent(); + if (enemyHealth != null) + { + enemyHealth.TakeDamage(swordDamage); + } + } +} diff --git a/Assets/Scripts/Weapon/Sword/SwordSpin.cs.meta b/Assets/Scripts/Weapon/Sword/SwordSpin.cs.meta new file mode 100644 index 00000000..d7a4ff5b --- /dev/null +++ b/Assets/Scripts/Weapon/Sword/SwordSpin.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 48bf3c3b6e30403499aef38e39c9da9a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Slime Gel.prefab b/Assets/Slime Gel.prefab index 78aa6208..1d7be2d3 100644 --- a/Assets/Slime Gel.prefab +++ b/Assets/Slime Gel.prefab @@ -12,7 +12,6 @@ GameObject: - component: {fileID: 9203273483502432701} - component: {fileID: 1754167827276662455} - component: {fileID: 6776436742360375581} - - component: {fileID: 928503278183555542} - component: {fileID: 8034808927973042050} m_Layer: 0 m_Name: Slime Gel @@ -114,33 +113,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: maxHealth: 50 ---- !u!50 &928503278183555542 -Rigidbody2D: - serializedVersion: 4 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 101294353282796750} - m_BodyType: 0 - m_Simulated: 1 - m_UseFullKinematicContacts: 0 - m_UseAutoMass: 0 - m_Mass: 1 - m_LinearDrag: 0 - m_AngularDrag: 0.05 - m_GravityScale: 0 - 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: 4 --- !u!58 &8034808927973042050 CircleCollider2D: m_ObjectHideFlags: 0 diff --git a/Assets/arrowPrefab.prefab b/Assets/arrowPrefab.prefab index 6e0a3761..a13e241c 100644 --- a/Assets/arrowPrefab.prefab +++ b/Assets/arrowPrefab.prefab @@ -10,8 +10,6 @@ GameObject: m_Component: - component: {fileID: 8703952986289129162} - component: {fileID: 5794082839752006492} - - component: {fileID: 6612569619856313388} - - component: {fileID: 6436514257553287120} - component: {fileID: 3353646052915222600} m_Layer: 0 m_Name: arrowPrefab @@ -87,68 +85,6 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 ---- !u!50 &6612569619856313388 -Rigidbody2D: - serializedVersion: 4 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4303553219462044247} - m_BodyType: 0 - 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_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 ---- !u!70 &6436514257553287120 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4303553219462044247} - m_Enabled: 1 - 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_UsedByComposite: 0 - m_Offset: {x: 0.040094245, y: 0.03155905} - m_Size: {x: 1.2759246, y: 1.2724292} - m_Direction: 0 --- !u!114 &3353646052915222600 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/shieldPrefab.prefab b/Assets/shieldPrefab.prefab new file mode 100644 index 00000000..b12e809c --- /dev/null +++ b/Assets/shieldPrefab.prefab @@ -0,0 +1,100 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8733175402453207020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1116504598350672176} + - component: {fileID: 3230951492226551634} + - component: {fileID: 6486688411681562282} + m_Layer: 0 + m_Name: shieldPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1116504598350672176 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8733175402453207020} + 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 &3230951492226551634 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8733175402453207020} + 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_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: 256205b9c6ca12c45ab7762da8a65631, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &6486688411681562282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8733175402453207020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6537f31ba93e9fd49af288c370dcfeb2, type: 3} + m_Name: + m_EditorClassIdentifier: + damage: 10 diff --git a/Assets/shieldPrefab.prefab.meta b/Assets/shieldPrefab.prefab.meta new file mode 100644 index 00000000..72086eb4 --- /dev/null +++ b/Assets/shieldPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8aa481b4300393e4ba2703d991312f45 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/swordPrefab.prefab b/Assets/swordPrefab.prefab new file mode 100644 index 00000000..39732a2a --- /dev/null +++ b/Assets/swordPrefab.prefab @@ -0,0 +1,86 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5637426789725627357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5684737901312066276} + - component: {fileID: 4556212898633229388} + m_Layer: 0 + m_Name: swordPrefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5684737901312066276 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5637426789725627357} + 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 &4556212898633229388 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5637426789725627357} + 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_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: 1 + m_Sprite: {fileID: 21300000, guid: 90e99a7fde056a4418b9fe16084adb5c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/swordPrefab.prefab.meta b/Assets/swordPrefab.prefab.meta new file mode 100644 index 00000000..284aaa63 --- /dev/null +++ b/Assets/swordPrefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a96a37d0fe3a1a341b066049ae98ef93 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: