이펙트 추가

This commit is contained in:
Ino 2026-01-15 14:28:45 +09:00
parent c50f834374
commit 6db4922fd9
12 changed files with 48687 additions and 1 deletions

View File

@ -8,7 +8,7 @@
//Knockback 타격 된 적을 일정 거리 만큼 밀쳐냅니다.
//DoubleShot 같은 방향으로 발사되는 투사체의 수량이 증가합니다. (※연속 발사)
Explosion 피격 된 대상을 처치하면 일정 범위에 피해를 입힙니다. (중첩 시 피해량과 범위가 증가)
Stun 피해를 입힌 적을 일정 시간(=0.5초) 기절 시킵니다. (※보스 몬스터에게는 적용 안됨)
//Stun 피해를 입힌 적을 일정 시간(=0.5초) 기절 시킵니다. (※보스 몬스터에게는 적용 안됨)
//Bounce 피격 된 대상이 있을 경우, 일정 범위 내 적에게 투사체 1개가 추가로 발사됩니다.
//ArrowUpDown 투사체에 적이 명중할 경우 상/하 방향으로 투사체가 1개씩 발사됩니다.
//ArrowLeftRight 투사체에 적이 명중할 경우 좌/우 방향으로 투사체가 1개씩 발사됩니다.

View File

@ -5267,6 +5267,7 @@ RectTransform:
- {fileID: 4565446678480095036}
- {fileID: 6585150402215888903}
- {fileID: 5061678075927086196}
- {fileID: 3055112072941494986}
- {fileID: 4111377606315435504}
- {fileID: 4111377605452252100}
- {fileID: 4111377605869284182}
@ -6007,6 +6008,41 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4277682987248411264
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3055112072941494986}
m_Layer: 5
m_Name: Effect
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3055112072941494986
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4277682987248411264}
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: 4111377606588400904}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &4278503492291150641
GameObject:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -17543,6 +17543,11 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 4111377606588400904, guid: 7a72290f58c260649a424bb4dd1d8726, type: 3}
m_PrefabInstance: {fileID: 73956442}
m_PrefabAsset: {fileID: 0}
--- !u!224 &73956444 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 3055112072941494986, guid: 7a72290f58c260649a424bb4dd1d8726, type: 3}
m_PrefabInstance: {fileID: 73956442}
m_PrefabAsset: {fileID: 0}
--- !u!1 &74615790
GameObject:
m_ObjectHideFlags: 0
@ -292226,6 +292231,7 @@ GameObject:
- component: {fileID: 1293320786}
- component: {fileID: 1293320785}
- component: {fileID: 1293320787}
- component: {fileID: 1293320788}
m_Layer: 0
m_Name: Mgr
m_TagString: Untagged
@ -292276,6 +292282,20 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
go_child: {fileID: 0}
--- !u!114 &1293320788
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1293320784}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4ab514d032753734e9aaa7b8c5091da1, type: 3}
m_Name:
m_EditorClassIdentifier:
go_child: {fileID: 0}
tf_parent: {fileID: 73956444}
--- !u!1 &1293420715
GameObject:
m_ObjectHideFlags: 0

View File

@ -33,6 +33,7 @@ public class IngameMgr : MonoBehaviourSingletonTemplate<IngameMgr>
{
foreach (var kv in mob_pools) foreach (var mob in kv.Value) mob.Off();
ProjectileMgr.Ins.AllOff();
EffectMgr.Ins.AllOff();
CurStageData = table_stageconfig.Ins.Get_Data(10001);
CurUnitData = table_unit.Ins.Get_Data(1001);

View File

@ -0,0 +1,55 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class EffectMgr : MonoBehaviourSingletonTemplate<EffectMgr>
{
[Header("Pool Setting")]
public Transform tf_parent;
Dictionary<string, List<GameObject>> dic_effect= new Dictionary<string, List<GameObject>>();
public void AllOff()
{
// 부모 아래에 있는 모든 Projectile 검색
var keys = dic_effect.Keys.ToList();
for (int i = 0; i < keys.Count; i++)
dic_effect[keys[i]].ForEach(f=>f.SetActive(false));
}
public void Show_Effect(string effectpath, Vector2 pos, float scale = 100f)
{
if (!dic_effect.ContainsKey(effectpath))
dic_effect.Add(effectpath, new List<GameObject>());
GameObject effect = null;
for (int i = 0; i < dic_effect[effectpath].Count; i++)
{
if (!dic_effect[effectpath][i].activeSelf)
{
effect = dic_effect[effectpath][i];
break;
}
}
if (effect == null)
{
effect = DSUtil.Get_Clone(effectpath, tf_parent);
dic_effect[effectpath].Add(effect);
}
effect.transform.position = pos;
effect.transform.localScale = Vector3.one * scale;
effect.gameObject.SetActive(true);
StartCoroutine(Co_Off(effect));
}
IEnumerator Co_Off(GameObject effect)
{
yield return new WaitForSeconds(1f);
effect.SetActive(false);
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4ab514d032753734e9aaa7b8c5091da1

View File

@ -170,6 +170,8 @@ public class Projectile : MonoBehaviour
void Check_Hit(Collider2D collision)
{
EffectMgr.Ins.Show_Effect("Effect/ArrowHit", transform.position);
if (m_ProjectileData.IsPC)
{
switch(collision.tag)