
🕹️ 실습 (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..

Sword 스킬을 구현할 때 따라가기에 바빠서 수업중엔 제대로 이해하지 못했다.. 다시 여기에 정리하면서 이해했다…💻 UnityNetcodeUnity에서 멀티플레이어 게임을 개발할 때 사용하는 네트워킹 솔루션으로 로컬에서 동작하는 서버-클라이언트 구조를 쉽게 구현할 수 있게 한다NetworkManager서버와 클라이언트, 연결 관리NetworkObject네트워크에서 동기화되는 오브젝트NetworkBehaviour네트워크 동작을 담당하는 스크립트ServerRPC클라이언트 → 서버 호출 함수ClientRPC서버 → 클라이언트 호출 함수Ownership오브젝트의 주인(Owner) 개념🕹️ 실습 (Netcode)https://assetstore.unity.com/packages/essentials/start..

🕹️ 실습 (2D 횡스크롤 스테이트머신)Skillpublic class SkillManager : MonoBehaviour{ public static SkillManager Instance; public DashSkill dash { get; private set; } public CloneSkill clone { get; private set; } public SwordSkill sword { get; private set; } private void Awake() { if (Instance != null) { Destroy(Instance); } else { Inst..

🕹️ 실습 (2D 횡스크롤 스테이트머신)Attack// Entity.cs[Header("Collision Info")]public Transform attackCheck;public float attackCheckRadius;protected virtual void OnDrawGizmos(){ Gizmos.DrawWireSphere(attackCheck.position, attackCheckRadius);}public virtual void TakeDamage(){ Debug.Log($"{gameObject} gets damage");}// PlayerAnimationTriggers.csprivate void AttackTrigger(){ Collider2D[] colliders = P..