일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Algorithm
- Blend Type
- 프로그래머스
- 깊이 우선 탐색
- ASTAR
- 오브젝트 풀링
- pccp 기출문제 3번
- 플레이어 방향전환
- heap tree
- Unity
- 유니티
- Object Poling
- Hp바
- Object Pooling
- 플레이어 이동
- pccp 기출문제 2번
- CSharp #자료구조
- Back Tracking
- 충돌위험 찾기
- LayerMark
- 너비 우선 탐색
- Hpbar
- Scrooling
- raycasting
- 2D슈팅게임
- pccp 기출문제 1번
- Animation State Machine
- Lv2
- Ainimation Blending
- C#
- Today
- Total
목록분류 전체보기 (199)
주녘공부일지
https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 정답코드 및 핵심 아이디어, 유의사항 - currPosition이라는 현재 위치를 가진 int형 배열을 선언 주석 참조 using System; public class Solution { public int[] solution(string[] park, string[] routes) { int[] currPosition = new int[2] { -1, -1 }; // 출발 위치 찾기 fo..
1. 미니게임 클리어 관리 - 모든 미니게임은 씬이 분리되어 있으며, 게임 시작은 씬 이동 완료 후 OnEnable() 호출 시점 - 미니게임이 끝나면 게임 클리어여부를 총괄하는 클래스에게 알림 public class MiniGameBase : MonoBehaviour { protected virtual void OnEnable() { MiniGameMgr.miniGameMgr.GameSet(); } public virtual void GameClear() { MiniGameMgr.miniGameMgr.GameClear(); } public virtual void GameOver() { MiniGameMgr.miniGameMgr.GameOver(); } ... } 2. 미니게임 영상 교수님 NPC들의 스..
캐릭터 애니메이터 스테이트 관리 고찰 복잡한 구조도를 가능한 편하게 확인하고 수정할 수 있도록 특정 모션들은 서브 머신으로 묶어서 관리 - 특히 Any State로 사용할 필요가 있는 Dash, Die, Skill(Attack) 등의 모션은 특히 신경써서 처리 -> 해당 트랜지션의 조건 파라미터만 충족하면 어느 상태든 넘어가버리기 때문에 불 변수와 트리거 변수를 이용해 더블체크 1) 파라미터 분류 규칙 - IsXX 변수 (Bool) : 해당 상태로 전환할 수 있다는 의미 -> 서브 스테이트 모션으로 전환, 탈출 조건 등에 사용 - XXState 변수 (Bool) : 해당 상태라는 의미 -> 중복으로 같은 스테이트에 들어가지 않게 하기 위한 조건 등에 사용 - XXTrigger 변수 (Trigger) : ..
1. 캐릭터를 제어하는 싱글톤 클래스 - 내 캐릭터와 상대 캐릭터가 존재하기 때문에 제어권을 가진 '나의 캐릭터'만 제어하는 기능을 함 - 캐릭터를 생성하고 생성 시 Action 대리자 함수를 등록해 이벤트 발생을 감지 public void PlayerCommand(ENUM_PLAYER_STATE nextState, CharacterParam param = null) { if (activeCharacter == null || !activeCharacter.isControl) return; switch (nextState) { case ENUM_PLAYER_STATE.Idle: activeCharacter.Idle(); break; case ENUM_PLAYER_STATE.Move: activeCharac..
1. 애니메이터 컨트롤러 - 복잡한 구조도를 가능한 편하게 확인하고 수정할 수 있도록 특정 모션들은 서브 머신으로 묶어서 관리 - bool 변수와 Trigger 변수로 두 번 이상 체크를 함으로써 안정성 향상 ex) isHit : 피격상태 / HitTrigger : 피격 1회 2. 애니메이터 오버라이드 컨트롤러 - 매우 복잡한 캐릭터의 애니메이터 컨트롤러를 재사용하기 위해 사용 - 원본 애니메이터 컨트롤러와 동일한 로직을 사용하지만 원본 대신 새롭게 할당된 애니메이션을 재생 - 애니메이션 클립 이벤트와 스테이트 머신 비헤이비어(후술)를 통해 해당 모션에 대한 기능을 함 3. 스테이트 머신 비헤이비어 활용 유니티에서 제공해주는 특별 스크립트 클래스로 스크립트를 상태 머신에 연결 가능 - 모션의 상태 변경을..
1. 공격, 이펙트 오브젝트 구조도 - 동기화되는 오브젝트들의 공통적인 기능들을 추상화하기 위해 상속 구조도를 설계해 구현함 2. 캐릭터별 동기화 오브젝트 영상 Knight 캐릭터 영상 Wizard 캐릭터 영상 https://godgjwnsgur7.tistory.com/80 [더 챌린저스] 오브젝트 풀링 오브젝트 풀링 public class ObjectPoolMgr { class Pool { ... } Dictionary pools = new Dictionary(); Transform root; int poolCount = 5; public void Init() { if (root == null) { root = new GameObject { name = "@Pool_Root" }.transform; }..
1. 제이슨 데이터 관리 - 제이슨 데이터를 빠르고 편리하게 사용하기 위해 파싱해서 딕셔너리로 사용 public void Init() { SkillDict = LoadJson("SkillData").MakeDict(); CharInfoDict = LoadJson("CharacterData").MakeDict(); } Loader LoadJson(string path) where Loader : ILoader { TextAsset textAsset = Managers.Resource.Load($"Data/{path}"); return JsonUtility.FromJson(textAsset.text); } [Serializable] public class Skill { public int skillType;..
1. 키 설정 시스템 - 인게임 내에서 유저에게 불편함을 줄 수 있는 입력 키들은 고정으로 위치 및 크기를 정해주기엔 개수가 너무 많다고 판단해서 유저가 위치, 크기, 투명도 등을 직접 변경하여 저장할 수 있게 함 -> 그래픽 팀에게 전달할 레퍼런스를 찾다가 예전에 플레이했던 '카트라이더 러쉬플러스' 라는 게임의 키 설정 방식이 매우 편리했던 기억이 있어 레퍼런스로 삼음 + 데이터 저장방식은 유니티에서 제공해주는 데이터 관리 클래스인 PlayerPrefs를 사용 2. 비교 영상 더 챌린저스 - 키 설정 시스템 카트라이더 러쉬플러스 - 키 설정 시스템
('https://godgjwnsgur7.tistory.com/'이하 'Project_Jun')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2023년 6월 29부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://godgjwnsgur7.tistory.com/'이하 'Project_Jun')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제..
1. BFS(Breadth First Search) - 너비 우선 탐색최단 경로, 임의의 경로를 찾고 싶을 때, 등에 사용- 큐(FIFO) 사용 // 큐를 이용 public void BFS(int index) { Node root = nodes[index]; Queue queue = new Queue(); queue.Enqueue(root); root.marked = true; while (queue.Count > 0) { var node = queue.Dequeue(); for (int i = 0; i 2. DFS(Depth First Search) - 깊이 우선 탐색조합류..