유니티 25

유니티 - 스프라이트(Sprite)가 겹칠 때 검정으로 나오는 문제 해결

오늘은 스프라이트(Sprite)가 겹칠 때검정으로 나오는 문제를 해결한 과정을 공유하고자 합니다. 사실 이 문제를 겪고 해결한 지는 꽤 시간이 지났었는데(대략 반년 전 처음 진행했던 프로젝트에서 겪었던 문제 ㄷㄷ)올 한 해 동안 진행해 왔던 프로젝트들을 정리하면서이 부분은 한번 작성해 봐도 좋겠다는 생각에 써봤습니다. 당시 내가 원했던 결과  / 완성본  문제 상황  플레이를 진행하고 애니메이션 효과가 재생되면 저렇게 겹치는 부분이 이상해졌습니다.  원인  기본적으로 Unity는 알파 블렌딩을 사용하는데,겹치면서 색상이 중첩되어 더 어둡게 보이는 현상이 발생한 것이었습니다. 해결 과정처음엔 Material을 만들어서 처리하는 방법을 찾아 시도했었는데 당시에는 입문한 지 얼마 안 되어 잘 몰랐을 때라 중간..

유니티 2024.12.16

유니티 에러 - 'ClassName' is missing the class attribute 'ExtensionOfNativeClass'!

간단하게 리팩토링을 하다가 마주한 에러!  처음엔 에러 문구를 클릭해도 아무것도 안 뜨길래 뭐지 싶었다.  원인  유니티 씬 Hierachy 에 MonoBehaviour를 상속받지 않는 오브젝트가 있으면 발생하는 문제 찾아보니 이전에 WaveDataManager라는 스크립트를 붙여두었다가수정하면서 MonoBehaviour를 안 쓰게 되었는데, 이때 에러가 발생한 거였다.   검색하니 바로 나와서 생각보다 간단하게 해결할 수 있었다. 휴..

유니티 2024.12.06

유니티 - 프로파일링을 해보자 #2 Memory 프로파일러

2024.12.04 - [유니티] - 유니티 - 프로파일링을 해보자 #1 Unity 프로파일러 지난 시간에 이어 오늘은 Memory 프로파일러 사용법을 정리하고자 합니다. 메모리 관리는 왜 해야 할까?기기마다 메모리 성능의 차이가 있습니다. 모바일은 PC와 달리 물리적 메모리만 사용 가능하며디스크를 통한 가상 메모리 확장이 불가능합니다.이는 OS가 메모리 관리를 엄격히 수행하며,과다 사용 시 강제 종료되는 상황이 발생할 수도 있다고 합니다. 다른 예로 Xbox One 본체는 포그라운드에서 실행되는 게임에 사용할 수 있는 최대 메모리가 5GB로 제한된다고 합니다. 따라서 게임을 개발함에 있어서타깃 기기에 알맞은 메모리 관리가 필요합니다.Memory Profiler Unity Profiler에서도 Memor..

유니티 2024.12.05

유니티 - 프로파일링을 해보자 #1 Unity 프로파일러

2024.12.02 - [유니티/2D] - 유니티 - 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보자 오늘은 프로파일러를 활용하여 프로파일 하는 법에 대해 정리 해보고자 합니다. 이전에 스프라이트 아틀라스에 대해 정리하면서 언급했었는데,당시 강의 자료에서 이미지가 어떻게 그려지는지 프로파일러를 사용하여 보여주시더군요. 보면서 신기하기도 하고, 사용법을 익혀두면 좋겠다는 생각에  프로파일러의 사용법과 언제 사용하는지 간단하게 작성해 봤습니다.Unity 프로파일러 Unity 프로파일러는 애플리케이션의 성능 정보를 알려주는 툴입니다. 보통 프로파일러로 얻은 정보를 활용하여어느 부분에서 문제가 발생하고 있는지 파악하기 위한 용도로 사용되는 듯합니다.(= 게임의 최적화를 위한 문제 파악 분석에 사용된..

유니티 2024.12.04

유니티 - 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보자

오늘은 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보고자 합니다. 프로젝트를 진행하면서 최적화를 위해UI를 스프라이트 아틀라스로 만들어 보는 게 어떻겠냐는 의견을 듣고 스프라이트 아틀라스가 뭔지, 어떻게 사용하는 건지 한번 정리해 봤습니다. 그 전에 아래의 글을 읽고 오시면 이해하는 데 도움이 될 겁니다. 2024.10.25 - [유니티/공통] - 유니티 - Batching에 대해 알아보자.(feat. Draw call, Set Pass Call, 아틀라스)  스프라이트 아틀라스(Sprite Atlas) 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋 왜 사용하나 ?Unity는 씬의 각 텍스처에 대해 드로우 콜을 발행하기에,단일 텍스처로 묶어 관리, 호출함으로써 하나의 드로우 콜을 발행시켜 ..

유니티/2D 2024.12.02

유니티 에러 : error cs 1061 '스크립트 명' does not contain a definition for '변수명' and no accessible extension method '변수명' accepting a first argument of type '스크립트 명' could be found (are you missing a using directive or an assembly reference?)

오늘은 프로젝트를 진행하면서 겪은 에러 해결 과정을 공유하고자 합니다. 프로젝트가 본격적으로 논의가 되면서에셋을 추가하고 나니 다음과 같은 에러가 발생했습니다.    에러가 난 코드를 아무리 봐도 문제가 없고,여러 에셋을 한 번에 추가하는 과정에서 충돌이 났나 싶어서지우고 다시 다운로드 해봐도 같은 현상이 발생했었습니다. error CS1061로 검색을 해보니 가장 상단에 뜨는 MS 공식 문서에서존재하지 않는 메서드를 호출하거나 클래스 멤버에 액세스하려고 할 때발생하는 문제라고 설명을 하더군요.  혹시나 에셋이 문제인 건가 싶어서 에셋 개발자 깃허브 주소 Issues를 뒤져보니 똑같은 현상을 겪고 있는 글을 찾았는데 해결 방법은 안 적혀 있었습니다.;; 당황했지만 계속 매달린 끝에 결국엔 해결했습니다. ..

유니티 2024.11.29

유니티 - 카메라와 컬링에 대해 알아보자 (feat. LOD)

2024.11.27 - [분류 전체보기] - 게임 그래픽스에 대해 알아보자 #1 (렌더링 파이프 라인) 오늘은 카메라와 컬링에 대해 정리해 보고자 합니다.Culling ? 3D 그래픽스에서 불필요한 렌더링을 제거하는 최적화 기술  컬링은 CPU 영역에서 대상을 체크하고,실제 잘리는 건 GPU 영역, 렌더링 파이프라인 단위에서 이루어진다고 합니다.  (엔진 단위에서의 컬링 설명) MVP Transformation(Vertex Transformation) 모델 공간 -> 월드 공간 -> 카메라 공간(View 공간)-> Projection Transform 공간으로변환 과정을 통해 3D 공간 객체를 2D 화면에 표시하는 과정을 말합니다.Frustum Culling카메라의 시야 범위(프러스텀) 밖의 오브젝트를 ..

유니티/공통 2024.11.28

DLL( Dynamic Link Library)에 대해 알아보자 (feat : PDB(Program Database), Assembly definition)

2024.11.21 - [분류 전체보기] - 유니티 - 디버깅을 해보자 (feat : 유니티 Debug, IDE 중단점 활용 법) 오늘은 DLL에 대해 알아보고자 합니다. 이전에 디버깅 글을 작성하면서 DLL에 관한 내용이 나오길래호기심에 찾아 정리해 봤습니다. DLL( Dynamic Link Library )? Library - 컴퓨터 프로그램이 사용하는 비휘발성 자원(함수, 데이터, 타입 )의 모임 DLL은 동적 링크 라이브러리로,여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리- MSDN(MicroSoft Developer Network) 문서 참고   DLL을 사용하면 뭐가 좋을까?1)일반 lib파일과 달리 메모리 관점에서 이점이 생긴다. =>여러 프로그램이 동시에 같은..

유니티/공통 2024.11.26

유니티 - Extension(확장 메서드)에 대해 알아보자

오늘은 Unity의 Extension(확장메서드)에 대해 알아보고자 합니다. 팀 프로젝트를 진행하면서 스치듯 들은 내용이 생각이 나서언제, 어떻게 사용하는 건지 한번 찾아서 정리해 봤습니다. 확장 메서드( Extension Methods )?Unity의 기존 클래스를 수정하지 않고 새로운 기능을 추가할 수 있는 프로그래밍 기법 원본 소스 코드 접근이 불가능한 클래스(예: Transform)에 기능 확장 시 유용하다.  사용법static 클래스에 정의하며 this 키워드로 구현 예시 코드 using UnityEngine;public static class TransformExtensions { // Transform 초기화 확장 메서드 public static void ResetTransform..

유니티/공통 2024.11.25

유니티 - Audio Mixer를 사용해보자 (+ 스크립트에서 불러올 때 주의할 점)

그동안 프로젝트를 진행하면서 사운드를 제대로 다룬 적이 없었는데어쩌다 보니 기회가 생겨 Audio Mixer를 처음 사용해 봤습니다. 사용하면서 겪었던 문제와 함께 간단하게 정리해 보고자 합니다. Audio Mixer는 프로젝트 창(화면 아래에 나오는 창, Assets 들어있는)에서우클릭하여 생성할 수도 있고, 윈도우를 통해서 생성 할 수도 있습니다.   생성하면 다음과 같은 아이콘의 Audio Mixer가 생깁니다.  내부 구조는 다음과 같습니다.  그동안 사운드를 다뤄보셨다면 Audio Sorce 컴포넌트를 연결하여 사용하셨을 겁니다. 내부를 자세히 보면 Output에 Audio Mixer Group이라고 되어 있는 부분 보이시나요.저 부분에 Audio Mixer를 연동하면 한 번에, 손쉽게 Audi..

유니티/공통 2024.11.20