티스토리챌린지 12

[ScriptableObject Loader] Excel에서 SO로 만들기

엑셀에서 데이터를 불러와서 ScriptableObject를 만드는 프로젝트를 만들었다.1suyb/ScriptableObject-Maker:[GitHub - 1suyb/ScriptableObject-Maker: Csv로부터 scriptableObject를 만드는 기능Csv로부터 scriptableObject를 만드는 기능. Contribute to 1suyb/ScriptableObject-Maker development by creating an account on GitHub.github.com](https://github.com/1suyb/ScriptableObject-Maker)엑셀 데이터를 불러오는 것은 ExcelDataReader를 활용하였다.ExcelDataReader/ExcelDataReade..

Develop_Log 2024.11.24

[팀플젝 회고] 유니티 심화주차

진짜 미친듯이 최선을 다한...까지는 아니였지만 (동생 실기로 인해 주말에 불참 ㅠ)그래도 누가 아파서 통으로 빠지거나하지않고 처음으로 모든 구성원이 열심히 시간 맥스로 채워서 달린 프로젝트 였던 것 같다.이번에는 몬스터 전반 및 낮 과 밤 로직등을 맡아서 구현했다.오브젝트 풀링이나 스폰매니저, CSVtoSO등은 내가 이전에 쓰던 코드를 가져다가 사용했다.점점 프로젝트를 하다보니 다시 사용할 수 있는 코드들은 재사용하게 되니 1시간정도는....빨라진 것 같기도.몬스터 구현은 강의의 FSM을 사용하여 구현하였다.몬스터 상태가 몇가지 없어서 그냥 구현할까하다가 그래도 배운걸 적용해보고자 FSM을 사용하였다.처음에 chase랑 Attack 만 존재하는 상태라 아 이걸 왜 복잡하게 이렇게 한다고 했지... 싶었..

Develop_Log 2024.11.22

[C#] [field : SerialiableField]

강의를 보던중 [field : SerialiableField][field : Range()] [field : Header()]라고 쓰시는걸 발견했다.[SerialiableField] [Range()] [Header]는 많이 봤는데 앞에 필드가 붙어서 의아했다.Property도 인스팩터창에서 보고 싶어..![SerialiableField]를 하면 기본적으로 private 필드를 인스팩터 창에서 볼 수 있다. 하지만, 프로퍼티는 그렇지 못했다.프로퍼티를 직렬화 하기 위한 방법이 [field : SerialiableField] 였던것..![Range][Header]또한 앞에 field를 붙이면 프로퍼티에 적용이 되는 것 이다.

Unity&C#/Unity 2024.11.15

[C#] == , Equals, ReferenceEquals

Big Integer를 구현하면서 ==를 오버로드 하다보면 노란색 경고로 !=, Equals 등을 구현하지 않았다고 뜬다.==와 Equals는 동일한 작동일 것 같은데 왜 이것도 오버라이드 하라고 빼액 거리는지 둘이 어떤 차이가 있는지 궁금해졌다.근데 또 ==을 오버라이드하다보면, ReferecneEquals로 null체크를 한다. 이건 또 뭘까?== 연산자값 타입 :두 값이 비슷한지 비교참조 타임 : 두 객체가 동일한 메모리 위치를 참조하는지 비교Equals매서드로, 클래스에만 존재객체의 동일성을 판단하는데 사용기본적으로 두 객체가 같은 인스턴스를 가리키는지 확인ReferenceEqualsObject 클래스의 static method로, 두 객체가 동일한 참조를 가리키는지 확인값형식은 값을 박싱하여 비..

Language/C# 2024.11.14

Little Endia & BigEndian

바이트 저장 방식Big Endian가장 중요한 바이트를 가장 먼저 저장하는 방식큰 바이트 -> 작은 바이트 순서로 저장됨메모리 주소 (오름차순): `0x00 | 0x01 | 0x02 | 0x03`저장된 값: `12 34 56 78` 네트워크에서 주로 사용Little Endian가장 중요한 바이트를 가장 늦게 저장하는 방식작은바이트 -> 큰바이트 순서로 저장됨 메모리 주소 (오름차순): `0x00 | 0x01 | 0x02 | 0x03` 저장된 값: `78 56 34 12`윈도우에서 주로 사용

CS 2024.11.13

[C#] Span

BigInteger 구현을 하면서 최적화 하기 위한 방법을 찾던중 Span라는 문법을 발견. Span란?Span는 C# 7.2에서 도입된 구조체로, 연속된 메모리 영역을 안전하고 효율적으로 처리할 수 있도록 도와줌. Span는 기본적으로 배열, 문자열, 혹은 포인터와 같은 연속된 메모리 공간에 대한 뷰를 제공함. 이를 통해 메모리를 복사하지 않고도 데이터를 조작할 수 있어 성능을 크게 개선할 수 있음.기본적인 특징은 다음과 같음:메모리 안전성: Span는 배열을 다룰 때 흔히 발생할 수 있는 인덱스 범위 초과 문제에 대해 안전한 처리를 제공.힙 할당 회피: Span는 스택에 할당되어 GC(가비지 컬렉션)의 부담을 줄이므로, 특히 성능이 중요한 코드에서 유용.범용성: Span는 배열뿐만 아니라 메모리의 ..

Language/C# 2024.11.12

[Unity] ParticleSystem

개인과제 진행 중, 파티클 옵션에 대해 헷갈려서 정리.Particle System ModulesMainModule파티클의 초기상태를 제어하거나 여러가지 설정들을 조절 할 수 있는 모듈Duration : 파티클 시스템이 실행되는 지속 시간설명: Duration은 파티클 시스템이 재생되는 총 시간을 의미합니다. 쉽게 말해, 이 파티클 시스템이 한번 발동했을 때 얼마나 오랫동안 파티클을 생성할 것인지를 결정하는 값입니다.영향: Duration이 끝난 후에는, 설정에 따라 파티클 시스템이 종료되거나 재생을 반복할 수 있습니다 (Looping 옵션이 켜져 있는 경우).적용 대상: 파티클 시스템 전체에 영향을 미칩니다.차이점: Duration은 시스템이 파티클을 생성하는 기간을 의미하며, 이 동안에 Emission..

Unity&C#/Unity 2024.11.11

[Unity] TextMeshPro AtlasRenderMode

Unity의 TextMeshPro에서 AtlasRenderMode는 폰트 아틀라스(texture atlas)를 생성할 때 글리프(glyph)를 렌더링하는 방식을 결정하는 설정.글리프(glyph)는 문자(character)의 시각적 형태를 의미. 즉, 글자, 숫자, 기호 등의 구체적인 모양이나 디자인을 나타내는 개별적인 도형. 폰트(font) 내에서 각 문자는 고유한 글리프로 표현되며, 이러한 글리프들이 모여 우리가 읽는 텍스트를 구성.폰트 아틀라스(Font Atlas) 또는 텍스처 아틀라스(Texture Atlas)는 여러 개의 글리프(glyph)나 이미지를 하나의 큰 텍스처에 모아 놓은 것을 의미.주요 AtlasRenderMode 종류:비트맵(Bitmap):설명: 기본적인 래스터화된 이미지로 글리프를 ..

Unity&C#/Unity 2024.11.09