본문 바로가기
반응형

개발779

게임지식) 게임 플레이어의 난이도를 유지하는 방법 게임 플레이어의 난이도를 유지하는 방법게임 플레이어 난이도 관련되서 좋은 글이 있어서 원본글을 참고해서 간단하게 포스팅한다. 원본 : [How to Keep Players in Their Flow Channel -1] How to Keep Players in Their Flow Channel - What's in a Game?Follow me in social media:whats-in-a-game.com 원본 : [Controlling Flow for Different Levels Of Player Skill -2] Controlling Flow for Different Levels of Player Skill - What's in a Game?Follow me in social media:whats-.. 2024. 4. 30.
알고리즘) Force-Directed Drawing Algorithms (시각화 알고리즘) Force-Directed Drawing Algorithms (시각화 알고리즘) 노드 간의 연결을 유지하면서 그래프를 시각화하는 데 사용됩니다. 각 노드는 전자기력 또는 중력을 시뮬레이션하여 서로 밀어내거나 당기는 방식으로 배치됩니다. 이 알고리즘은 네트워크 시각화에 자주 사용됩니다. 특정 관계를 시각하는 방식의 종류로는 다음과 같다.  Fruchterman-Reingold Algorithm노드간의 반발력(서로 밀어내는 힘)과 인력(연결된 노드들을 끌어당기는 힘)을 시뮬레이션하여 그래프를 배치합니다.노드 간의 거리가 유지되면서, 서로 겹치지 않는 그래프를 만듭니다.Barnes-Hut Algorithm쿨롱의 법칙을 사용해서 노드들간의 반발력을 계사하고, 재귀적 공간 분할을 통해 계산 효율성을 높입니다. 대.. 2024. 4. 30.
문제해결)warning CS8632: The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. warning CS8632: The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.코드에서 Nullable Method를 사용하다가 발생한 Warning 이다.  Warning은 최대한 없애는 것이 좋다. Nullable Method를 사용하지 않는 형태로 구현을 하는 방법과 명시적으로 Nullable을 사용한다고 처리를 해주는 방식이 있다.#nullable enablenullable 활성화를 해주는 코드를 추가한다.#nullable enableusing System;namespace NullableEnableExample{ public class Pr.. 2024. 4. 29.
문제해결) TextMeshPro Input Field(입력 시 영어 대문자) TextMeshPro Input Field(입력 시 영어 대문자) 영어로 입력을 하게되면 첫 글자가 항상 '대문자'로 처리가되서 찾다가 해결해서 간단하게 포스팅한다. `aa`를 입력을 하면 'Aa'로 입력이 되는 현상  Content Type 옵션을 Name -> Standard 로 변경한다. https://docs.unity3d.com/Packages/com.unity.textmeshpro@3.2/manual/Settings.html Settings | TextMeshPro | 3.2.0-pre.9Settings TextMesh Pro’s project-wide settings are stored in a special Asset named TMP Settings. This Asset must be s.. 2024. 4. 29.
문제해결)GitLab)The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password (2FA : 2중 인증 활성화) The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password (2FA : 2중 인증 활성화) GitLab을 통해서 Unity Package 를 사용하고 있었는데 2중 인증 에러가 발생해서 간단하게 이중인증 활성화 해서 해결한 것을 간단하게 포스팅 한다. UPM을 접근하는데 권한과 2FA 옵션을 활성화해서 발생했다. [Setting] - [General] 메뉴의 하단에 내려가면 다음과 같이 설정되어있다. < 2중인증 활.. 2024. 4. 24.
기본기) 비교 연산 차이 (Equls , == ) 비교 연산 차이 (Equls , == ) 비교 연산에 대해서 간략하게 정리한다. 2가지의 자주 사용하는 비교 연산자의 장점과 단점을 정리한다. 설명 == == 연산자는 값 형식(Value Types)과 참조 형식(Reference Types) 모두에서 사용될 수 있습니다. 값 형식의 경우 == 연산자는 해당 값들을 비교하여 값이 같은지 여부를 확인합니다. 참조 형식의 경우 == 연산자는 두 객체의 참조를 비교합니다. 즉, 두 객체가 동일한 메모리 위치를 가리키는지 여부를 확인합니다. 하지만 참조 형식에서 == 연산자를 사용할 때는 객체의 실제 내용이 아니라 참조 값 자체를 비교하기 때문에 주의해야 합니다. Equls Equals 메서드는 System.Object 클래스에 정의된 메.. 2024. 4. 23.
프로토타입) 딸기 농장 카드 게임 -3 딸기 농장 카드 게임 -3 ----------------------------------------------------------------------------------------------------------------------------------- 게임 진행에 필요한 요소들을 추가 작업 진행했다. 게임 시작 목표 팝업 스테이지 (ScriptableObject) 이벤트 데이터 (ScriptableObject) 및 이벤트 팝업 아르바이트 기능 추가 게임의 시작에 목표에 대한 정보를 표시해주기 위해서 간단하게 팝업으로 진행했다. 해당 정보는 결과에서도 같은 형태로 처리되도록 작업 진행했다. 아르바이트라는 기능을 추가했다. 간단하게 Cost 2를 소모.. 2024. 4. 22.
개발지식) 랜덤을 구현하는 방식 종류 랜덤을 구현하는 방식 종류 랜덤을 구현하는 여러가지 방식이 존재하는데 단순하게 랜덤을구현도 가능하지만 상황에 따라 각기 다른 랜덤을 구현해야하는 경우가 존재한다. 그런경우에 간략하게 참고하면 될것 같다. 낙차확률 : 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.
반응형