적군 구현

This commit is contained in:
김도환
2026-04-18 17:30:41 +09:00
parent 00b52e8b79
commit aec5dfbcf6
7 changed files with 421 additions and 7 deletions

View File

@@ -1,9 +1,10 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class Player : MonoBehaviour
public class Player : LivingEntity
{
private Camera _camera;
private Queue<GameObject> _bulletPool = new Queue<GameObject>();
@@ -17,9 +18,12 @@ public class Player : MonoBehaviour
public float fireRate = 0.1f; // 총알 발사 간격 (0.1초마다 1발)
private float _fireTimer; // 발사 타이머
private bool _isShooting; // 발사 버튼을 누르고 있는지 여부
private SpriteRenderer _spriteRenderer;
void Start()
private void Start()
{
health = 20.0f;
_spriteRenderer = GetComponent<SpriteRenderer>();
_camera = Camera.main;
// 처음 클릭 시 즉시 발사되도록 타이머 초기화
@@ -40,7 +44,7 @@ public class Player : MonoBehaviour
private void FixedUpdate()
{
var readValue = InputManager.InputSystem.Player.Move.ReadValue<Vector2>();
var moveDir = new Vector3(readValue.x, readValue.y, 0);
var moveDir = new Vector3(readValue.x, readValue.y, 0).normalized;
transform.position += moveDir * (Time.fixedDeltaTime * moveSpeed);
backGround.transform.position = transform.position;
}
@@ -111,4 +115,21 @@ public class Player : MonoBehaviour
InputManager.InputSystem.Player.Click.canceled -= OnShootCanceled;
}
}
protected override void OnDamaged(float damage)
{
StartCoroutine(DamageEffect());
}
private IEnumerator DamageEffect()
{
var originalColor = _spriteRenderer.color;
var alphaEdited = _spriteRenderer.color;
alphaEdited.a = 0.5f;
_spriteRenderer.color = alphaEdited;
moveSpeed = 50;
yield return new WaitForSeconds(0.5f); // 0.1초 동안 유지
_spriteRenderer.color = originalColor; // 원래 색상으로 복원
moveSpeed = 20;
}
}