using System.Collections; using System.Collections.Generic; using System.Linq; 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; public bool IsAnyWeaponInUse => weaponInfos.Any(w => w.isUse); // ¹è¿­¿¡ trueÀÎ °ªÀÌ Çϳª¶óµµ ÀÖ´ÂÁö È®ÀÎ public Weapons[] weaponInfos; Weapondata weaponBase; PlayerController playerController; public enum Types {scissor, needle, lighter}; void Start() { //Animator °¡Á®¿À±â playerController = GetComponent(); weaponBase = GetComponent(); } void Update() { } public IEnumerator ableAtk(int weaponIndex) { Debug.Log(" s ¹öư ´­¸²! "); weaponInfos[weaponIndex].weaponObj.SetActive(true); animator = weaponInfos[weaponIndex].weaponObj.GetComponent(); 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; } }