분류 전체보기 240

아이템 슬롯, 스크롤 뷰, 슬롯 데이터 저장, 세이브 로드, 인벤토리 정렬, 인벤토리 필터링, 드롭다운

UI는 계층적으로 만들어야한다. → 재사용이 가능하면 좋다.장비 슬롯 같은 경우 → 부위별 슬롯먼저 인벤토리를 한다면 슬롯 하나를 만들고 함수를 만들고 테스트를 하고 된다면 그 다음으로 넘어가야한다.비어있는 상태아이템이 들어있는 상태클릭을 했을때의 경우정보 표시클릭을 한 다음 삭제버튼을 누르면 삭제되는 경우아이템 슬롯슬롯 프리펩 생성 - 빈상태 함수, 아이템 있는 상태 함수 틀 선언지금은 아이템 정보를 한번에 받지만, 원래는 개별적인 아이템 정보를 받아야한다.언제 획득했냐, 랜덤으로 능력치가 붙는게 있지 않나 같은 정보를 넣어야한다.빈상태 함수 : 아이템 데이터, 이미지, 이름 텍스트 비우기슬롯 채우기 함수 ; 아이템 데이터, 이미지, 이름 텍스트 채우기 → 아이템 데이터로 할당한다.//슬롯 비우기pub..

공부/Unity 2025.09.09

NuGetForUnity, CSVHelper, Resources, 에디터 커스터마이징

메모리공간을 구성하는 객체의 요소 → 필드외부 라이브러리로 직렬화를 하기 위해서는 명시적으로 직렬화라는것을 알려야한다.[Serializable] : 직렬화 어트리뷰트private 접근도 직렬화가 되지 않는다.직렬화가 되지 않는다면 해당 작업이 스킵되는 것이다.[NonSerialized]과의 차이점 : 이것은 직렬화되는 클래스에서 특정 필드를 직렬화시키고싶지 않을때 사용한다.[Serializable]public class SaveDatas{ public Vector3 position; public Quaternion rotation; public Vector3 scale; [NonSerialized] public Color color;}[HideInInspector] : ..

공부/Unity 2025.09.09

Json, 외부 라이브러리 사용법

JsonJson 유틸리티 또는 외부 라이브러리로 사용할 수 있다.FromJson(Json 문자열)ToJson(경로)Json 유틸리티 단점 ; Dictionary를 지원하지 않는다.구조Key, Value 형식으로 데이터를 저장한다.Key는 ‘,’ 콤마로 구분한다.모든 Key와 Value는 {} 중괄호 안에 정의된다.{ "object" : { "a"; "b", "c": "d" }, ~~~}이 object도 하나의 Key Value 페어가 될 수 있다.하나의 독립적인 Json으로 취급한다.object, array, bool, string, int 등이 있다.[ { "position": { "X": 5.17811775, "Y": 4.5870347, "Z": -1.49516964..

공부/Unity 2025.09.09

파일 입출력, 유니티 파일 입출력, Using Streams, MemoryStream, Path

Stream Architecture파일은 보통 ‘단방향’으로 읽고 쓰고를 진행한다.대표적 파일 입출력콘솔 입출력IDE 입출Stream adapters, Decorator streams, Backing store streams는 전부 클래스 이름이다.Stream adapters : 텍스트 데이터, 바이너리 데이터, Json 데이터 등을 읽고 쓰는 작업을 담당한다.Decorator streams : 데이터를 감싸는 기능GZipStream : 압축 기능이 모여져있는 클래스다.압축을 다루는 스트림에 입력과 출력을 하는것과 같다.Backing store streams : 특정 하드웨어와 매칭하고, 데이터를 주고받는 기능주로 FileStream과 MemoryStream을 사용한다.FileStream : 파일 읽고 ..

공부/C# 2025.09.09

LINQ 연산자

C# LINQ 연산자 소개LINQ 연산자 개요연산자 분류LINQ 연산자는 세 가지 범주로 분류됨.시퀀스 입력, 시퀀스 출력 (sequence→sequence)시퀀스 입력, 단일 요소 또는 스칼라 값 출력입력 없음, 시퀀스 출력 (생성 메서드)시퀀스→시퀀스 연산자데이터 구조관계형 (Relational):테이블과 테이블 간 관계로 표현.SQL 데이터베이스에서 흔히 사용.데이터 분산 저장 및 조인 연산으로 연결.계층적 (Hierarchical):트리 구조로 표현.부모-자식 관계.XML, JSON 등에서 자주 사용.플랫 (Flat):모든 데이터가 하나의 컬렉션에 포함.중첩 구조 없음.배열, 리스트 형태로 표현.변환 방법관계형 → 플랫:SelectMany: 여러 컬렉션을 하나로 평탄화. (예: 고객 목록 + 각 ..

공부/C# 2025.09.09

LINQ 하위 쿼리, let 키워드

LINQ 하위 쿼리하위 쿼리의 개념하위 쿼리(Subquery)는 다른 쿼리의 람다 식 내부에 포함된 쿼리를 의미함일반적인 C# 식과 마찬가지로 람다 식의 오른쪽에 유효한 식이면 하위 쿼리로 사용할 수 있음하위 쿼리는 외부 람다 식의 식 범위에 비공개로 지정되며, 외부 람다 식의 매개변수를 참조할 수 있음시간과 메모리에 엄청난 손해가 일어난다.하위 쿼리 예제기본 하위 쿼리음악가들을 성(last name)으로 정렬하는 예제임Last가 전체를 순회해서 마지막 요소를 반환하는 함수이다.string[] musos = { "David Gilmour", "Roger Waters", "Rick Wright", "Nick Mason" };IEnumerable query = musos.OrderBy(m => m.Split..

공부/C# 2025.09.09

LINQ 질의식, LINQ 지연 실행

LINQ 질의식Query Expressions 개요질의식(Query Expression)은 LINQ 쿼리를 작성하는 C#의 선언적 구문이며, 가독성을 높인 구문임.데이터 컬렉션을 다루는 간결한 방식을 제공함.질의식은 컴파일러에 의해 Fluent Syntax(메서드 호출 구문)로 변환됨.예를 들어, 다음 Query Expression은:from n in namesselect n다음과 같은 Fluent Syntax로 변환됨.names.Select(n => n)기본 구문모든 질의식은 from 절로 시작하고 select 나 group 절로 끝나야 함.from 절은 데이터 소스를 지정하고 범위 변수를 정의함.where 절은 필터링 조건을 지정함.orderby 절은 정렬 기준을 지정함.select 절은 결과로 반환..

공부/C# 2025.09.09

쿼리 연산자 체이닝, 지연 실행의 장점

LINQ Fluent Syntax개요Fluent Syntax는 LINQ의 가장 기본적이고 유연한 쿼리 작성 방식임확장 메서드와 람다 식을 사용하여 쿼리를 작성함쿼리 연산자를 체이닝하여 복잡한 쿼리를 구성할 수 있음쿼리 연산자 체이닝체이닝은 여러 쿼리 연산자를 연결하여 복잡한 쿼리를 만드는 방법임데이터는 왼쪽에서 오른쪽으로 흐르며 순차적으로 처리됨실제 변수가 저장되는게 아니라 해당 구성의 ‘재료’들을 가지고 있는것이고, 이것을 얻기위해 계속 반복을 돌리는 것이다.using System;using System.Collections.Generic;using System.Linq;string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };IEnumerable que..

공부/C# 2025.09.09

LINQ, 쿼리 연산자, 람다 식

LINQ확장 메서드의 집합이다.매개변수로 this가 들어가는 메서드다.CSV처럼 데이터 테이블의 정보를 LINQ 함수를 이용해서 가져오는것으로 사용한다.게임개발에서는 실시간으로 사용은 무리지만, 로딩시간이나 비 실시간에 한정으로 사용해도 괜찮다.LINQ의 개념LINQ (Language Integrated Query) 는 컬렉션에 대한 구조화된 타입 안전 쿼리를 작성하기 위한 C# 언어 및 .NET 런타임 기능임.배열, 리스트, XML DOM 등 IEnumerable를 구현하는 모든 컬렉션 쿼리 가능.foreach의 인자인 컬렉션에 들어가는것처럼 사용할 수 있는것이다.컴파일 타임의 타입 검사와 동적 쿼리 구성의 장점을 제공함.LINQ의 장점:코드 가독성 향상: 쿼리를 간결하고 직관적으로 표현 가능.생산성 ..

공부/C# 2025.09.09

오디오 믹서, 카메라 제한, 총 데이터, 총, 슈터

마우스의 포지션을 월드포지션으로 변환 → 바닥과의 충돌을 검사유니티에서 카메라를 비출때 카메라와 월드 사이에는 ‘투영면’이 하나 보이지않게 있다.이 화면이 사용자가 마우스로 클릭되는 화면이다.마우스 클릭 후 투영면에는 점이 하나 생기고 그곳부터 z축으로 방향이 하나 생기는 것이다.해당 방향으로 레이캐스트를 쏘면 3D 상에 충돌하는 점이 3D상의 좌표가 되는 것이다.그런데, 이렇게하면 화면상의 좌표계와 카메라상의 좌표계가 맞지 않게된다.카메라가 사선으로 보고있을수도 있고, 카메라가 회전했다면 월드 좌표의 회전과 맞지 않을수 있기 때문이다.해결 방법 : Transform에 좌표계를 스크린좌표 ↔ 월드좌표를 변환하는 함수가 있다.스크린 좌표를 월드 좌표로 변환하는 과정을 거쳐야한다.Ray cameraRay =..

공부/Unity 2025.09.09