Compare commits
No commits in common. "b09110f8c16de57a9a932a79cedfef75712b5fcb" and "6ed9548735488266eee839de8c1ce558329b4fdf" have entirely different histories.
b09110f8c1
...
6ed9548735
BIN
Assets/JYY/Prefabs/Alien Big Blink.prefab
(Stored with Git LFS)
BIN
Assets/JYY/Prefabs/Alien Big Blink.prefab
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/JYY/Prefabs/[Enemy] PldDog.prefab
(Stored with Git LFS)
BIN
Assets/JYY/Prefabs/[Enemy] PldDog.prefab
(Stored with Git LFS)
Binary file not shown.
@ -5,8 +5,6 @@ using Random = UnityEngine.Random;
|
|||||||
|
|
||||||
public class CasterDemonController : EnemyController
|
public class CasterDemonController : EnemyController
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// Animation
|
// Animation
|
||||||
public static readonly int Cast = Animator.StringToHash("Cast");
|
public static readonly int Cast = Animator.StringToHash("Cast");
|
||||||
public static readonly int Flee = Animator.StringToHash("Flee");
|
public static readonly int Flee = Animator.StringToHash("Flee");
|
||||||
@ -27,15 +25,6 @@ public class CasterDemonController : EnemyController
|
|||||||
[SerializeField] private GameObject slowFieldWarning;
|
[SerializeField] private GameObject slowFieldWarning;
|
||||||
[SerializeField] private GameObject slowFieldEffect;
|
[SerializeField] private GameObject slowFieldEffect;
|
||||||
[SerializeField] private GameObject knockbackEffect;
|
[SerializeField] private GameObject knockbackEffect;
|
||||||
|
|
||||||
// SFX
|
|
||||||
[Space(10)]
|
|
||||||
[Header("SFX")]
|
|
||||||
[SerializeField] private AudioClip magicMissileShotSound;
|
|
||||||
[SerializeField] private AudioClip teleportSound;
|
|
||||||
[SerializeField] private AudioClip spinSound;
|
|
||||||
[SerializeField] private AudioClip slowFieldSound;
|
|
||||||
|
|
||||||
private float _knockbackTimer = 10f;
|
private float _knockbackTimer = 10f;
|
||||||
private const float KnockBackThresholdTime = 10f;
|
private const float KnockBackThresholdTime = 10f;
|
||||||
|
|
||||||
@ -208,7 +197,7 @@ public class CasterDemonController : EnemyController
|
|||||||
// 플레이어 위치를 바라보고
|
// 플레이어 위치를 바라보고
|
||||||
transform.LookAt(aimPosition);
|
transform.LookAt(aimPosition);
|
||||||
SetAnimation(MagicMissile);
|
SetAnimation(MagicMissile);
|
||||||
SFXPlayer(magicMissileShotSound);
|
|
||||||
// 미사일 생성 및 초기화
|
// 미사일 생성 및 초기화
|
||||||
var missile = Instantiate(
|
var missile = Instantiate(
|
||||||
magicMissilePrefab,
|
magicMissilePrefab,
|
||||||
@ -257,7 +246,6 @@ public class CasterDemonController : EnemyController
|
|||||||
|
|
||||||
aoe.SetEffect(TeleportEffectData, null, null);
|
aoe.SetEffect(TeleportEffectData, null, null);
|
||||||
|
|
||||||
SFXPlayer(teleportSound);
|
|
||||||
// 텔레포트 타겟 위치로 이동
|
// 텔레포트 타겟 위치로 이동
|
||||||
Agent.Warp(teleportTargetPosition);
|
Agent.Warp(teleportTargetPosition);
|
||||||
SetAnimation(Telepo);
|
SetAnimation(Telepo);
|
||||||
@ -282,10 +270,9 @@ public class CasterDemonController : EnemyController
|
|||||||
// 1. 시전 애니메이션
|
// 1. 시전 애니메이션
|
||||||
transform.LookAt(aimPosition);
|
transform.LookAt(aimPosition);
|
||||||
SetAnimation(Cast);
|
SetAnimation(Cast);
|
||||||
SFXPlayer(slowFieldSound);
|
|
||||||
|
|
||||||
// 2. 장판 생성과 세팅
|
// 2. 장판 생성과 세팅
|
||||||
var fixedPos = new Vector3(aimPosition.x, aimPosition.y, aimPosition.z);
|
var fixedPos = new Vector3(aimPosition.x, 0, aimPosition.z);
|
||||||
var warning = Instantiate(chariotWarning, fixedPos, Quaternion.identity).GetComponent<MagicAoEField>();
|
var warning = Instantiate(chariotWarning, fixedPos, Quaternion.identity).GetComponent<MagicAoEField>();
|
||||||
|
|
||||||
warning.SetEffect(SlowFieldEffectData, null, null);
|
warning.SetEffect(SlowFieldEffectData, null, null);
|
||||||
@ -298,7 +285,6 @@ public class CasterDemonController : EnemyController
|
|||||||
{
|
{
|
||||||
// 시전 애니메이션
|
// 시전 애니메이션
|
||||||
SetAnimation(Spin);
|
SetAnimation(Spin);
|
||||||
SFXPlayer(spinSound);
|
|
||||||
|
|
||||||
// 넉백 발생
|
// 넉백 발생
|
||||||
var knockback = Instantiate(chariotWarning, transform).GetComponent<MagicAoEField>();
|
var knockback = Instantiate(chariotWarning, transform).GetComponent<MagicAoEField>();
|
||||||
@ -307,11 +293,6 @@ public class CasterDemonController : EnemyController
|
|||||||
yield return Wait.For(1f);
|
yield return Wait.For(1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SFXPlayer(AudioClip clip)
|
|
||||||
{
|
|
||||||
SoundManager.Instance.PlaySFX(clip);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region 유틸리티
|
#region 유틸리티
|
||||||
private void SetSequence(Func<IEnumerator> newSequence)
|
private void SetSequence(Func<IEnumerator> newSequence)
|
||||||
{
|
{
|
||||||
|
@ -37,12 +37,6 @@ public class PldDogController : EnemyController
|
|||||||
[SerializeField] private GameObject horizontalWarning;
|
[SerializeField] private GameObject horizontalWarning;
|
||||||
[SerializeField] private GameObject horizontalSlash;
|
[SerializeField] private GameObject horizontalSlash;
|
||||||
|
|
||||||
// SFX
|
|
||||||
[Space(10)]
|
|
||||||
[Header("SFX")]
|
|
||||||
[SerializeField] private AudioClip slashSound;
|
|
||||||
[SerializeField] private AudioClip boomSound;
|
|
||||||
|
|
||||||
private float _patternTimer = 0f;
|
private float _patternTimer = 0f;
|
||||||
private int _lastPatternIndex = -1;
|
private int _lastPatternIndex = -1;
|
||||||
private bool _isPatternRunning = false;
|
private bool _isPatternRunning = false;
|
||||||
@ -116,14 +110,13 @@ public class PldDogController : EnemyController
|
|||||||
{
|
{
|
||||||
Debug.Log("BombThrowPattern: 보스가 폭탄을 던집니다.");
|
Debug.Log("BombThrowPattern: 보스가 폭탄을 던집니다.");
|
||||||
SetAnimation(BoomShot);
|
SetAnimation(BoomShot);
|
||||||
SoundManager.Instance.PlaySFX(boomSound);
|
|
||||||
_isPatternRunning = true;
|
_isPatternRunning = true;
|
||||||
Agent.isStopped = true;
|
Agent.isStopped = true;
|
||||||
|
|
||||||
for (int i = 0; i < bombCount; i++)
|
for (int i = 0; i < bombCount; i++)
|
||||||
{
|
{
|
||||||
Vector3 targetPos = TraceTargetTransform.position;
|
Vector3 targetPos = TraceTargetTransform.position;
|
||||||
targetPos.y += 0.1f; // 지면에 맞춤
|
targetPos.y = 0.1f; // 지면에 맞춤
|
||||||
|
|
||||||
var warning = Instantiate(chariotSlashWarning, targetPos, Quaternion.identity);
|
var warning = Instantiate(chariotSlashWarning, targetPos, Quaternion.identity);
|
||||||
warning.transform.localScale = bombScale;
|
warning.transform.localScale = bombScale;
|
||||||
@ -210,7 +203,6 @@ public class PldDogController : EnemyController
|
|||||||
private void SlashAnimationPlay()
|
private void SlashAnimationPlay()
|
||||||
{
|
{
|
||||||
SetAnimation(Slash);
|
SetAnimation(Slash);
|
||||||
SoundManager.Instance.PlaySFX(slashSound);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PatternClear()
|
private void PatternClear()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user