분류 전체보기
-
24년 6월 3일 TIL공부 기록 2024. 6. 3. 22:28
옵저버 패턴 (Observer Pattern)설명옵저버 패턴은 객체 간 일대다(one-to-many) 관계를 정의하여, 한 객체의 상태가 변경될 때 그 상태 변화를 모든 종속 객체에 통보하고 자동으로 갱신되도록 하는 패턴이다. 이 패턴은 주로 이벤트 핸들링 시스템에서 사용 된다.구성 요소Subject (주제): 상태를 관리하고, 옵저버들을 등록하거나 제거하는 역할Observer (옵저버): 주제의 상태 변화를 관찰하고, 상태가 변경될 때 실행되는 업데이트 메서드를 정의장점느슨한 결합: 주제와 옵저버가 독립적이므로, 주제의 변경이 옵저버에 직접적인 영향을 주지 않는다.확장성: 새로운 옵저버를 쉽게 추가할 수 있다.유연성: 주제의 변경을 자동으로 통보받아, 다양한 반응을 구현할 수 있다.단점복잡성 증가: 다..
-
24년 5월 31일 TIL공부 기록 2024. 5. 31. 12:31
Awake 초기화에 대해서값을 초기화 하는데 Awake를 많이 썼다. 그런데 이건 좋지 않다고 한다. Awake에 너무 그거 하면 안 된다고 한다. 문제가 생겼었는데 나는 먼저 초기화가 되어야 하고 그 다음에 초기화가 되어야 하는 코드들이 있게 작성을 했다. 이 때 둘 다 Awake일 경우에 순서를 정해줄 수가 없어서 먼저 초기화 돼야 할 것이 안 되고 나중게 초기화가 먼저 될 수가 있다. 그로 인해서 코드가 정상적으로 작동이 안 될 수가 있다. 그렇기에 이 부분을 신경을 쓰면서 작성 해야 한다. 방법으로는 초기화를 하는 함수를 직접 만들어서 수동으로 호출 하는 방법도 있고 Awake에서 if(null)등을 활용 해서 보완 하는 방법도 있다. =========rigidbody를 이용한 움직임에 대해..
-
24년 5월 30일 TIL공부 기록 2024. 5. 30. 07:12
Unity Input System에서 Action Type은 입력을 트리거하고 이벤트를 발생시키는 방법을 정의하는 데 사용 된다. 다양한 Action Type이 있으며, 각각의 유형은 특정한 상황 또는 입력 유형에 맞게 사용 된다. 일반적으로 사용되는 Action Type 몇 가지를 살펴 본다:Button:단일 이벤트를 발생시키는 키 또는 버튼에 대한 입력을 나타냄. 예를 들어, 게임에서 "점프" 버튼이나 "공격" 버튼에 사용 됨.Value:지속적인 값을 가지는 입력을 나타냄. 예를 들어, 조이스틱의 위치나 마우스의 이동량을 나타내는데 사용될 수 있음.Vector2/Vector3:2차원 또는 3차원 벡터 값으로 입력을 나타낸다. 보통 화면의 좌표나 객체의 방향을 나타내는 데 사용 된다.Composite:..
-
24년 5월 29일 TIL공부 기록 2024. 5. 29. 11:09
Visual Studio 작업 할 때 *모양 나오는 것은 저장이 되지 않았다는 것. 그리고 수정한 Script File이 여러개면 모두 다 개별로 저장을 눌러줘야 함. 저장을 눌러주지 않은 Script는 컴파일이 되지 않음. 그래서 유니티 작업 할 때 가끔식 코드 친 게 적용이 안 되던 거였음. 하 체중이 내려간 기분이다. 속이 후련하다. 이것 때문에 시간을 엄청 날려먹었다. 왜 안 되나 했네. 코드를 다 작업 하고 Visual Studio를 끄는 습관이 있다면 상관 없는 문제. InputAction.CallbackContextInputAction.CallbackContext는 Unity의 Input System에서 사용자 입력을 처리하는 데 중요한 역할을 한다.이 객체는 입력 액션에 대한 콜백 메..
-
24년 5월 28일 TIL공부 기록 2024. 5. 28. 21:21
StringToHash 메서드에 대해StringToHash는 주어진 문자열을 해시 값으로 변환한다. 이 해시 값은 문자열을 직접 비교하는 것보다 훨씬 빠르게 비교할 수 있다. 게임 개발에서 특히 유용하다. Unity에서 Animator.StringToHash 메서드는 애니메이션 상태나 파라미터 이름을 해쉬 값으로 변환한다. 이를 통해 애니메이션 상태 전환 시 성능을 향상시킬 수 있다. StringToHash를 사용해야 하는 이유성능 향상: 문자열 비교는 비용이 많이 들지만, 정수 값 비교는 훨씬 효율적이다.일관성 유지: 해시 값을 사용하면 문자열 오타로 인한 버그를 줄일 수 있다.메모리 절약: 해시 값을 사용하면 문자열을 직접 저장할 필요가 없어 메모리를 절약할 수 있다. 주의사항StringToHash ..
-
24년 5월 27일 TIL공부 기록 2024. 5. 27. 23:37
Instantiate 생성생성 할 것과, 어디에 생성 할 것과, 회전 값을 줄 수 있다. InvokeRepeating 함수를 계속 실행 할 수 있게 하는 함수 실행 할 함수의 이름, 몇 초뒤에 실행 할 것인지, 몇 초마다 실행 할 것인지, 를 정할 수 있다. 둘 다 좋지 않은 함수. 비용이 비싸다. 연산이 느리다. 성능이 저하 된다. 입문주차 마무리 특강 과제 하면서 기억이 안 나는 이 두 가지를 다시 복습 했다. 몇 초마다 실행 하게 하는 것은 코루틴을 사용 해도 가능하다. 생성은 음
-
스파르타 부트캠프 게임개발입문주차 개인과제게임 개발기록 2024. 5. 26. 00:10
타일맵을 이용하여 맵을 만들고 캐릭터가 움직이는 게임을 만들자. 플레이어의 움직임은 InputSystem을 이용한 옵저버패턴을 사용해서 똑같이 구현함.캐릭터의 Animation도 강의 들었던 것과 같은 형식으로 구현함. 여기서 캐릭터의 flipX를 ture,false 주는 것을 조금 다르게 구현함. 왼 쪽을 눌렀을 때 체크, 오른 쪽 누르면 체크 해제 하게 했음. private void LookLotation(Vector2 direction) { if(direction.x == idle) return; else if(direction.x == left) { if(characterSpriteRenderer.flipX) return; characterSpr..
-