study/first_study/Assets/Scripts/PlayerSc/PlayerAttacks.cs
jh04010421 7bfe7619c2 윤지호 | 유니티 연습
20226.01.26 수정 (공격 이펙트 구현 완료, 공격시 이동정지 수정필요)
2026-01-26 17:52:26 +09:00

63 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine.InputSystem;
[System.Serializable]
public class Weapons
{
public bool isUseable; // 공격 가능 여부
public bool isUse; // 공격중 여부
public PlayerAttacks.Types WeaponType; // 어느 무기인가?
public int WeaponLevel;
public int atkCnt; // 공격 횟수
public float WeaponDmg; // 무기 데미지
public GameObject weaponObj;
public string animTrigger; // 애니메이션 실행 트리거 이름
}
public class PlayerAttacks : MonoBehaviour
{
private Animator animator;
bool issAtk = false; // 약공 플래그
bool isaAtk = false; // 강공 플래그
public Weapons[] weaponInfos;
Weapondata weaponBase;
PlayerController2 playerController;
public enum Types {scissor, needle, lighter};
void Start()
{
//Animator 가져오기
playerController = GetComponent<PlayerController2>();
weaponBase = GetComponent<Weapondata>();
}
void Update()
{
}
public IEnumerator ableAtk(int weaponIndex)
{
Debug.Log(" s 버튼 눌림! ");
weaponInfos[weaponIndex].weaponObj.SetActive(true);
animator = weaponInfos[weaponIndex].weaponObj.GetComponent<Animator>();
animator.SetTrigger(weaponInfos[weaponIndex].animTrigger);
yield return new WaitForSeconds(weaponBase.atkDuration);
weaponInfos[weaponIndex].weaponObj.SetActive(false);
yield return new WaitForSeconds(weaponBase.afterdelaytime); // 후 딜레이
weaponInfos[weaponIndex].isUse = false;
}
}