// - 몬스터 공격 프리팹 만들기

// - 몬스터 공격 애님
This commit is contained in:
Ino 2026-01-13 08:08:10 +09:00
parent 062100ec8d
commit 0fe1834b96
7 changed files with 278 additions and 6 deletions

View File

@ -7,9 +7,16 @@
- 투사체(이펙트)
몬스터 펜스 공격하기
- 몬스터 공격 프리팹 만들기
// - 몬스터 공격 프리팹 만들기
// - 몬스터 공격 애님
- 프리팹 발사!
- 펜스 hp 깍기
- 펜스 부서지면 패배 화면
몬스터 이동방식 구현
// - 직진
- 지그재그
- 랜덤
고찰
- 에임을 마우스 찍은 곳으로 lookat 하면 안되나?

View File

@ -0,0 +1,109 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6506108141890977998
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1218441243008823837}
- component: {fileID: 6182406677487406681}
- component: {fileID: 5283165188844738288}
- component: {fileID: 4784918102884404883}
m_Layer: 0
m_Name: Projectile_MobMelee
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1218441243008823837
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
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}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 159}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6182406677487406681
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_CullTransparentMesh: 1
--- !u!114 &5283165188844738288
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ccfe1723f3c6dc74787642c082b79437, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Speed: 12
m_MaxBounce: 3
radius: 0.1
--- !u!61 &4784918102884404883
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 100, y: 150}
m_EdgeRadius: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e59efd878ee01f946b1946c649342c67
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,140 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6506108141890977998
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1218441243008823837}
- component: {fileID: 6182406677487406681}
- component: {fileID: 6535598282516247635}
- component: {fileID: 5283165188844738288}
- component: {fileID: 4784918102884404883}
m_Layer: 0
m_Name: Projectile_MobRange
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1218441243008823837
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
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}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 27, y: 167}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6182406677487406681
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_CullTransparentMesh: 1
--- !u!114 &6535598282516247635
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 4038cd1faba5af240995b5849f8af91f, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &5283165188844738288
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ccfe1723f3c6dc74787642c082b79437, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Speed: 12
m_MaxBounce: 3
radius: 0.1
--- !u!61 &4784918102884404883
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6506108141890977998}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 27, y: 50}
m_EdgeRadius: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 875833d99efcd9941a50fc56bc30f09f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -7,12 +7,14 @@ public class MobActor : MonoBehaviour
MonsterTableData m_Data;
float FenceY, m_attackTimer;
eMobState m_State = eMobState.Move;
Animator m_Animator;
private void Awake()
{
var srs = GetComponentsInChildren<SpriteRenderer>(true);
for (int i = 0; i < srs.Length; i++)
srs[i].sortingOrder -= 5;
m_Animator = GetComponentInChildren<Animator>();
}
private void Update()
@ -23,14 +25,9 @@ public class MobActor : MonoBehaviour
{
case eMobState.Move:
if (distToFence <= m_Data.f_AttackRange)
{
m_State = eMobState.Attack;
OnEnterAttack();
}
else
{
Move();
}
break;
case eMobState.Attack:
@ -53,6 +50,8 @@ public class MobActor : MonoBehaviour
void OnEnterAttack()
{
m_State = eMobState.Attack;
// 이동 정지 시점 보정 (너무 파고들지 않게)
Vector3 pos = transform.position;
pos.y = FenceY + m_Data.f_AttackRange;
@ -69,6 +68,9 @@ public class MobActor : MonoBehaviour
m_attackTimer = m_Data.f_AttackDelay;
//m_Animator.speed = 2f;
m_Animator.SetTrigger("att");
// 철책 or 플레이어 공격
AttackFence();
}