Today I Learned : Unity 개발 Instantiate : 새로운 오브젝트 생성한다. 프리팹을 기반으로 한 새로운 인스턴스를 생성하며, 게임 오브젝트의 동적 생성 및 관리에 도움을 준다. 오브젝트를 모아놓기위해 쓸데없는 부모를 생성하는 것은 성능상 좋지 않으므로 게임플레이 이후에 생성되는 오브젝트들은 루트경로에 그냥 놔두는것이 낫다. 빈번한 인스턴스 생성 및 삭제가 필요한 경우 오브젝트풀을 생성하여 객체를 관리한다. public Object Instantiate(Object original, Vector3 position, Quaternion rotation); original: 인스턴스를 생성할 프리팹이나 다른 Object를 지정합니다. position: 새로운 인스턴스의 초기 위치를 나..
전체 글
Life LogToday I Learned : 1. C# Array, List 인덱스 찾는 방법 //// IndexOf() // public static int IndexOf (Array array, object? value); // 배열 Array.IndexOf(array, "A"); // 리스트 strList.IndexOf("A"); //// FindIndex() // public static int FindIndex (T[] array, Predicate match); // 배열 Array.FindIndex(array, element => element == "A"); // 리스트 strList.FindIndex(조건); IndexOf()와 FindIndex()는 둘 다 배열에서 특정 요소의 인덱스를 찾는 데 사..
Today I Learned : 제곱근 반환 메서드 Math.Sqrt(n); char[] to string char[] charArray = { 'a', 'b', 'c' }; // 1. new string(charArray); // 2. new string(charArray, 0, charArray.Length); // 3. string.Concat(charArray); Console 상의 커서 포지션 가져오기 // Console.cs public static (int Left, int Top) GetCursorPosition() { return ConsolePal.GetCursorPosition(); } // 호출 Console.GetCursorPosition().Left; Console.GetCurs..
Today I Learned : JsonElement 컨트롤 // Json 컨트롤 // 파일 불러오기 string jsonFilePath = "data/Class.json"; string jsonContent = File.ReadAllText(jsonFilePath); JsonDocument ClassObj = JsonDocument.Parse(jsonContent); // 객체 접근 방법 ClassBaseInfo = ClassObj.RootElement.GetProperty("CharacterClass").GetProperty(Job.ToString()); AttPow = ClassBaseInfo.GetProperty("AttPow").GetInt32(); DefPow = ClassBaseInfo.Ge..

Today I Learned : 백준 허브 업로드 타이밍 백준은 결과 완료시 바로 업로드 프로그래머스는 결과 후 화면에서 잠시 기다려야 올라감(체크표시 뜨면 완료) Linq Any절 - where를 쓰지않고 바로 any로 탐색 // 배열에 -10000 미만 또는 10000 이상의 값이 있는지 확인 if (numbers.Any(x => x = 10000)) { // 예외 발생 throw new ArgumentOutOfRangeException("배열에 -10000 미만 또는 10000 이상의 값이 있습니다."); } C#의 foreach는 순서를 보장한다. 배열 : 배열은 순서가 보장된다. 리스트 : C#의 리스트는 내부적으로 배열을 기반으로한 동적 배열이며, 순서가 보장된다. ..
Today I Learned : 알고리즘 백준 / leetcode / programmers 사이트 사용법 숙지 백준의 경우 using을 포함 코드 전체를 모두 작성해야 빌드 및 테스트가 된다. 사용법을 모르는상태로 빌드에러만 자꾸났다. leetcode, programmers는 기본 프리셋이 만들어져 있어 내용만 채우면 된다. 백준허브 설치 및 테스트. 문제풀이 완료시 자동으로 코드가 푸시된다. 퀘스트 개발 설계완료 및 슈도코드 개발 퀘스트 데이터 채우는 중 시간날때 공부해야할 부분. JsonPolymorphic https://learn.microsoft.com/ko-kr/dotnet/standard/serialization/system-text-json/polymorphism?pivots=dotnet-8..
Today I Learned : 팀 프로젝트 작업 시작화면 아스키아트 적용 케릭터 생성에 직업 추가 (5종) 직업에 따른 스킬 2개씩 부여 전사 강격 : 딜*120% 마나 5 이중타격 : 딜*180% 마나 15 마법사 불화살 : 딜*130% 마나 5 블리자드 : 딜*120% 전체공격 마나 20 궁수 연사 : 딜*90% 전체공격 마나 10 저격 : 딜*220% 마나 20 도적 기습 : 딜*150% 마나 10 함정 : 딜*200% 마나 15 성직자 신성타격 : 딜*150% 마나 10 치료 : 딜*150% 마나 10 그 외 깃, 노션 정리 등 Padright 이슈 수정 https://cgtg.tistory.com/465 Enum 저장 이슈 기본세팅으로는 Enum을 숫자로 저장한다. Enum컨버터를 적용할 필드..

Today I Learned : 4주차 과제 마무리, 5주차 수강 중 팀 과제 협업 팀 과제 깃세팅 코드 공유 및 참고사항 문서 작성(Wiki) https://github.com/rtanunity3/textdungeon/wiki 콘솔 텍스트게임 구조 개략적인 시퀀스다이어그램 4주차 턴제RPG 사망할때까지 루프 namespace turntextrpg { public class Program { static void Main(string[] args) { Warrior warrior = new Warrior("워리어", 100, 20); Monster[] monster = { new Goblin("고블린", 30, 3), new Dragon("드래곤", 100, 10) }; List rewards = new..
Today I Learned : 개인과제 해설 시청 변경 못하게 하려면 프로퍼티 Set; 빼기 비주얼스튜디오 cw ->Tab : console.writeline() 자동완성 C#의 기능들이 종종 튀어나오는데 C++에도 있었는지 찾아보게된다. :base() : 클래스를 상속 받은 경우 부모 클래스의 멤버에 접근하기 위해 사용. 부모클래스의 생성자를 명시적으로 호출할 수 있다. JAVA 에서 Super와 유사한 개념으로 판단된다. public bool IsDead => Health Health Health rewardItems.Count) { Console.WriteLine("올바른 번호를 선택하세요."); } rewardItems[choice - 1].Use(player); } } } }

Today I Learned : C# 콘솔 입력처리 Console 클래스를 통해 키를 입력받거나 인식하는 부분 공부 https://cgtg.tistory.com/471 System.Text.Json C# Json 컨트롤 관련 공부 기존에 Newtonsoft.Json는 사용해보았으며, 이번에 검색해본 결과 성능상 System.Text.Json이 더 좋다고한다. Newtonsoft.Json 와 System.Text.Json 둘 사이에는 미묘한 차이가 있기때문에 중간에 갈아타기는 쉽지 않을 것 같다. (https://bigexecution.tistory.com/166) https://cgtg.tistory.com/468 Property C++에서는 없던 형식으로, 자바에서 보던 방식이다. 자바에서 이미 경험은..