본문 바로가기
반응형

개발772

개발지식) 랜덤을 구현하는 방식 종류 랜덤을 구현하는 방식 종류 랜덤을 구현하는 여러가지 방식이 존재하는데 단순하게 랜덤을구현도 가능하지만 상황에 따라 각기 다른 랜덤을 구현해야하는 경우가 존재한다. 그런경우에 간략하게 참고하면 될것 같다. 낙차확률 : A 확률 실패시 B의 확률을 구하는 방식 (A만 독립/ B 부터는 종속시행) 낙차란 어떤 일련의 사건 중에서 특정 순서나 위치에서 다른 사건보다 뒤에 발생하는 경우를 가리킵니다. 이런 경우, 낙차에 대한 확률은 해당 사건들이 일어날 때마다 발생할 수 있는 다양한 상황에 따라 달라집니다. 확률론에서 낙차 확률은 주어진 상황에서 특정 사건이 다른 사건보다 뒤에 일어날 확률을 의미합니다. 예를 들어, 동전을 두 번 던지는 경우를 생각해 봅시다. 첫 번째 동전이 앞면이 나올 확률은.. 2024. 4. 12.
Unity Code) 스킬트리 구현하기 (SKill Tree Code Sample) 스킬트리 구현하기 (SKill Tree Code Sample) 간단하게 스킬 트리를 처리하는 코드를 구현하면서 간단하게 포스팅한다. 스킬에 대한 정보에 대한 연결을 처리하기위한 클래스이다. 간단하게 해당 스킬에 대한 이름정도만 가지고 있다. using System.Collections.Generic; public class SkillNode { public string Name { get; set; } public List Children { get; set; } public SkillNode Parent { get; set; } public SkillNode(string name) { Name = name; Children = new List(); } public void Ad.. 2024. 4. 8.
프로토타입) 딸기 농장 카드 게임 -2 딸기 농장 카드 게임 -2 ----------------------------------------------------------------------------------------------------------------------------------- 1. 스테이지에 대한 처리 2. 스텟에 대한 처리 및 액션 3. 기본 인게임 구성 카드에 대한 드로우 작업을 진행하고 난 이후에 딸기 게임에 필요한 게임적인 요소 스텟을 TextMeshPro 이모지로 해당 작업을 진행했다. 스테이지의 데이터를 기반으로 스테이지 정보를 노출하고 진행하는 플로우로 작업을 진행했다. ★☆☆☆☆ 2024. 4. 6.
문제해결)The same field name is serialized multiple times in the class or its parent class. This is not supported: ~ The same field name is serialized multiple times in the class or its parent class. This is not supported: ~ 해당 에러는 상속받은 클래스의 변수가 같아서 생기는 문제이다. Base Class를 수정하다가 발생한 케이스로 상속받은 클래스의 중복되는 변수를 삭제해주면 해결이 된다. ★☆☆☆☆ 2024. 4. 3.
기본기) Easing (이징) Easing (이징) Easing 이란 애니메이션 및 움직임을 부드럽게 하기 위해서 사용되는 기술이다. 객체가 시작점 > 끝점까지 가는 동안에 속도를 조절해서 보다 자연스러운 효과를 만들어 내기 위해서 주로 사용한다. 일반적으로 객체의 이동 속도는 시작점에서 느리게 시작해서 중간에 빠르게 가속되고 끝에 갈수록 다시 천천히 감속하는 형태로 설계를 하는데 이는 우리의 현실 세계에서 속도를 조절할 때의 경험과 거의 일치한다. 시간에 따른 함수로 정의를 하기 때문에 t(시간)과 value 값이 수식(수학방정식)으로 표현된다. 가장 기본이 되는 종류는 다음과 같다. 선형 (ease Linear) 가속(ease in) 감속(ease out) 가속-감속(ease in-out) Easing은 .. 2024. 3. 27.
기본기)C#) String Token을 int[] Array 변경 String Token을 int[] Array 변경 String ',' 으로 구분된 형태의 정수 데이터를 사용하는 경우가 종종 있다. 간략하게 사용하는 방법을 포스팅한다. using System; class Program { static void Main() { string data = "1,2,3,4,5,6"; int[] intArray = Array.ConvertAll(data.Split(','), int.Parse); // 결과 출력 foreach (int num in intArray) { Console.WriteLine(num); } } } int[] array = { 1, 2, .. 2024. 3. 25.
C#) Event Handler 예시코드 Event Handler 예시코드 어떤 기능을 구현할때 하나의 코드를 등록/해제하는 형태로 Event를 처리하는 방법으로 간단하게 시간에 대한 처리를 하는데 해당 시간에 대한 처리가 여러가지 화면에서 같이 처리가 되어야하는 경우(오차가 없는 형태로 처리가 필요한 경우)에 유용하게 사용이 가능하다. using UnityEngine; using System; public class CustomEventArgs : EventArgs { public TimeSpan EventTime { get; private set; } public CustomEventArgs(TimeSpan eventTime) { EventTime = eventTime; } } public class EventManager : MonoBeh.. 2024. 3. 25.
Unity)Unity Clean-Up Transition Scene (메모리 정리를 위한 명시적인 씬) Unity Clean-Up Transition Scene (메모리 정리를 위한 명시적인 씬) Unity C#에서는 GC가 자동으로 호출된다. Clean Up 하는 형태의 Scene을 하나 두어서 중간에 로드가 많이 되는 Scene 들의 리소스를 효율적으로 관리하기 위한 방법으로 Scene을 이동하는 과정에서 리소스를 모두 다 날리고 새로운 동작을 하기 위한 Tip 이다. 흔히 Loading Scene 과의 비슷한 개념으로 중간에 Load 과정을 노출하지 않고 로딩중 화면을 보여주는 것도 비슷한 개념이다. 기본적으로 GC(Gargage Collector)를 통해서 메모리를 관리하기 때문에 스파이크가 튀는 현상이 종종 발생하는데 해당 시점에서 명시적으로 처리가 되기 때문이다. Unity의 가비지 수집 (정의.. 2024. 3. 21.
Unity)License Revoked~ (라이선스 에러) License Revoked~ (라이선스 에러) 갑자기 Unity Hub를 실행하고 프로젝트를 선택했을때 해당 에러 팝업이 나왔다. 간단하게 라이선스 서버가 잘못됬는지 기존에 갱신해둔 라이선스가 삭제되어서 나오는 메시지로 간단하게 라이선스를 갱신해주면 해결이 된다. Unity Hub 에서 환경설정을 들어간다. 라이선스 메뉴에서 새로고침 및 추가를 눌러서 라이선스를 갱신한다. Unity 온라인 라이선스 활성화 : [링크] 온라인 라이선스 활성화 - Unity 매뉴얼 Unity를 사용하려면 활성화된 라이선스가 필요합니다. Unity Plus 또는 Pro 라이선스의 경우 일련 번호가 있어야 하며 Unity Personal 라이선스의 경우에는 일련번호가 없어도 됩니.. 2024. 3. 20.
기본기) 조건문 반전(Invert if statement) 조건문 반전(Invert if statement) Invert if statement 의 형태로 해당 조건에 만족하지 않는지를 먼저 판단하는 형태로 결국 해당 조건에 만족하지 않는 조건들이 먼저 선행되서 return을 처리해서 분기를 빠져나가는 형태로 구성되는 코드형태를 말한다. 휴먼이슈를 줄이고 좀더 가독성과 유지보수성을 높일수 있는 방법들이다. bool condition = true; // Original if statement if (condition) { Console.WriteLine("Condition is true"); } else { Console.WriteLine("Condition is false"); } // Inverted if statement if (!condition) { Co.. 2024. 3. 20.
기본기) 패턴 매칭 (Pattern Matching ) 패턴 매칭 (Pattern Matching ) Pattern Matching은 C# 7.0 버전부터 지원되는 기능으로, 단순한 값 비교뿐 아니라 여러 종류의 패턴을 사용하여 객체나 데이터 구조체의 값을 비교하고 추출할 수 있다. 주로 조건문(if)나 분기(Switch)에서 사용하고 다양한 패턴을 활용해서 코드를 간결하고 가독성 있게 작성이 가능하다. 정보를 기반으로 로그인하는 예시를 보면 다음과 같다. using System; public enum LoginStatus { Success, InvalidUsername, InvalidPassword } public class User { public string Username { get; set; } public string Pass.. 2024. 3. 18.
기본기) Guard Clause(Guard Statement) Guard Clause(Guard Statement) 메소드나 함수의 시작 부분에서 입력 매개변수나 조건을 빠르게 검사하여 불필요한 실행을 방지하고 코드의 가독성을 높이는 방법중 하나이다. 보통 조건문(if)를 활용해서 작성을 한다. Guard Clause 를 사용하게 되면 조건에 해당하지 않는 여러가지 많은 조건들이 있는 경우에 조기 종료 / 중지 시키는 것으로 오류를 빠르게 발견하고 코드를 더 쉽게(가독성) 해석하거나 유지보수하기가 쉽게 만든다. 간단하게 음수가 아닌 양수의 값인 경우에만 처리하는 조건 예시이다. using System; public class Example { public void CheckPositiveNumber(int number) { // Guard Cl.. 2024. 3. 18.
문제해결)Exception catched :System.ArgumentException: Enum underlying type and the object must be same type or object must be a String. Type passed in was 'System.Int64'; the enum underlying type was 'System.Int32'. at System.RuntimeType.IsEnumDefi.. Exception catched :System.ArgumentException: Enum underlying type and the object must be same type or object must be a String. Type passed in was 'System.Int64'; the enum underlying type was 'System.Int32'. at System.RuntimeType.IsEnumDefined 해당 문제는 C#에서 enum 의 정의된 값이 있는지 판단하는 Enum.IsDefined를 사용하다가 발생한 에러로 해결방법을 간략하게 포스팅 한다. 설명 데이터 타입 불일치 enum을 다룰 때 올바른 데이터 타입을 사용하는지 확인하세요. en.. 2024. 3. 8.
Unity)PSD Import (.PSD 파일를 Unity 에서 바로 사용) PSD Import (.PSD 파일를 Unity 에서 바로 사용) PSD 임포터는 Adobe Photoshop .psb 파일을 Unity로 가져오고 가져온 소스 파일을 기반으로 스프라이트의 프리팹 을 생성 하는 에셋 임포터 입니다 . .psb 파일 형식은 기능적으로 일반적인 Adobe .psd 형식 과 동일 하지만 .psd 형식보다 훨씬 더 큰 이미지(모든 크기에서 최대 300,000픽셀)를 지원합니다. 기존 아트워크를 .psd에서 .psb 형식으로 변환하려면 해당 아트워크를 Adobe Photoshop에서 연 다음 .psb 파일로 저장할 수 있습니다. PSD Importer로 .psb 파일을 가져오면 모자이크 (가져온 레이어에서 스프라이트 시트를 자동으로 생성) 및 캐릭터 리그 (소스.. 2024. 3. 8.
알고리즘)Decision Trees Algorithm(의사 결정 알고리즘) 보호되어 있는 글 입니다. 2024. 3. 8.
반응형