일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 2870번
- 2870번 수학숙제 c++
- 백준 1103번 게임
- Lv.3
- 코테
- c++
- 수학숙제
- 백준
- dfs
- 백준 17070번 c++
- 오브젝트 풀링
- 2870번
- 백준 17070번
- 2870번 c++
- 프로그래머스
- 백준 1103번 c++
- 백준 1103번
- 2468 c++
- 백준 c++ 2468번
- Beakjoon
- 코딩테스트
- C#
- 2870번 수학숙제
- 플레이어 이동
- Lv2
- 17070번
- Algorithm
- 백준 c++ 2870번
- 유니티
- Unity
- Today
- Total
목록GameDevelopment (51)
주녘공부일지

0. 준비하기 - 카메라는 그대로, 배경이 아래로 움직여서 플레이어가 위로 움직이는 것처럼 느껴지게 만듬 - 카메라에서 벗어난 배경은 다시 위쪽으로 붙여서 재활용하여 사용할 예정 ( 1. 스크롤링 ) - Back Group Top, Middle, Bottom 으로 나눠 Parallax 기법을 사용할 예정 ( 2. 패럴렉스 ) - Back Group Botton, Middle, Top 에 스크립트 추가 ( class Background ) + 이미지는 위에서 아래로 움직일 예정 1. Scrooling 기법 - Camera View 높이 = Size x2 // veiwHeight - 기본 셋팅 (시작 셋팅) : startIndex = 2, endIndex = 0 - sprites[0] : 가장 밑에 있는 스..

0. 준비하기 - string 으로 타입을 저장하여 분류 - Rigidbody2D를 가져와 아이템을 * 1f의 속도로 떨어뜨림 - OnTriggerEnter2D로 BorderBullet 태그에 닿으면 객체를 파괴 - Boom Icon은 기본 셋팅 투명도 0 ( 폭탄의 사용 가능 갯수를 투명도 0, 1로 나타내는 로직이기 때문 ) 1. 충돌 로직 - Item 태그에 닿으면 실행할 로직을 추가 ( power, boom 은 최댓값에 도달하면 점수로 변환 ) - 예외처리 내용 : 아이템 중복 드롭 방지 - 적 기체 파괴 시 랜덤한 확률로 아이템 드롭하는 로직 추가 ( Instantiate()로 생성 ) 2. 필살기 - isBoomTime : 필살기 중복 사용 방지 - boomEffect (GameObject) ..

0. 목숨과 점수 UI 배치 - UICanvas 에 Text와 Image를 추가하여 Rect Transform를 설정 Tip) 우측 이미지 상태에서 Shift와 Art를 눌러서 선택 - Scale With Screen Size : 기준 해상도의 UI 크기 유지 // 웬만하면 이 외에는 사용할 일 없음 1. UI 로직 - 각 적 기체의 점수는 Enemy 스크립트에서 int형 변수로 선언하여 관리 - Text, Image, 등의 UI 변수는 using UnityEngine.UI를 선언해야 사용 가능 string.Format() : 지정된 양식으로 문자열을 변환해주는 함수 - "{0:n0}" : 세자리마다 쉼표로 나누는 양식 UpdateLifeIcon(int life) : int형 변수 life를 인자로 받아..

1. 생성된 적 이동 - ranEnemy, ranPoint로 적 기체의 종류와 생성될 위치를 랜덤으로 지정하고, Instantiate()로 생성 - enemyLogic 변수로 Enemy 를 가져와 생성 직후에 플레이어에 대한 정보를 넘겨줌 - ranPoint 5,6번은 우측에 존재하는 스폰포인트이기 때문에 이동방향에 -1을 곱하여 좌측 대각선으로 이동하게 설정하고 우측에서 생성되기 때문에 생성될 적 기체 이미지를 back 기준으로 90도 회전 ( 7,8번은 반대쪽이기 때문에 오른쪽으로 이동 ) - 외에는 위에서 아래로 이동 gameObj.transform.Rotate(back or forward * 각도); - 2D에선 back, forward만 사용 // back : z축 -1 방향 ( 반대방향이라고 ..

0. 준비하기 - 적 기체 L, M, S 타입 설정 - 기본 상태와 피격상태는 배열로 스프라이트를 가짐 - L (BoxCollider2D), M (Polygon Collider2D), S (CircleCollider2D) Sprite Editor - Custom Physics Shape - Generate 클릭 - Polygon Collider 영역 수정 가능 - 빈 오브젝트는 태그 아이콘으로 위치 확인 가 능 // Scene에서만 확인할 수 있는 아이콘 + Scene의 상단에 있는 메뉴에서 Gizmos의 최상단의 3D Icons 체크박스가 해제되어 있어야 표시됨 1. 적 기체 프리팹 - 피격 시 실행되는 OnHit 함수, 매개변수로 데미지를 받음 + 피격 이미지 Invoke 함수로 기본 이미지 변경 딜..

1. 프리팹 생성 총알 프리팹을 만들고 에셋에 Prefabs 폴더를 만들어서 프리팹들을 관리 - 충돌할 범위를 콜라이더로 설정하고 충돌감지를 위해 리지드바디2D 추가하고 물리 연산 타입을 Kinematic으로 처리할 것이기 때문에 Is Trigger 체크 + Resources.Load()를 이용할 Prefabs이라면 Resources 폴더에 넣어야 함 https://godgjwnsgur7.tistory.com/7?category=986022 [Unity] Prefab이란? 프리팹(Prefab) : 게임 오브젝트 -> 재사용 가능한 에셋 씬에 올라온 오브젝트에 접근할 수 없는데, 이를 하기 위해서는 인스턴스화된 오브젝트를 게임매니저에게 가지게 하여 프리팹의 오브젝트 godgjwnsgur7.tistory.c..

Force : 연속 - 현실적인 물리현상 Impulse : 연속 + 질량 무시 - 오브젝트의 질량에 관계없이 이동 Acceleration : 불연속 - 짧은 순간의 힘, 충돌, 폭발, 등에 사용 VelocityChange : 불연속 + 질량 무시 - 질량이 다른 여러 물체를 같은 속도로 이동시킬 때, 등에 사용 + ForceMode2D에서는 위의 두개만 지원함 + 연속이란, 연속적으로 힘을 가하는지 여부Fol rigidR.AddForce(dirVecR.normallized * 4, ForceMode2D.Impulse); rigidL.AddForce(dirVecL.normallized * 4, ForceMode2D.Impulse); dirVecR과 dirVecL 방향으로 질량을 무시하는 연속적인 힘을 가함..

0. 준비하기 1. 플레이어 이동 Move() : Updata문에서 실행 // 캡슐화 - Input.GetAxisRaw() : 방향값 추출 (-1, 0, 1) RawData : 가공되지 않은 데이터, 등을 뜻함, Axis : 축 + transform 이동에는 Time.DeltaTime 사용! + 플래그 변수를 사용해 경계 이상 넘지 못하도록 제한 // 2번 충돌감지 2. 경계 설정 (플레이어 이동 불가 로직) - OnTiggerEnter2D(플래그 설정) : 플래그 변수 true (이동 불가 상태) - OnTriggerExit2D (플래그 지우기) : 플래그 변수 false (이동 가능 상태) + 4방향 각각 콜라이더로 경계를 설정 https://godgjwnsgur7.tistory.com/4 [Unit..

프리팹(Prefab) : 게임 오브젝트 -> 재사용 가능한 에셋 // 템플릿프리팹의 장점- 프리팹은 각 씬마다 동일한 게임오브젝트를 생성하거나 사용해야할 때 사용하면 편리함- 각 프로퍼티 값이 변경되었을 때 씬마다 일일히 수정을 하지 않아도 됨 즉, 재사용성↑, 프리팹 인스턴스로 한번에 관리 용이 프리팹은 씬에 올라온 오브젝트에 접근할 수 없는데, 이를 하기 위해서는 인스턴스화된 오브젝트를 게임매니저에게 가지게 하여 프리팹의 오브젝트를 사용할 때 게임 매니저에 접근하여 처리하는 로직을 작성하는 등의 방법으로 사용 가능 + 당연히 프리팹끼리는 접근 가능 프리팹 중첩 : Nested Prefabs- 프리팹 내에 다른 프리팹 인스턴스를 포함 프리팹 상속 : Prefab Variant- 기존 프리팹의 인스펙터..

Box Collider 2D - 포지션, 폭과 높이가 로컬 좌표 공백 안의 직사각형 형태로 축에 정렬 Trigger : 물리적 연산을 하지 않고 충돌을 감지할 수 있음 (Is Trigger 체크) - OnTriggerEntere2D : 오브젝트에 연결된 트리거 안에 다른 오브젝트가 들어갔을 때 호출 - OnTriggerExit2D : 충돌에서 떨어질 시 호출 - OnTriggerStay2D : 충돌하고 있는 동안 매 프레임 계속 호출 Collision : 물리적 연산을 하며 충돌을 감지 - OnCollisionEnter2D : 오브젝트의 자식 콜라이더가 다른 콜라이더에 충돌 시 호출 - OnCollisionExit2D : 충돌에서 떨어질 시 호출 - OnCollisionStay2D : 충돌하고 있는 동안..