[Unity] System.Obsolete란?

Unity 2023. 3. 25. 13:38
  • System.Obsolete는 사용되지 않는 메서드 또는 클래스를 표시하는 데 사용되는 어트리뷰트(Attribute)입니다.
  • 이 어트리뷰트는 더 이상 사용되지 않는 메서드 또는 클래스에 적용됩니다.
  • Obsolete 어트리뷰트를 사용하여 더 이상 사용되지 않는 메서드 또는 클래스를 표시하면, Unity의 에디터 또는 콘솔에서 경고 메시지가 표시됩니다.
  • 이를 통해 사용자가 해당 메서드 또는 클래스를 사용하지 않도록 유도하고, 대신 새로운 API를 사용하도록 안내할 수 있습니다.

블로그 이미지

RIsN

,

기본

  1. Look At Constrait을 사용

간단 확인

  1. Head Bone에 Look At Constrait을 설치
  2. 마우스 타깃으로 할 목표 오브젝트를 제작 후에 해당 Constrait에 타깃으로 적용
    • 움직임을 보면서 회전 등 미세 조정
  3. 목표 오브젝트가 마우스를 따라 다니도록 처리

블로그 이미지

RIsN

,

기본: 아래 블로그의 Punch 부분 확인

유니티 - UI 이미지에 구멍뚫기 | Rito15

 

유니티 - UI 이미지에 구멍뚫기

Mask

rito15.github.io

추가적으로 마티리얼 속성에 관한 확인

  1. Tint: Tint는 Material의 기본 색상을 조정하는 데 사용됩니다. 이 값을 변경하면 Material의 색상이 변경됩니다.
  2. Stencil Comparison: 스텐실 비교(Stencil Comparison)는 스텐실 테스트(Stencil Test)를 수행하기 전에 사용되는 비교 함수를 정의합니다. 스텐실 테스트는 스텐실 버퍼(Stencil Buffer)에 적용되는 것으로, 스텐실 버퍼에는 오브젝트의 선택적인 렌더링이나 후처리 효과에 사용되는 정보가 저장됩니다.
  3. Stencil ID: 스텐실 ID(Stencil ID)는 스텐실 테스트에서 사용되는 ID입니다. 이 값은 다른 오브젝트에서 사용되는 것과 겹치지 않아야합니다.
  4. Stencil Operation: 스텐실 작업(Stencil Operation)은 스텐실 테스트가 성공하면 스텐실 버퍼에 쓰일 작업을 정의합니다. 예를 들어, 스텐실 버퍼에 값을 쓰거나, 스텐실 버퍼에서 값을 읽어와 변경하는 등의 작업을 수행할 수 있습니다.
  5. Stencil Read Mask: 스텐실 읽기 마스크(Stencil Read Mask)는 스텐실 테스트에서 사용되는 비트 마스크입니다. 이 값은 스텐실 버퍼에서 읽어온 값을 마스킹하는 데 사용됩니다.
  6. Color Mask: 색상 마스크(Color Mask)는 Material에서 렌더링하는 색상 채널을 지정하는 데 사용됩니다. 예를 들어, 색상 마스크가 'RGB'로 설정되면 Material은 렌더링할 때 빨간색, 초록색, 파란색 채널을 모두 사용합니다.
  7. Use Alpha Clip: 알파 클리핑(Alpha Clipping)은 Material에서 알파 값을 기반으로 텍스처를 제거하는 데 사용됩니다. Use Alpha Clip 옵션을 사용하면, 알파 값이 특정 값 이하인 픽셀은 렌더링되지 않습니다. 이를 통해, 일부 오브젝트를 불투명하게 만들거나, 불필요한 부분을 제거할 수 있습니다.

블로그 이미지

RIsN

,

5줄 요약

  • Unity는 게임 개발 도구로서, 2D 및 3D 게임을 만드는 데 사용됩니다.
  • Unity는 쉽고 직관적인 사용자 인터페이스와 대부분의 플랫폼에서 실행 가능한 크로스 플랫폼 기능을 제공합니다.
  • Unity는 C# 언어를 사용하여 개발되며, 게임 오브젝트, 스크립트, 애니메이션 등의 요소를 관리합니다.
  • Unity Asset Store는 Unity 개발자가 사용할 수 있는 다양한 에셋(소스 코드, 모델, 사운드 등)을 제공합니다.
  • Unity는 대규모 게임 회사부터 개인 개발자까지 모든 레벨의 개발자들이 사용하는 인기 있는 게임 개발 도구입니다.

추가 내용

경험

블로그 이미지

RIsN

,

카메라를 선택 후: Ctrl + Shift + F

블로그 이미지

RIsN

,

코드

  • enum 데이터
private enum CharacterVoice
{
    LJ8 = 15,
    POKI = 16,
    CHARASI = 65
}
  • 실행 코드
// :: enum 안의 모든 데이터를 가져옴
var values = System.Enum.GetValues(typeof(CharacterVoice));
// :: 데이터의 길이 만큼 랜덤 획득
int random = Random.Range(0, values.Length);
// :: 해당 enum의 수치값을 획득
Debug.Log((int)values.GetValue(random));

// >> 결과: 15 or 16 or 65

 

블로그 이미지

RIsN

,

코드

string textData = "들어갈 내용";
GUIUtility.systemCopyBuffer = textData;

참고

  • Unity Editor에서의 사용: 성공
  • Web GL 빌드에서의 사용: 실패
  • Window 빌드에서의 사용: 실패
    • 이 부분은 조금 더 확인해야 합니다.
블로그 이미지

RIsN

,

참고: https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions

  • C# Roslyn을 기본 적용
  • 클래스
    • 클래스 내부 변수: _(언더 스코어) + Camel Case
      • 클래스 내부 정적(Static) 변수: s_(언더 스코어) + Camel Case
    • 클래스 외부 변수: Pascal Case
    • 클래스 메소드: Pascal Case
      • 메소드 내 파라미터: _(언더 스코어) + Camel Case
  • 유니티 내부 animation 파일: Snake Case
  • 데이터(JSON) 파일: Snake Case
  • 리소스 파일: Snake Case
블로그 이미지

RIsN

,

문제: Cinemachine을 사용할 때 Virtual Camera를 캐릭터에서 오브젝트(모닥불)로 변경할 때 흔들림이 발생

  • 원인
    • Follow와 LookAt에 오브젝트를 넣을 때 해당 카메라가 따라가고, 바라보며 흔들리는 현상
  • 제약 및 현 상황
    • 한 번만 발생
    • Follow와 LookAt 둘 다 써야 조금 더 보기 좋은 상황, 즉, 둘 다 써야 함
    • Delay를 넣으면 미묘하게 느낌이 안 좋음
  • 해결
    • Follow와 LookAt을 따로 메소드로 변경
    • 우선도를 바꾸기 전에 전 단계(현재 케이스는 설치 결정 팝업 화면)에서 이미 해당 메소드를 실행
      • (기존 변경) 현재 Instantiate될 오브젝트를 카메라가 따라가고 있는데, 좌표 타일 자체를 따라가도록 변경
  • 추가
    • 오브젝트가 움직일 때(위치가 바뀔 때) Follow와 LookAt도 그대로 놔둔 채로 움직이면 흔들림이 발생
      • 어차피 방향이 정해졌다면 Follow만 처리해서 위치 변경
블로그 이미지

RIsN

,

목표: 설치할 때 해당 오브젝트가 투명으로 보이도록 하는 처리

  • 아래와 같이 Unlit에서 Transparent를 사용 후 투명도 변경

블로그 이미지

RIsN

,