개인 프로젝트/개인학습

유니티 입문 (3D) - The Stack

Young_A 2025. 7. 22. 18:01

목차

    유니티 입문 (3D)

    강의 듣고 정리. 누락되는 부분 있을 수 있음.

     

    Lerp

    Linear Interpolation의 약자로, 두 값 사이를 일정한 비율로 선형 보간(Interpolation)하는 기능이다.

    유니티에서는 주로 Mathf.Lerp나 Vector3.Lerp는 시작 값과 끝 값 사이의 값을 t 비율(0~1)로 계산하여 반환한다.

    즉, 두 점 사이의 값을 추정할 때, 값이 일직선 형태로 변화한다고 가정하고, 그 사이에 있는 값들을 계산하는 방법이다.

    transform.position = Vector3.Lerp(transform.position, desiredPosition, StackMovingSpeed * Time.deltaTime);

     

    위와 같은 코드가 Update() 함수 내에 있으면, 계속해서 변화하는 transform.position과 목표치 사이에 속도와 시간에 맞춰 천천히 움직이게 되는 것이다.

    그래서 처음에는 조금 빨리 움직이다가 서서히 느려지는 듯한 효과가 보이는 것 같기도 하다. (내 동체시력 눈감아)

     

    이는 거리 값 뿐만 아니라, 천천히 변화하는 색 값에도 주어 색상 그라데이션을 연출 할 수도 있다.

    Color applyColor = Color.Lerp(prevColor, nextColor, (stackCount % 11) / 10f);

     

    위 코드와 같이 각 블럭들의 색 값을 선형 보간을 이용해 변경하면 아래 이미지와 같이 쌓이는 블럭 마다 컬러 값이 조금씩 변하게 된다.


    PlayerPrefs

    간단한 데이터를 영구적으로 저장하고 로드할 수 있는 기능을 제공한다.

    보통은 설정값이나 작은 크기의 데이터 (점수, 옵션 등)을 저장할 때 사용된다.

    운영 체제의 특정 위치에 데이터를 저장하며, 게임을 종료한 뒤에도 유지된다.

     

    문자열, 정수, 부동소수 형태의 데이터로 저장할 수 있다.

     

    운영체제 별로 데이터 저장 위치가 다르다.

     

    별도의 파일 관리 필요 없이 코드 몇 줄만으로 데이터를 저장하거나 불러올 수 있다.

     

    다만 암호화되지 않으므로 민감한 데이터를 저장하기에는 적합하지 않다.


    child 관련

    int childCount = this.transform.childCount; //transform 하위 오브젝트 갯수
    
    GameObject go = transform.GetChild(childCount - i).gameObject; //transform 컴포넌트의 자식 중 뒤에서부터 i번째 자식을 가져옴

    파티클 시스템

    게임 내에서 연기, 불꽃, 폭발, 빛, 눈, 비와 같은 시각적 효과(VFX)를 구현하는 데 사용되는 도구이다.

    작은 이미지 또는 메시(Particle)를 생성하고, 다양한 속성과 규칙에 따라 움직이거나 변형하여 복잡한 효과를 연출한다.


    포스트 프로세싱 (Post-Processing)

    게임에서 렌더링이 완료된 화면에추가적인 그래픽 효과를 적용하여 시각적으로 풍부한 화면을 만드는 기술이다.

     

    시각적 품질을 향상시키고 보정을 통해 감정과 분위기를 전달하는 등 다양한 효과를 조합하여 게임의 독특한 스타일과 분위기를 연출할 수 있다는 장점이 있다.

    하지만 추가적인 GPU 리소스를 요구하므로 성능저하를 유발할 수 있고, 과도한 사용으로 인해 시각적 혼란을 야기하거나, 여러 개의 Volume을 사용할 경우 우선순위를 설정해야 충돌을 방지할 수 있다는 단점도 있다.

     

    • 주요 기능
      • Bloom(블룸): 밝은 영역에서 빛이 번지는 효과를 추가하여 더 화려하고 빛나는 느낌을 연출한다.
      • Color Grading(색 보정): 화면 전체의 색상, 채도, 명도를 조정하여 특정 분위기를 연출한다.
      • Depth of Field(초점 효과): 특정 영역에만 초점을 맞추고 나머지 영역은 흐릿하게 처리한다.
      • Motion Blur(모션 블러): 빠르게 움직이는 물체 주변에 잔상을 남겨 더 자연스럽고 역동적으로 연출한다.
      • Ambient Occlusion(환경 광 차폐): 표면 간의 좁은 공간에서 빛이 닿지 않는 어두운 영역을 추가하여 더 사실적인 그림자를 표현한다.
      • Vignette(비네트): 화면 가장자리를 어둡게 하여 중앙에 집중도를 높이는 효과는 준다.
      • Chromatic Aberration(색수차): 렌즈의 왜곡 효과를 추가하여 화면 가장자리에 색 번짐을 연출한다.
      • Lens Distortion(렌즈 왜곡): 화면을 렌즈로 보는 것처럼 굴곡을 추가하여 독특한 시각적 효과를 만든다.

     

    '개인 프로젝트 > 개인학습' 카테고리의 다른 글

    유니티 입문 (2D) - TopDown  (0) 2025.07.23
    유니티 입문 (2D) - Flappy Plane  (0) 2025.07.21
    알고리즘  (0) 2025.07.08
    C# 객체 지향 프로그래밍  (0) 2025.07.06
    C# 프로그래밍 기초  (0) 2025.07.01