전체 글 149

2025 01 09 TIL

여차저차 유저테스트 배포를 앞두고 있다. 이제부턴 기능보단 버그 수정 및 유저 편의성 등을 수정하여야하는데  추가구현을 하려던 요소들이 대부분 제대로 구현을 못하고 버려지게 된 것이 아쉽다.모든 과정이 끝나고 나서 개인적으로 시간할애하여 구현을 해보고 싶다.  내일은 빌드 후 총 용량의 95퍼센트가 텍스쳐가 잡어먹어서 텍스쳐 압축을 진행하는 듯 하다. 설문조사 질문을 생각해두고 아래 문서를 읽어보면서 오늘 하루를 마무리한다. 튜터님께서 제공해주신 문서https://docs.unity3d.com/kr/2021.2/Manual/class-TextureImporterOverride.html 플랫폼별 권장, 기본 및 지원 텍스처 압축 포맷 - Unity 매뉴얼이 페이지는 다음에 관한 정보를 제공합니다.docs...

2025 01 08 TIL

기존에 퍼즐을 시작하는 지점을 태그로 작동시켰는데 레이어마스크 변수를 두고 레이어마스크에 해당하는 객체가 통과할 때로 변경하였다.이유는 객체를 판별하는 트리거나 레이 등이 대부분 레이어를 통한 판별로 이루어지기에 통일성을 위함이다. 과정에서 조건문에 if(other.gameobject.layer == layermask)와 같이 조건을 썻는데 작동하지 않아 살펴보았다. 이전 과정에서 레이를 사용하는 것을 처음 배웠을 때 레이어마스크를 활용하였다는 것이 기억나서 다시 살펴보니 적절하게 사용하고 있지 않았다는 것을 알았다. 현재 Player 라는 레이어는 3인 인덱스를 사용하고있는데 LayerMask 변수는 레이어를 비트연산자로 1 if(1따라서 트리거로 검출된 layer에 1 이진수를 제대로 사용한 것이 얼..

2025 01 07 TIL

두 퍼즐을 진행 상황을 어떻게 동기화할지가 고민이 많이 된다. 일단 이 부분은 내가 생각하였을 때 퍼즐 타일을 움직일 때마다 동기화를 하는 방식으로 진행하여야 좋을 것 같은데 뭔가 머리속에서 제대로 처리가 안되는 느낌이다. 비슷한 예제 퍼즐을 찾아서 코드를 분석해보는데도 좀 많은 시간이 걸린다.알고리즘 능력을 키우는 방법에 대해서는 정말 많은 사람들에게 물어보았지만 결국 이것은 내가 많이 해보면서 키우는 방법밖에 없는 문제이다.고민하고 또 고민해보고 직접 써보면서 내가 터득할 수 밖에 없는 문제인데.. 4개월동안 분명 많은 것을 배웠다.C# 과 유니티의 학습법에 대해서 끊임없이 공부하였고처음엔 질문하기가 무서워 자주 찾아가지 않았지만 첫 프로젝트때 제대로 아는 것이 없는 것 같아 찾아갔고 그 이후로 계속..

2025 01 06 TIL

새로 프로젝트를 만들어 실행하였을 때 로그를 읽었을 땐 무언가 메타파일이 사라졌다는 오류가 발생한다.프로젝트를 껏다가 재실행하면 사라지는 오류긴 하지만후에 어떤 문제가 발생할지 초보 개발자로선 걱정이 되서 한번여쭈어봤는데 해당 프로젝트에 포함되지 않은 요소들도 찾는 유니티 자체의 버그같다고 하셨다. 튜터님의 프로젝트에도 같은 오류가 발생한다고 한다고 하신다는 것을 보니 유니티도 하나의 프로그램이기 때문에이런 자잘한 오류들이 있는 듯하다.   가설을 세워봤을 때 이전에 다운받은 에셋의 프로젝트를 열어보기 위해 Newtonsoft 를 VisualStudio에서 다운 받은 적이 있고  manifest를 수정한적이 있었는데 이것과 연관이 있을지도 모르겠다.   언젠가 이런 오류들도 스스로 해결할 수 있는 개발자..

2025 01 02 TIL

머터리얼 쉐이더 옵션의 맵요소BaseMap: 기본 텍스쳐로, 모든 텍스쳐 요소의 기본 색상이나 패턴을 정의합니다.NormalMap: 표면의 굴곡과 거칠기를 시뮬레이션하여 물체의 세부 텍스쳐를 더욱 생생하게 보이게 합니다.OcclusionMap: 표면의 어둠과 밝기를 조절하여 더욱 깊이감과 세밀한 디테일을 추가합니다.BC N AO 텍스쳐를 넣어주었고Export하는 과정에서 R 이란 키워드의 텍스쳐도 같이 가져와졌는데 이것은 용도를 아직 모르겠다. Fbx 는 메쉬를 정의하는 데이터를 가져고 있다. 추출할 때 이 fbx 파일안에 메쉬가 들어있는 경우를 잘 살펴보자프리팹에 LOD 가 있는 경우 이것은 거리에 따라 랜더링해주는 것을 다르게 해준다고 한다.따라서 거리에 따른 다른 메쉬들이 다 프리팹에 포함되어있다...

2024 12 31 TIL

오늘 TIL은 개발적인 측면보단 스스로 개발 방식에 대해 좀 생각해보는 시간을 가졌다. 오늘 하루는 귀신 퇴치 퍼즐을 만드는 것을 구상하고 퍼즐 클래스의 요소들을 추려서 리팩토링 하는 것을 하려하였다.이 귀신 퇴치 퍼즐은 기존의 퍼즐들과 다른 결이 있어 퍼즐 클래스를 다시 메인퍼즐, 서브 퍼즐로 나누었고서브 퍼즐을 상속받은 귀신 퇴치 퍼즐을 구상해보고 제작해보려하는 중에 튜터님께서 오셨다. 튜터님께서 진행 상황을 보러오셨을 때 저번주에 너무 시각적인 부분이 어색한 부분에 대해 매달려서 한주를 보내었다는 것을 깨달았다. 혼자서 너무 많은 시간을 중요하지 않은 부분에 사용하였다고 자각하였다.또한 메인 퍼즐의 가짓수가 부족한데도 부수적인 부분을 신경쓰고있었다는 것을 자각하였다. 그래서 일단 퍼즐 클래스를 갈래..

2024 12 30 TIL

audioSource.Play() 는 매개변수가 있는 것과 없는 것을 통해 지연시간 여부를 줄 수 있다. ulong 자료형의 매개변수를 넣어 사용해보면 기능은 정상적으로 되나 아래의 노란색 경고 메세지가 뜬다.Delayed playback via the optional argument of Play is deprecated. Use PlayDelayed instead!UnityEngine.AudioSource:Play (ulong) 이는 더 이상 play메서드에 매개변수를 넣어 사용하는 것을 권장하지 않으며 PlayDelayed 메서드를 사용하는 것을 권장한다고 한다. 이유를 찾아보니 성능상의 이점 때문보다는 메서드 이름을 통한 직관성 때문에 권장하는 것 같다. audioSource.Play() //지..

2024 12 27 TIL

양초의 색 변경이 유니티의 기본 색 (color.red 등) 을 제외하곤 다 저런식으로 배경색을 채워버리는 현상이 발생하였다.사용자 지정 색상을 이용하기가 힘듬 유니티에서 색을 지정할 땐 (1,0,0,1) 과 같이 0~1까지의 값을 이용하여 나타낸다고한다.  따라서 new Color(255f,0f,0f,255f) / 255f 처럼  아예 RGB 값에 255를 나누어 유니티 형식으로 만들거나Color32 클래스를 사용하는 것을 권장하는 듯하다. 일단 이 문제는 해결하였음에도 원하는 대로 결과가 나와주지 않고 (색이 너무 약해서 이건 밝기 조절의 문제이려나)  현재 사진처럼 맨 마지막 양초만 주변에 빛을 비추는 현상이 목격되어 왜 그런지 알아봐야할 것 같다. 튜터님께 질문을 통해 답을 찾았다. 일단 먼저 광..

2024 12 26 TIL

양초를 사용하여 퍼즐의 힌트를 나타내고 싶어 에셋의 양초 요소만 가져오려고 하였다.양초 요소만을 가져오려고 하다보니 이해가 안되는 부분이 너무 많아서 질문을 하였었다.질문을 하다보니 내가 너무 원론적인 부분까지 파고드려하는 경향이 있다는 것을 알았다.에셋을 사용해 개발을 하는 것이 이 원론적인 부분을 생략해두고 사용하는 것이기에 자세하게 알아보는 것은 나중으로 생각해두기로 하였다. 일단 내가 가져와야하는 요소만 정리해놓는다.   메쉬 : 화면상에 보여지는 3D 모델을 정의하는 데이터 점 선 면으로 이루어진 데이터이다.  fbx 파일이 주로 메쉬인듯하다. 머터리얼 : 물체의 표면 속성  메쉬의 표면을 시각적으로 나타내는 요소 머터리얼의 요소 : 쉐이더 : 메쉬의 표현방법의 정의한 것  (반사, 애니메이션,..

2024 12 24 TIL

배경음악과 효과음을 사용하기 위해 사운드 매니저를 제작해보고 있다.현재 사운드 매니저의 제작 목적은 특정 상황에서 사용될 배경음악과 효과음을 설정해주고 볼륨 조절과 같은 기능을 관리하는 역할을 해주고 싶다.  public enum eBGMType{ LobbyBGM, InGame_NormalBGM, InGame_ChaseBGM, TestBGM}//효과음//public enum eSFXType{ MatchedPuzzleSFX, UnmatchedPuzzleSFX,}public class SoundManager : MonoSingleton{ public AudioSource audioSource; private Dictionary soundPool = new Dicti..