study/first_study/Assets/Scripts/PlayerSc/PlayerAttacks.cs

98 lines
2.7 KiB
C#
Raw Normal View History

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 WeaponStat
{
public WeaponData data; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public WeaponStat(WeaponData data)
{
this.data = data;
}
}
public class PlayerAttacks : MonoBehaviour
{
[Header("Nano Weapons")]
[SerializeField] private List<WeaponData> nanoWeaponList;
[Header("Tera Weapons")]
[SerializeField] private List<WeaponData> teraWeaponList;
[SerializeField] private WeaponHitbox Hitbox;
//[SerializeField] private WeaponHitbox nanoHitbox;
//[SerializeField] private WeaponHitbox teraHitbox;
// <20><>Ÿ<EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ƶ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
private List<WeaponStat> nanoStats = new List<WeaponStat>();
private List<WeaponStat> teraStats = new List<WeaponStat>();
private Animator animator;
public bool IsAnyWeaponInUse = false; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE>
PlayerController playerController;
[SerializeField] private GameObject nano;
[SerializeField] private GameObject tera;
public enum Types {scissor, needle, lighter};
void Start()
{
//Animator <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
playerController = GetComponent<PlayerController>();
foreach (var data in nanoWeaponList)
nanoStats.Add(new WeaponStat(data));
foreach (var data in teraWeaponList)
teraStats.Add(new WeaponStat(data));
}
void Update()
{
}
public IEnumerator ableAtk(int weaponIndex, string atkType, bool isnano)
{
// <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>Ϳ<EFBFBD> <20>´<EFBFBD> <20><><EFBFBD>Ȱ<EFBFBD> <20><>Ʈ<EFBFBD>ڽ<EFBFBD> <20><><EFBFBD><EFBFBD>
List<WeaponStat> currentList = isnano ? nanoStats : teraStats;
WeaponHitbox currentHitbox = Hitbox;
/*if (weaponIndex >= currentList.Count)
{
Debug.LogError($"{weaponIndex}<7D><> <20><><EFBFBD><EFBFBD> <20><>");
IsAnyWeaponInUse = false;
yield break;
}*/
WeaponStat currentStat = currentList[weaponIndex];
Debug.Log($"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: {currentStat.data.frontdelaytime}<7D><>");
yield return new WaitForSeconds(currentStat.data.frontdelaytime);
animator = (isnano) ? nano.GetComponent<Animator>() : tera.GetComponent<Animator>();
Debug.Log(atkType);
animator.SetTrigger(atkType);
currentHitbox.Setup(currentStat, atkType);
currentHitbox.gameObject.SetActive(true);
yield return new WaitForSeconds(currentStat.data.atkDuration);
currentHitbox.gameObject.SetActive(false);
Debug.Log($"<22>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: {currentStat.data.afterdelaytime}<7D><>");
yield return new WaitForSeconds(currentStat.data.frontdelaytime); // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IsAnyWeaponInUse = false;
}
}