일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 인프런
- BFS
- 게임개발
- c#
- 유니티
- 웅진씽크빅
- 시리얼라이제이션
- 재귀
- 이분탐색
- 개발일지
- 프로그래머스
- DFS
- 운영체제
- 백준
- c++
- UI 자동화
- 이득우
- 언리얼
- unity
- unreal
- fsm
- binary_search
- lower_bound
- 너비우선탐색
- upper_bound
- 유한상태기계
- 안드로이드
- 구현
- 게임개발공모전
- Today
- Total
목록분류 전체보기 (53)
초고교급 희망

서론... [SerializeField] TMP_Text _text; ↑ 위와 같이 유니티 툴에서 직접 해당하는 오브젝트들을 바인딩하게 되면 번거롭다. 툴에서 하지 않고 코드를 통해 바인딩 하는 UI 자동화에 대해 배워보겠습니다. UI_Base.cs using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UI_Base : MonoBehaviour { protected Dictionary _objects = new Dictionary(); protected void Bind(Type type) where T : UnityEngine.O..
1. 명령 패턴이란? 메서드 호출을 실체화(reify)한 것이다. 실체화는 어떤 개념을 변수에 저장하거나 함수에 전달할 수 있도록 데이터, 즉 객체로 바꿀 수 있다는 걸 의미한다. 여기에서 명령 패턴을 '메서드 호출을 실체화한 것'이라고 한 것은 함수 호출을 객체로 감쌌다는 의미다. 2. 입력키 변경 예시 모든 게임에는 X, Y, A, B 버튼등의 유저 입력을 읽는 코드가 있다. 간단하게 구현하면 다음과 같다. void InputHandler::handleInput() { if (isPressed(BUTTON_X)) jump(); else if (isPressed(BUTTON_Y)) fireGun(); else if (isPressed(BUTTON_A)) swapWeapon(); else if (isPr..

이번 주 저의 할 일이었는데요 맨 밑에 두개...는 좀 손볼게 많아서 완성이 덜 됐네요. 중요한 내용 위주로 설명해드리겠습니다!! 참고로 미니언은! 보스 몬스터의 공격 스킬 중 하나인데요, 작은 쫄병 몬스터들을 소환해서 공격하는 것이 있습니다. 그 때 소환된 녀석들을 미니언이라고 부르고 있어요! 친구가 제가 하던거에 미니언이라고 적힌거 보고 요즘 미니언즈 만드냐고 하길래 추가 설명입니다 ㅜ.ㅜ 1. 미니언 피격 Effect Minion클래스의 Partial 클래스로 Minion.Behit 클래스를 만들어서 구현해줬습니다 EJ님이 이렇게 구현하시길래 보고배워서 따라해봤습니다! 파샬 클래스 설명 -> https://ymthebest.tistory.com/34 [C#] Partial 클래스 Partial이란?..
Partial이란? 클래스, 구조체, 인터페이스 또는 메서드의 정의를 둘 이상의 소스 파일에 분할하는 것이다. 모든 부분은 컴파일될 때 결합된다. 장점 대규모 프로젝트에서 작업하는 경우 클래스를 개별 파일에 분산하면 여러 프로그래머가 동시에 클래스에 대해 작업할 수 있습니다. 예시 public partial class Employee { public void DoWork() { } } public partial class Employee { public void GoToLunch() { } } Unity에서 사용 예시 현재하는 프로젝트에서 Boss나 player처럼 길이가 긴 클래스들은 partial class로 되어있다. 관련있는 기능별로 스크립트가 나누어져있는데 가독성도 좋고 깔끔해서 좋다. 이 경우..

1. Unity 구성 우리가 코드로 접근하는 것은 C#이지만 엔진 내부의 공간은 C++로 이루어져있다. Physics는 물리 충돌을 위한 공간. 2D용과 3D용 물리엔진이 따로 있음 transform에 C#으로 접근하면 엔진 내부 C++와 물리엔진 공간 모두에 영향을 미친다. 오버로드 되어 있는 translate코드들-> 내부에 어떻게 생겼는지 깃허브에서 c++로 볼 수 있다. C#과 C++과 물리엔진 세 가지의 세계 중, 한 세계에서 변화를 주면 나머지 두 공간에서도 싱크를 맞추기 위한 코드가 호출된다. 포지션을 하나 움직인다고 해서 독립적으로 작동하는 것이 아니라 로테이션에도 영향을 미친다. 서로 다 영향을 미치는 존재. (수포자를 위한 게임 수학이라는 책에 자세히 나온다고 함..(?) 네? 갑자기 ..
보호되어 있는 글입니다.

1. 미니언 FSM 시스템 이번엔 보스 몬스터의 공격 패턴 중 하나인 미니언을 구현하였습니다. ej님이 이전에 구현해두신 유한상태기계(FSM) 클래스들을 상속받아서 사용했습니다. FSM에 대한 설명은 여기로... https://ymthebest.tistory.com/30 미니언의 상태는 idle, move, dead, behit 4가지가 있습니다 근데 지금 behit는 구현이 안 되어서 공격 당하면 상태가 dead로 설정되고 바로 죽어버립니다.ㅠㅠ dead로 가기전에 behit 상태를 추가해서 이펙트가 출력될 수 있도록 앞으로 수정해야합니당... 보스의 상태가 미니언을 불러내는 공격이 되었을 때 오브젝트 풀링으로 미니언 프리팹들을 생성 합니다. 그럼 생성된 미니언 클래스에서 미니언 스테이트 머신을 생성해..

FSM이란? FSM은 이름처럼 유한한 수의 상태로 구성되며, 주어진 시간에 이 상태는 하나만 활성화된다. 각 상태는 수신하는 입력에 따라 출력으로 전환할 상태를 정의한다. 출력 상태가 새 활성 상태가 된다. 즉, 상태 전환이 발생한다. 예시 플랫포머 게임에서 바닥에 서 있는 캐릭터 스탠딩 상태는 버튼을 눌러 캐릭터를 점프할 때까지 활성 상태이다. 버튼 누름을 유효한 입력으로 식별하고 출력으로 점프 상태로 전환한다. 계층적 상태 머신 계층적 상태 머신을 통해 공유하거나 공통인 동작을 위해 다른 상태로 일종의 위임을 할 수 있다. 계층적 상태 머신에서 하위 상태는 처리되지 않은 입력을 상위 상태로 위임한다. 이를 통해 논리를 유지하면서 FSM의 크기와 복잡성을 줄일 수 있다. 상태 패턴의 의도 내부 상태가 ..