
🕹️ 실습 (CombatSystsemGame)애니메이션레이어 생성 후 Weight 1로(이전 실습과 다르게 콜라이더를 코드로 활성화, 비활성)public class CombatController : MonoBehaviour{ MeeleFighter meeleFighter; private void Awake() { meeleFighter = GetComponent(); } private void Update() { if (Input.GetMouseButtonDown(0)) { meeleFighter.TryAttack(); } }}public enum AttackState{ Idle, Wi..

🕹️ 실습 (CombatSystsemGame)카메라public class CameraController : MonoBehaviour{ [SerializeField] Transform followTarget; [SerializeField] float rotationSpeed = 2f; [SerializeField] float distance = 5; [SerializeField] float minVerticalAngle = -45; [SerializeField] float maxVerticalAngle = 45; [SerializeField] Vector2 framingOffset; float rotationX; float rotationY; private..

🕹️ 실습 (3D Combat)UI 캔버스 크기 맞추기보스 HP UI// HP_Mino.cspublic float hp;public float hp_Cur;public Image hpBar_Front;public Image hpBar_Back;public GameObject mino;string deathStr = "death";void Start(){ hp_Cur = hp;}void Update(){ SyncBar();}void SyncBar(){ hpBar_Front.fillAmount = hp_Cur / hp; if (hpBar_Back.fillAmount > hpBar_Front.fillAmount) { hpBar_Back.fillAmount = Mathf..

🕹️ 실습 (3D Combat)Attack Collider애니메이션 녹화버튼을 이용해 공격 콜라이더를 공격 모션에만 활성화 시킴// Col_PlayerAttk.cspublic Combo combo;public string type_Attk;int comboStep;public string dmg;public TextMeshProUGUI dmgText;private void OnEnable() // 오브젝트 활성화되면{ comboStep = combo.comboStep;}private void OnTriggerEnter(Collider other){ if (other.CompareTag("HitBox_Enemy")) { dmg = $"{type_Attk} {comboStep}..

💻 Unity최적화C# 코드 최적화기법설명예시1. GetComponent 캐싱GetComponent는 비용이 크므로 반복 호출하지 말고 변수에 저장private Rigidbody rb;\\nvoid Start() { rb = GetComponent(); }2. Update 최소화매 프레임 실행되는 Update() 함수 내 로직은 최소화void Update() { if (needToUpdate) DoWork(); }3. Invoke/Coroutine 적절 활용타이머나 반복 작업에 InvokeRepeating 또는 Coroutine 사용StartCoroutine(MyRoutine());4. Find 함수 사용 지양GameObject.Find, FindObjectOfType는 느리므로 미리 참조 저장[Ser..