목록노션 (34)
공부일지
궁금한 점아이템에 대한 json 파일을 작성하려는데 아이템 탐색동일한 카테고리의 아이템이 아니라면 변수차이로 오류나지 않을까?클래스의 상속이 떠오르기도 하고그럼 json파일을 분리해서 여러개로 쓰고 싶은데json파일을 카테고리별로 구분해서 별도 파일로 만들지 않는다면 아이템을 어떤 기준으로 구분할 수 있을까?파싱해서?아니면 아래처럼 id를 카테고리화해서 id로 가져와야하는거 아님?ㅇㅇ아마근데 그러면 id를 카테고리화해서 장비인지, 어떤 부위인지 알아내는게 맞지 않나? 분석.? atk 일부러 빠뜨렸을 때 반응 존재하지 않는 def라는 변수를 삽입했을 때def는 디폴트도 안뜨고 정상 작동 소결론위와 같이 있는 데이터를 빠뜨리면 오류, 없는 데이터를 변수로 받으려하면 🐶무시. 그렇다면json을 아이템이라는 이..
목차목차Step0-1. 직렬화, 역직렬화Stream이란직렬화의 장단점장점단점Step1. Json이란Step2. Json 파싱단일 객체 불러오기다중 객체 불러오기[여기부터 보완]다중 객체 내부의 배열 프로퍼티Json 출력Json 파일 읽기Json 파일 쓰기궁금한점Step3. JsonUtility와 Json.NET 혹은 Newtonsoft.JsonNewtonSoft.JsonJsonUtility 예시 11JsonUtility 예시 22JsonUtility 멤버함수자주 사용하는 함수와 키워드들(추가 조사 필요) 먼저 프로젝트 기한이 두 달 남은 상태에서 공부용으로 조사한거라 코드를 거의 들고와 죄송죄송;;;프로젝트 구현하면서 천천히 변경하겠음. 히히;;;Step0-1. 직렬화, 역직렬화 종이로 출력된 종이 뭉치..
옵저버패턴의 정의옵저버(: obesrver : 관측자) 패턴 플레이어 체력을 관찰하다가 0으로 떨어진다면 UI,Controller, Manager 등에 플레이어 패배를 알리는 기능을 고려해보자. 가장 먼저 고려할 수 있는 건 아마도 Update문 안에서 프레임 단위로 체력을 확인하다가 0 이하가 된다면 처리해 주는 것이다.다만 이 경우 UI관련 코드들, Control 관련 코드, Manager코드 전부와 커플링이 되고 말 것이다. 이런 코드 전부와 커플링이 되지 않고 체력 상태를 전파하기 위해서 사용하는 것이 옵저버 패턴이다. 📌옵저버 패턴 : 하나의 옵저버를 통해 행동을 감시해서 처리하는 것이 옵저버 패턴을 사용하면 누가 받든 상관없이 알림을 보낼 수 있다. 따라서 옵저버 패턴은 위와 같이 일대 다의 ..
📌스크립터블 오브젝트란📍📌 스크립터블 오브젝트란...Unity에서 관리하는 유연한 데이터 컨테이너...스크립팅 가능한 오브젝트이며, 스크립트로 정의하고 에셋 메뉴를 통해 생성. 유니티에 에셋을 저장하는 재사용 가능한 데이터 구조.클래스 인스턴스와 별도로 대량의 데이터나 설정 저장 가능.코드와 데이터를 분리하여 코드를 더 깔끔하고 관리하기 쉽게 함.인스펙터 창에서 직접 수정, 관리.값의 사본이 생성되는 것을 막아 메모리 사용을 줄일 수 있다.착탈식(pluggable) 데이터 집합을 미리 정의함.🔨🔧S.O. 선언과 사용 예시🧾📝using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileNa..
루키스 님 - 델리게이터 부분 07:06 델리게이트의 정의📌델리게이트 : 대리자 = 대리하는 것변수가 똑같은 로직을 다른 값으로 사용하는 것 마냥, 하나의 동작에 여러 상황이 부여되는 것.함수 자체를 인자(연락처)로 넘겨주고 함수를 호출하는 것(거꾸로 연락 주는 것).→ 걍 함수 담는 변수. 혹은 유사 함수 포인터. → 어려운 말로 함수에 대한 참조 타입이라 한다. 델리게이트 선언delegate 반환형 델리게이트이름(매개변수)ex) delegate void SpawnDelegateFuc(); 델리게이트 사용delegate void SpawnDelegateFuc(); void Start() { //델리게이트를 저장할 변수 생성 SpawnDelegateFuc spawnAction; //델리게이트 변수에 함수..
null 조건부 연산자 “?.”foo 객체가 null이 아니면 member 필드에 접근int? bar; bar = foo?.member; “?[]”객체의 멤버 접근이 아닌 배열 같은 컬렉션 객체 첨자를 이용한 참조에 사용.ArrayList a = new ArrayList(); a?.Add("야구"); a?.Add("축구"); WriteLine($"{a?[0]}"); WriteLine{$"{a?[1]}"}; null 병합 연산자 “??”두 개의 피연산자를 받아서 왼쪽 피연산자가 null이 아니면 그대로, null이면 오른쪽 피연산자를 반환int? a = null; Console.WriteLine(${a ?? 0}); a = 99; Console.WriteLine(${a ?? 0}); Reference[C#..
Switch문~~문과 ~~식의 차이패턴 매칭(Pattern Matching) Switch문 switch문과 패턴 매칭 중 형식 패턴 : 나중에 써먹어 볼 만할 듯object obj = 123; switch(obj) { case int: break; case float: break; default: break; } 케이스 가드(Case Guard) : switch문의 case 절 패턴을 구체적으로 만들어주는 추가 조건 검사“when”switch (obj) { case int: break; case float f when f >= 0: break; case float: break; default: break; } ~~문과 ~~식의 차이문 : 결과 반환과 무관하게 주어진 작업을 진행.식 : 결과값을 만들 수 ..
연속적 동형 데이터 타입(Homogeneous Data Types) C/C++ 에서는 연속적인 메모리 공간에 대한 주소이며C# : 배열 객체로서 메모리 상의 배열에 대한 정보를 가지며 System.Array 클래스로 생성되어 속성과 메서드를 사용할 수 있는 객체 인스턴스 가변 배열(Jagged Array) : 배열 요소가 서로 다른 차원과 크기를 갖는 배열.가변 배열 : int [][] a = ne wint [][];2차원 배열 : int[ , ] a = new int[ , ];특일반 다차원 배열에서 공간의 낭비가 심할 때각 차원마다 다른 배열 크기를 가져야 할 때 동적 배열(Dynamic Array) : 최대 크기를 미리 알 수 없을 때, 중간에 확장 또는 축소하는 기능을 갖는 배열장점 : 꼭 필요한 ..