유니티는 주로 두 가지 방식을 사용하는 거 같다.카멜 표기법과, 파스칼 표기법 카멜 표기법 (Camel Case)주로 private 변수명에 사용한다.private int testValue;private float damage;private float moveSpeed; 파스칼 표기법 (Pascal Case)public, 열거형, 클래스, 메서드에 사용한다.public enum WeaponType{ Sword, Gun}public class BaseController{ public int PlayerDamage; public string PlayerName; private float speed; public void Spawn() { // ....
Unity
Dictionary란?Dictionary는 제네릭 컬렉션으로, 키와 값의 쌍으로 데이터를 저장한다.각 키는 유일하며, 값을 빠르게 검색할 수 있다. 장점빠른 검색: 해시 테이블 기반으로, 키를 이용한 빠른 검색이 가능하다.타입 안전성: 제네릭을 사용하여 컴파일 타임에 타입 검사를 제공한다.유연성: 다양한 타입의 키와 값을 사용할 수 있다.단점메모리 사용: 메모리 사용량이 비교적 크다.복잡성: 초기화와 사용법이 다소 복잡할 수 있다.using System.Collections.Generic;using UnityEngine;public class DictionaryExample : MonoBehaviour{ void Start() { Dictionary myDictionary = ne..
Serializable이란?Serializable은 C#의 특성(Attribute) 중 하나로, 특정 클래스나 구조체를 직렬화할 수 있도록 만든다.직렬화(Serialization)는 객체를 저장하거나 전송할 수 있는 형식으로 변환하는 과정이다.Unity에서는 이 과정을 통해 게임 데이터를 저장하거나 인스펙터에서 편집할 수 있게 된다. 왜 Serializable을 사용하는가?Unity 에디터의 인스펙터 창에서 직렬화된 데이터는 사용자 친화적인 방식으로 편집할 수 있다. Serializable 예제Serializable이 어떤 역할을 하는지 알아보자.우선 클래스를 하나 만든다 예제는 ItemInfo로 사용public class TestScript : MonoBehaviour{ public ItemInf..
1. Random.RangeRandom.Range는 주어진 범위 내에서 랜덤 한 값을 반환한다.이 함수는 파라미터에 int와 float 같이 자료형에 대해 다르게 동작한다.// min 이상 max 미만의 값을 반환한다.int randomInt = Random.Range(0, 10); // 0 ~ 9// min 이상 max 이하의 값을 반환한다.float randomFloat = Random.Range(0f, 10f); // 0.0 ~ 10.0 2. Random.valueRandom.value는 0.0 이상 1.0 이하의 랜덤 한 값을 반환한다.float randomValue = Random.value; // 0.0 ~ 1.0 3. Random.insideUnitCircleRandom.insideUnitC..
SMB와 FSM 어떤 것이 더 나을까?유니티(Unity)로 게임을 개발할 때, 캐릭터와 적의 상태를 관리하는 것은 매우 중요한 요소다.이를 위해 많이 사용되는 두 가지 접근 방식이 있다.SMB (State Machine Behaviors)와 FSM (Finite State Machine)이다.이 두 가지 방법을 비교하여 각각의 장단점과 어떤 상황에서 더 적합한지 알아보려고 한다. SMB (State Machine Behaviors)SMB는 유니티의 애니메이터 상태 머신에서 사용되는 스크립트 컴포넌트로, 각 애니메이션 상태에 특정한 동작을 추가할 수 있다. 이를 통해 애니메이션 상태 전환과 함께 필요한 로직을 실행할 수 있다.장점유니티와의 통합SMB는 유니티의 애니메이터 시스템과 자연스럽게 통합이 되기때문..
Animator.StringToHash유니티(Unity)에서 애니메이션 상태를 제어할 때 Animator.StringToHash 함수를 사용하면 성능을 최적화할 수 있다.이 함수는 문자열을 정수 해시 값으로 변환하는 역할을 한다. 왜 StringToHash를 사용하는가?유니티의 애니메이터(Animator)는 상태 전환 시 문자열을 사용하여 상태를 식별한다.문자열 비교는 계산 비용이 크기 때문에, 이를 해시 값으로 변환하여 비교하는 것이 더 효율적이다.Animator.StringToHash 함수는 문자열을 해시 값으로 변환해 이러한 비용을 줄여준다. 사용 예시다음과 같이 파라미터가 있으면 이렇게 트리거를 호출할텐데animator.SetTrigger("Idle");animator.SetTrigger("Mov..