using UnityEngine; public class MobShields : MonoBehaviour { eShieldType shieldType; public float rotateSpeed = 180f; // 초당 회전 각도 public void Set(MonsterTableData data) { transform.localEulerAngles = Vector3.zero; shieldType = data.e_ShieldType; switch (data.e_ShieldType) { case eShieldType.None: gameObject.SetActive(false); break; case eShieldType.Static: case eShieldType.Rotation: Make_Shield(data); break; } } void Make_Shield(MonsterTableData data) { gameObject.SetActive(true); int crash = data.n_NormalShieldCount; int noncrash = data.n_InvinityShieldCount; int index = 0; while (index < crash + noncrash) { var shield = DSUtil.Get_Clone("Mob/MobShield", transform, Vector3.one * 10000f); switch (index) { case 0: shield.transform.localPosition = Vector3.down * 2.5f; break; case 1: shield.transform.localPosition = Vector3.up * 2.5f; break; case 2: shield.transform.localPosition = Vector3.right * 2.5f; break; case 3: shield.transform.localPosition = Vector3.left * 2.5f; break; } shield.Set(index++ < crash, GetComponentInParent()); } } private void Update() { if (shieldType == eShieldType.Rotation) transform.Rotate(0f, 0f, rotateSpeed * Time.deltaTime); } }