🧩 Animator 해시값으로 최적화하기
- Animator에서 문자열로 비교하는 것보다 StringToHash를 통해 미리 계산된 int 값을 사용하는 편이 성능상 유리하다.
private static readonly int IsMoving = Animator.StringToHash("IsMove");
public void Move(Vector2 obj)
{
animator.SetBool(IsMoving, obj.magnitude > .5f);
}
🧩Expression-bodied member(표현식 본체 멤버, Expression-bodied Property)
- 다음 두 코드는 같은 의미를 가진다.
public float MaxHealth => statHandler.Health;
public float MaxHealth
{
get { return statHandler.Health; }
}
// 보완된 형태는 다음과 같다.
public float MaxHealth => statHandler?.Health ?? 0f;
// 삼항연산자로도 표현할 수 있다.
public float MaxHealth => statHandler != null ? statHandler.Health : 0f;
🧩 Unity 패키지 내보내기 팁
- 코드 네임스페이스를 나누고 .unitypackage로 내보내면 추후 프로젝트별 관리가 쉬워진다.
- 단, 패키지를 임포트해도 의존 패키지(ex. TextMeshPro)는 자동 설치되지 않는다.
🧩 타일맵 경계 최적화
타일맵 편집 후 Tilemap → Compress Tilemap Bounds를 눌러주면 실제 타일이 배치된 범위만큼만 경계를 최적화할 수 있다.
📌 애니메이션 이벤트 추가 방법
- 애니메이션 Timeline에서 특정 프레임에 이벤트를 추가하여, 해당 시점에 원하는 함수를 호출할 수 있다.
- 예를 들어, 타격 모션 중간에 Attack() 함수를 호출할 수 있다.
- 💡 함수는 public void FunctionName() 형태로 MonoBehaviour 스크립트에 정의해야 하고, Animator 가 연결된 GameObject에 해당 스크립트가 부착되어 있어야 한다.
📌 다양한 레이캐스트 활용법 (Ray, Box, Sphere)
📌 Raycast
Physics.Raycast(origin, direction, out hit, maxDistance);
📌 BoxCast
Physics.BoxCast(center, halfExtents, direction, out hit, orientation);
📌 SphereCast
// origin: 구체의 시작 중심 위치, hit: 충돌된 정보를 담을 RaycastHit 구조체
Physics.SphereCast(origin, radius, direction, out hit, maxDistance);
- 각 캐스트마다 적절한 물리 구조와 상황에 맞게 활용해야 한다. 특히 충돌 범위를 넓게 보거나, 정밀하게 감지할 때 차이가 크다.
'Programming > Unity 정보, 기능' 카테고리의 다른 글
| Unity 간단 기능 정리 모음 #7 (3) | 2025.08.14 |
|---|---|
| Unity 기능 - Rigidbody.AddForce() 정리, ForceMode 별 차이와 활용법 (2) | 2025.07.28 |
| Unity 기능 - FindObjectOfType 호출 시점 (0) | 2025.07.23 |
| Unity 기능 - transform.Find() 사용 이유와 구조 이해 (3) | 2025.07.23 |
| Unity 기초 개념 정리 모음 #5 (1) | 2025.07.23 |
