✨매일 쓰는 습관✨
Unity 3기 과정 시작~ 하겠습니다
불모지에서 시작하는 게임 개발
헤딩의 날
시간 순삭
특성 : 파워헤더
두뇌 풀 가동
TEXT 게임 해설 및 추가 공부
완성이 완성이 아닌
이런 세세한 오류 못 참음
Hell
null
1) 문제점 강의를 들으며 게임 제작을 하던 중에, 플레이어 객체가 상하좌우 단일 이동은 문제가 없으나 대각선 이동을 할 때 스피드가 평소보다 빠른 문제가 발생했다. 2) 원인 > 오랜만에 보는 피타고라스 (그림판) 가령 스피드가 1이라고 치면, x나 y축으로
현재 2D게임에서 Input Manager를 통한 이동 구현을 하고 있다. > # Input Manager? 유니티에서 플레이어의 입력을 관리하는 시스템. 키보드, 마우스, 조이스틱 등 다양한 입력 장치로부터의 입력을 감지하고, 그 입력에 반응하여 게임 내에서
먼저 유니티 Package Manager에서 Input System을 설치했다. > # 🎮 Input System Assets 우클릭 - Create - Input Actions 클릭으로 생성하면 컨트롤러가 생긴다. 1. Action Maps 입력값을 받을
Time
네놈Find
에러의 해결 방식 콘솔창에서 에러 메세지를 읽고 어떤 에러 타입인지 파악 에러 메세지를 더블클릭하여 에러가 발생한 스크립트로 이동 에러 타입으로 에러 원인을 발생시킨 코드를 유추 해당 에러 타입에 맞게 적절한 코드 수정
메탈슬러그 3 우주 미션에 등장하는 특정한 적 UFO를 하나 구현해야 했는데 일단 조건부터 정리해보았다. 플레이어를 특정하지 않는다, 아래를 향한 단순한 수직 공격. 1회 공격 - 이동 - 1회 공격 - 이동... 이런 패턴으로 계속 반복해야 한다. 이동 시
게임 진행 도중 화면 상단에서 아래로 서서히 내려오며, 파괴 되면 좌우로 퍼져서 날아가 사라지는 큰 운석 게임 오브젝트를 구현해야 한다. Ondeath 함수 적의 죽음 관련 cs에 고유의 파괴, 사망 애니메이션을 가진 적들은 따로 자신 만의 파괴-사망 모션이 작
메탈슬러그는 명작이 맞다.
Onclick을 통해 다음 씬 로드를 하고 있었는데, 씬이 로드되면 즉시 실행하고 싶은 기능이 있어서 찾아보니 OnSceneLoaded라는 메서드가 있다는 것을 알게 됨. ! 차이점 ! OnSceneLoaded는 이벤트 기반으로 작동하며 Scen
미안하다, 이거 보여주려고 TIL 썼다.
father?
OnCollision & OnTrigger Collsion 컴포넌트가 있는 두 오브젝트 간의 충돌이 발생했을 때, isTrigger 체크 유무에 따라 발생하는 이벤트 함수 1. 호출 조건 OnCollision 함수 = 두 오브젝트 모두 isTrigger 해제된
MovePosition 물리 작용을 이용해 위치 정보를 계산하는 함수. Rigidbody 컴포넌트의 메소드이며 (Rigidbody가 없으면 작동 x) Vector 값을 인수로 지정하여 해당 위치로 이동. 물리 작용이 있는 상체에서 오브젝트가 충돌 가능한 벽이
Instantiate() 컴퓨터 프로그래밍에서 클래스 또는 개체의 인스턴스를 생성하거나 추상적인 것을 구체적인 형태로 나타내거나 구현하는 것. 유니티에서는 주로 게임 오브젝트를 생성하는 메서드이다. (원본 게임 오브젝트를 복제) 주로 투사체나 몬스터 스폰, 기타
유니티의 Cursor 클래스는 유니티에서 마우스 커서의 상태를 제어하는데 사용된다. 마우스 커서의 표시 유무, 형태 및 잠금 상태를 변경할 수 있다. 예시) FPS 게임에서 커서 안보이게 + 게임 화면 내에만 있게 할 때. Cursor.visible: 커서
🍳 구현하고자 한 로직 유니티에서 특정 버튼 클릭을 하면 미리 준비해둔 UI를 설정해둔 위치로 이동(팝업) 시킨다. Unity RectTransform 클래스의 anchoredPosition을 사용. UI를 클릭하면 다시 원래의 위치로 돌아가야 한다.
인스펙터 창에서는 플레이어에게 적이 피해를 받고 있지만, 실제로는 눈에 보이지 않기 때문에 적의 체력 HP바를 만들어보기로 했다. 적의 체력바 생성 Canvas 생성 -> World Space 전환 이후 Rect Transform 초기화 및 값 조정 이 Canv
Unity 게임 엔진에서 사용되는 C# 스크립트는 다양한 기본 메서드들을 제공하여 게임 개발 과정을 도와준다.
Invoke Unity의 MonoBehaviour 클래스에 내장된 메서드 지정된 시간이 지난 후에 특정 함수를 자동으로 호출하는 기능 사용법 methodName: 호출하려는 함수의 이름, String 형태 delay: 함수가 호출되기까지 대기할 시간, 초(s) 단
유한 상태 머신(Finite State Machine, FSM) 프로그래밍에서 특정 상태들 사이의 전환을 관리하는 모델 게임 개발에서 캐릭터의 행동, 게임 레벨의 상태, UI 흐름 관리 등 다양한 곳에 활용 미리 상태 간의 관계를 그리면 수월한 코드 작성 가능 여기서
인트로 씬에서 Start 버튼을 눌러 게임 플레이 씬으로 씬을 전환 하였을 때 화면이 어둡게 표현되는 문제가 발생 함. 해결 방법 : Generating Light  메서드 메서드에게 도착할 위치(Vector3)를 전달하면, 에이전트가 자동으로 경로를 계산하고 해당 위치로 이동하도록 지시 함. 예시)
테스트용 플레이어 오브젝트이다. 하위에 스프라이트 렌더러 오브젝트가 존재하고 있다. >오른쪽으로 이동 할 때는 그대로, 왼쪽으로 이동할 때는 왼쪽을 바라보도록 x축을 기준으로 반전하고 싶다. 일단 임시로 구현해둔 Input Action(Unity Event 기
Invoke Unity Event 사용
Input Action, rigid body 기반 이동 사용 전체코드 context.started는 버튼 입력이 시작될 때 true가 되며, context.canceled는 버튼 입력이 끝날 때 true가 됨. 버튼이 눌릴 때 Coroutine을 시작하여 슬라
우리는 커비의 시대에 살고 있다.
2D 환경에서 조명을 표현하고 싶어서 Universal RP를 설치하여 구현해보기로 함 확장 프로그램 설치 ( 프로젝트 시작 시 URP를 포함하지 않았었다. ) Assets에 URP Asset 생성, Renderer를 Assets 인스펙터에 적절하게 부여  메서드를 사용해보았다. >## AddListner ? ...
일단 Text 컴포넌트의 각 요소들을 살펴보면 Text : 화면에 표시되는 실제 텍스트 입력하는 곳 Font: 텍스트에 사용할 폰트 Font Style: 텍스트의 스타일 (예: Normal, Bold, Italic). Font Size: 텍스트의 크기 Line Spacing: 줄 간격 Rich Text: 텍스트 내에서 태그를 사용해 스타일을 ...
위 gif처럼 플레이어가 공격 할 때 다단히트가 되게 하고 싶었다. 예를 들어 JumpAttack을 한다고 할 때 점프 키를 누르면 공격용 트리거 콜라이더가 On되고, Invoke를 통해 0.4초 후 콜라이더를 Off해주어 0.4초 동안 공격 판정이 존재하게 하였
플레이어가 공격하면 Trigger 충돌 검사를 통해 히트 이펙트를 발동시키는 메서드다. 한 가지 디테일적인 문제가 있다면 collision.transform.position 충돌한 지점, 시각적으로는 충돌 객체의 중심에서 히트 이펙트가 발생한다는 것이었다. (아
차지 샷, 쉽지 않음.
무언가와 충돌해서 상호 작용을 하는 메서드 등의 조건문 안에는 주로 부딪힌 오브젝트의 Tag 의 문자열을 검사하는 방식이 주로 쓰이고 있다. 나 역시 마찬가지였는데, 큰 프로젝트는 아니지만 문자열 검사보다 속도도 빠르고 성능적으로도 유리한 비트 연산을 이용해보려고 한다. 1. Tag의 문자열로 검사 > 익히 아는 그 녀석, 자세한 설명은 생략한다. 2...
플레이어가 원거리 공격 (투사체 발사)을 할 때, 투사체 오브젝트를 새로 생성-파괴 해서 사용하는 것이 아닌, 미리 오브젝트를 비활성화 상태로 만들어두고 활성/비활성화를 통해 재활용하는 오브젝트 풀링 방식을 사용하고 있었다. 문제 발생 투사체 오브젝트에 부착 된 스크립트 중 일부 내용인데, 만약 투사체를 적중 시킬 다른 오브젝트(몬스터, 벽 등) 외에 ...
Yield 캐싱 전 코드플레이어가 공격을 하고, 트리거 콜라이더를 여러번 On / Off 하여 다단 히트 데미지를 주는 메서드이다.그런데 IEnumerator를 사용하는 코루틴에서 new WaitForSeconds를 반복적으로 사용하면, 각 반복마다 새로운 WaitFo