코드 및 공부 56

if문을 어떻게 쓰는지에 대한 생각

유니티 버전 - 2022.3.17f1     목차if(isRun == false), if(! isRun ),  if(isRun != true)if(isRun == true), if(isRun)결론     if(isRun == false), if(! isRun),  if(isRun != true)먼저 bool값은 달리기를 하는 상태와 걷는 상태 두가지만을 나타낸다고 생각하여보겠습니다세 가지 모두 ~~~의 반대인 경우, ~~~가 아닌 경우일때 실행되도록 하는 문장입니다이때 논리의 흐름을 살펴보자면 3단계를 거쳐야합니다if(isRun != true){ // 내부 로직}1. 코드를 읽고 의미를 파악함2. Run의 반대일때 호출이 되는구나3. 그럼 Run의 반대인 Walk일때 내부 로직이 실행되는구나     if..

게임 에셋 판매 사이트

유니티 버전 - 2022.3.17f1     목차gamedevmarketitch.iocraftpix     gamedevmarket 험블 번들에서 많은 양의 에셋을 묶음 할인 판매할때 구매하시면 됩니다(이것저것 들어있는 느낌)더보기https://www.gamedevmarket.net/ Game Assets for Indie Developers |GameDev Market is a marketplace for high quality, affordable 2D, 3D, GUI & Audio game assets, handcrafted by talented creators around the world.www.gamedevmarket.net     itch.io리소스 없이 개발하는것이 힘들다면 위와 마찬가지로..

OnValidate()을 이용한 SO 데이터 관리

유니티 버전 - 2022.3.17f1     목차OnValidate()ValidateCheckItemCode결과     OnValidate()유니티에서 제공하는 이벤트 함수이고, 인스펙터 창에서 스크립트 컴포넌트의 속성을 변경할 때 호출됩니다관리하는 ScriptableObjectAssets이 많아질수록(이하 SO), 값을 빼먹거나 관리되지 못하는 SO 내의 데이터가 발생할 수 도 있습니다, 에디터 환경에서 OnValidate()를 이용하여 관리해보도록 하겠습니다   데이터의 일부만 가져왔습니다, 대표격으로 itemCode가 제대로 입력되어있는지 확인하기 위하여 아래와 같이 코드를 작성합니다public int itemCode;#if UNITY_EDITOR private void OnValidate()..

Instantiate시 오브젝트가 Addtive씬에 생기는 문제

유니티 버전 - 2022.3.17f1     목차Instantiate시 오브젝트가 Addtive씬에 생기는 문제     Instantiate시 오브젝트가 Addtive씬에 생기는 문제 아래 Hierarchy를 보면 InGame(Clone)은 InGame씬에 정상적으로 생겼지만 InGame오브젝트가 만든 PlayerInfomationPopup(Clone)는 Farm씬에 생겼습니다, 이렇게되면 씬을 이동할때 Farm 씬이 언로드되고 다른 씬이 켜졌을때 팝업이 사라지게되어 곤란해질 것 입니다   이것을 해결하기 위해 간단하게 스크립트를 작성해줍니다제가 사용하는 씬은 메인 씬위의 다른 씬을 계속 해서 교체해주는 방식입니다, 그리고 빌드 인덱스는 Title이 0, 메인 씬이 1이기 때문에 빌드상의 첫번째인 InG..

유니티에서 픽셀 폰트를 TMP 폰트 에셋으로 만들기

유니티 버전 - 2022.3.17f1     목차폰트 설정Font Asset CreatorAtlas     폰트 설정폰트 사이즈는 다운받으신 곳에서 지정해준 크기를 사용하거나 파일을 끌어왔을때 지정되어있던 사이즈를 사용합니다폰트의 인스펙터에서 Rendering Mode를 Hinted Raster로 바꿉니다폰트의 이름(다운로드 받은 폰트.ttf)은 영어로 지정합니다언급하지 않은 것은 사진을 따라가면 됩니다     폰트 설정해당 경로에 들어가 Font Asset Creator를 켜줍니다   Render Mode를 확인하고 Generate Font Atlas를 클릭합니다   생성 완료 후 저장 해줍니다Excluded characters가 0이 되어야 합니다, 만약 저 자리가 0을 넘어간다면 Atlas Reso..

씬의 이벤트 실행 순서(Awake, Start 이외)

유니티 버전 - 2022.3.17f1     목차RuntimeInitializeOnLoadMethodSceneManager.sceneLoaded전체 정리(실행 순서)     RuntimeInitializeOnLoadMethod먼저 RuntimeInitializeOnLoadMethod 입니다, 해당 어트리뷰트를 사용하는 메서드는 반드시 스태틱이여야합니다, 자세한 설명은 공식문서를 참고 바랍니다, 실행순서는 가장 아래에 기술하겠습니다   더보기 Unity - Scripting API: RuntimeInitializeOnLoadMethodAttributeRuntimeInitializeOnLoadMethodAttribute class in UnityEngine / Inherits from:Scripting.Pr..

Application.dataPath와 Application.persistentDataPath

유니티 버전 - 2022.3.48f1     목차Application.dataPath 와 Application.persistentDataPathPath.Combine()와 문자열 연산+      들어가며파일 경로나 디렉터리를 다룰 때, Application.dataPath와 +를 이용하여 경로를 연결하는 방법은 흔하게 사용됩니다Application.persistentDataPath와 Path.Combine과 비교하여 장단점과 메모리 사용량, 성능 차이를 다뤄보겠습니다     Application.dataPath 와 Application.persistentDataPath위의 둘은 다른 방식이지만 게임 데이터 파일에 접근하기 위한 경로를 반환합니다, 하지만 둘의 목적이 다르고 Application.dataP..

Cinemachine과 Pixel Perfect Camera

유니티 버전 - 2022.3.17f1     목차Lens -> Ortho SizeCinemachine 설정Camera 설정     Lens -> Ortho Size16 PPU의 스프라이트를 이용하고, 16:9 비율을 사용한다고 가정하겠습니다 A는 Ortho Size입니다, 스크린의 1/2 크기를 나타냅니다B는 세로 픽셀 개수 입니다, 현재 270 픽셀을 보여주고자 합니다C는 가로 픽셀 개수 입니다, 현재 16:9 비율의 픽셀을 보여주고자 합니다 A를 구하기위해서는 먼저 화면에 보여주고싶은 픽셀의 개수를 생각해봐야합니다, 세로로 270픽셀을 보여주는 기준입니다 화면의 전체 높이(B)는 270이고, 270 = X * 16 일 것입니다 X의 값을 구해보면 16.875라는 값이 나오고, 자연스럽게 A(Ortho..

Debug

유니티 버전 - 2022.3.48f1     목차Debug 클래스자주 사용되는 Debug마치며     Debug 클래스Debug 클래스는 Unity에서 디버깅을 위한 다양한 기능을 제공하는 정적 클래스입니다게임 개발 중 발생하는 문제를 추적하고, 게임의 상태를 확인하며, 코드 실행 중의 정보 출력을 용이하게 해줍니다개발을 할때 Debug 클래스를 이용하여 다양한 로그 메시지를 출력할 수 있으며, 이를 통해 게임의 로직을 분석하고 버그를수정하는 데 도움을 받을 수 있습니다 아래에는 Debug. Log / LogWarning / LogError / Assert / DrawRay에 대하여 다루고 있습니다    자주 사용되는 Debug Debug.Log게임 실행 중 일반 정보를 출력할 때 사용합니다, 게임의 상..

콘솔 창(Console)

유니티 버전 - 2022.3.48f1     목차콘솔 창마치며     콘솔 창Unity의 콘솔 창은 게임 개발 중 디버깅과 문제 해결을 위해 필수적인 도구입니다 로그, 경고, 오류를 관리하고, 메시지를 필터링 및 검색할 수 있는 기능을 통해 게임의 실행 상태를 쉽게 확인하고, 발생하는 문제를 신속하게 해결할 수 있습니다  콘솔 창을 살펴보겠습니다   Clear먼저 Clear입니다, 해당 버튼을 누르면 콘솔창의 메시지들을 모두 지웁니다아래 옵션을 이용하여 해당 동작 수행시 자동적으로 Clear 해줍니다    Collapse반복해서 발생하는 메시지를 모두 표시하는 대신 첫번째 인스턴스만 보여줍니다    Error PauseDebug.LogError을 스크립트에서 호출할 때마다 재생을 일시 정지 합니다   검..