전체 글 110

[C#] Skip

C#에서 배열의 Skip() 메서드 사용법: 배열 요소를 쉽게 건너뛰기C#에서 배열이나 리스트와 같은 컬렉션을 다루다 보면, 특정 요소를 건너뛰고 작업하고 싶을 때가 있습니다. 예를 들어, 첫 번째 요소를 제외하고 나머지 모든 요소를 처리하고 싶다면 어떻게 할까요? 이때 유용하게 사용할 수 있는 것이 바로 Skip() 메서드입니다. 이번 포스팅에서는 Skip() 메서드가 무엇인지, 그리고 실무에서 어떻게 사용할 수 있는지 간단하게 설명드리겠습니다.Skip() 메서드란?Skip() 메서드는 LINQ (Language Integrated Query)에서 제공하는 확장 메서드로, 컬렉션의 앞부분 요소를 건너뛰고 나머지 요소를 반환합니다. 이 메서드는 컬렉션의 일부를 무시하고 나머지 요소로 새로운 컬렉션을 만들..

Language/C# 2024.11.06

[DesignPattern] 컴포넌트 패턴

Component패턴을 왜 쓰는가?플랫포머 게임을 만든다고 가정하면,플레이어가 걷고 뛰고, 공격하고, 맞고, 맞아서 hp가 소모되고, 물리를 체크하고, 사운드를 틀어주고, 애니메이션을 실행하고....엄청나게 많은 행동을 Player 클래스하나에서 한다면, 엄청나게 길어지고 복잡해짐이를 해결하기 위한 패턴이 Component 패턴임유니티에서는 Monobehaviour를 상속받는 클래스는 컴포넌트로 사용할 수 있도록 되어 있음.Inspector창의 컴포넌트가 이 컴포넌트임.언제 쓸 것인가?한 클래스에서 너무 많은걸 하고 있을 때 역할을 나누기 위해서

CS/DesignPattern 2024.11.05

[Archtecture DesignPattern] MVP / MVC / MVVM 패턴

기본 용어Model데이터를 의미함데이터를 갖고 있고, 데이터에 접근하는 방법을 제공함View사용자에게 모델(데이터)를 보여주는 방법UI라고 생각 할 수 있음.MVC참고Controller사용자의 입력을 처리하고, 그에 따라 모델과 뷰를 업데이트 하는 역할MVC 패턴에서 각각의 책임Model데이터를 정의데이터에 접근 하는 방법 제공뷰나 컨트롤러를 알지 못함ViewUI모델에 의존하고 있으며, 모델의 변경사항을 사용자에게 보여줌Controller사용자의 입력을 처리입력에 의존하고 있음사용자 입력에 따라 모델을 업데이트시각적 표시에 관계 없이 모델을 만들고 테스트 할 수 있음.컨트롤러가 비대해질 수 있음MVP참고각각의 책임Model위와 동일ViewUI사용자 입력을 받음더이상 모델에 의존하지 않으며, Present..

CS 2024.11.04

[Unity] 디버그 모드와 SerializeField

한줄 요약 : 아무 곳에나 [SerialzeField]와 [Serialzable]을 붙이면 안되며, 편하게 디버깅하려 하면 안된다.문제 상황 코드Inventory (class)InventoryItem[] (field)InventoryItem ClassItemDataintItemData Classstring 및 int로 이루어진 필드ItemData클레스에 [Serialzable]Inventory클래스에도 [Seriazable]을 붙여 둔 상황.(별 이유 없이 붙임. 그냥 붙임. 문제 상황디버그 모드에서는 Inventory의 InventoryItem 배열이 전부 기본값으로 0이 들어가서 초기화 되어 있음노말모드에서 보기위해 Inventory 의 InventoryItem[]에 [SerialzeField] 를 ..

Unity&C#/Unity 2024.11.01

CSVtoScriptableObject

Csv파일로부터 ScriptableObject를 만드는 Unity Util을 개발하였다.github개발 기간 10월 25일개요CSV파일로부터 ScritableObject를 생성하는 클래스구현 상세CsvtoSOMakerFormat함수들을 만들어 string으로 클래스 문자열을 만듬.string.Format을 사용하다가 제대로 fotmat에 글이 들어가지 않거나, tab이 안맞는 문제들이 있어 함수로 구현함.csv파일의 첫번째줄로 필드이름, 두번째 줄로 타입 정의.CSVDataLoaderData의 class가 만들어지고나서, Csv의 데이터를 클래스에 넣어 오브젝트로 만들어주는 함수C#의 리플랙션을 활용하였음.dataCSVDataLoaderCSVDataLoader로 데이터를 로드해 ScriptableObj..

Unity&C# 2024.10.30

ScriptableObject의 사용에 대해

이번 과제에 아이템을 Csv to ScriptableObject를 직접 구현하여 사용하였다.Excel to json to class....ㅋㅋㅋ를 만들었던 경험에 빗대어 Scriptable Object안에 데이터 리스트가 들어가 있도록 구현하였다.근데 scriptable object가 오브젝트하나하나로 나오는것과 DB형식으로 리스트로 나오는 것 둘 중 어느 것을 주로 사용하는지, 어떤게 효율적인지 궁금해졌다.

Unity&C# 2024.10.30

[Unity] Rigidbody ForceMode

Unity의 AddForce 함수에서 사용하는 ForceMode는 오브젝트에 힘을 가하는 방식과 효과를 조절할 수 있는 옵션1. ForceMode.Force지속적인 힘을 가하는 방식. 프레임마다 일정한 크기의 힘이 적용되어 물체의 질량을 고려해 가속도가 증가.Newton의 두 번째 운동 법칙 F = ma를 사용하여 힘을 계산하므로, 질량이 큰 오브젝트는 더 천천히 가속.용도: 중력이나 지속적으로 작용하는 바람 등, 꾸준히 적용되는 힘을 표현할 때 적합.rigidbody.AddForce(direction * power, ForceMode.Force);2. ForceMode.Acceleration가속도를 직접 적용하는 방식. Force와 비슷하지만, 질량을 무시하고 가속도만을 추가.가벼운 물체나 무게와 상관..

Unity&C#/Unity 2024.10.29