일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Ainimation Blending
- Animation State Machine
- LayerMark
- 일시정지
- joystick
- 2D슈팅게임
- CSharp #자료구조
- Unity
- Blend Type
- rigidbody
- Prefabs
- 스크롤링
- rotation
- 프리팹
- raycasting
- Vector3
- Object Poling
- Hpbar
- 플레이어 방향전환
- 패럴렉스
- Hp바
- apk
- 유니티
- Parallax
- Scrooling
- 오브젝트 풀링
- Object Pooling
- 플레이어 이동
- raycast
- Transform
- Today
- Total
목록전체 글 (189)
주녘공부일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ci5Dln/btrswUZ2Ftk/kk0oNo5ty4KSRgAM50FXG0/img.png)
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를 인자로 받아..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QmMu6/btrrYRDlFZ0/yuMbjzVfMw0wFknrLSen4k/img.png)
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 방향 ( 반대방향이라고 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JQ9Ml/btrrRTVjkS5/v1uu3e0wuTzA7dW1Up9EPk/img.png)
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 함수로 기본 이미지 변경 딜..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8UsJN/btrrQznSeCw/d5xvAI1YuktqK1jYKYGEK0/img.png)
1. 프리팹 생성 총알 프리팹을 만들고 에셋에 Prefabs 폴더를 만들어서 프리팹들을 관리 - 충돌할 범위를 콜라이더로 설정하고 충돌감지를 위해 리지드바디2D 추가하고 물리 연산 타입을 Kinematic으로 처리할 것이기 때문에 Is Trigger 체크 + Resources.Load()를 이용할 Prefabs이라면 Resources 폴더에 넣어야 함 https://godgjwnsgur7.tistory.com/7?category=986022 [Unity] Prefab이란? 프리팹(Prefab) : 게임 오브젝트 -> 재사용 가능한 에셋 씬에 올라온 오브젝트에 접근할 수 없는데, 이를 하기 위해서는 인스턴스화된 오브젝트를 게임매니저에게 가지게 하여 프리팹의 오브젝트 godgjwnsgur7.tistory.c..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cv3Oqx/btrr0BMdd8I/avIslr5tPbEy0Uh6Vy1li0/img.png)
Force : 연속 - 현실적인 물리현상 Impulse : 연속 + 질량 무시 - 오브젝트의 질량에 관계없이 이동 Acceleration : 불연속 - 짧은 순간의 힘, 충돌, 폭발, 등에 사용 VelocityChange : 불연속 + 질량 무시 - 질량이 다른 여러 물체를 같은 속도로 이동시킬 때, 등에 사용 + ForceMode2D에서는 위의 두개만 지원함 + 연속이란, 연속적으로 힘을 가하는지 여부Fol rigidR.AddForce(dirVecR.normallized * 4, ForceMode2D.Impulse); rigidL.AddForce(dirVecL.normallized * 4, ForceMode2D.Impulse); dirVecR과 dirVecL 방향으로 질량을 무시하는 연속적인 힘을 가함..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bG0cjy/btrsnnWt7nF/af7rAOJH2Prud5tmMAWWH0/img.png)
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bMSCa1/btrrP3CliYh/gOHVW5LPmLZuQ5Mk0Drvkk/img.png)
프리팹(Prefab) : 게임 오브젝트 -> 재사용 가능한 에셋 // 템플릿프리팹의 장점- 프리팹은 각 씬마다 동일한 게임오브젝트를 생성하거나 사용해야할 때 사용하면 편리함- 각 프로퍼티 값이 변경되었을 때 씬마다 일일히 수정을 하지 않아도 됨 즉, 재사용성↑, 프리팹 인스턴스로 한번에 관리 용이 프리팹은 씬에 올라온 오브젝트에 접근할 수 없는데, 이를 하기 위해서는 인스턴스화된 오브젝트를 게임매니저에게 가지게 하여 프리팹의 오브젝트를 사용할 때 게임 매니저에 접근하여 처리하는 로직을 작성하는 등의 방법으로 사용 가능 + 당연히 프리팹끼리는 접근 가능 프리팹 중첩 : Nested Prefabs- 프리팹 내에 다른 프리팹 인스턴스를 포함 프리팹 상속 : Prefab Variant- 기존 프리팹의 인스펙터..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btzmrs/btrq8IZMbg1/m2nrEuPFSzCkl0qcbKtWg1/img.png)
Box Collider 2D - 포지션, 폭과 높이가 로컬 좌표 공백 안의 직사각형 형태로 축에 정렬 Trigger : 물리적 연산을 하지 않고 충돌을 감지할 수 있음 (Is Trigger 체크) - OnTriggerEntere2D : 오브젝트에 연결된 트리거 안에 다른 오브젝트가 들어갔을 때 호출 - OnTriggerExit2D : 충돌에서 떨어질 시 호출 - OnTriggerStay2D : 충돌하고 있는 동안 매 프레임 계속 호출 Collision : 물리적 연산을 하며 충돌을 감지 - OnCollisionEnter2D : 오브젝트의 자식 콜라이더가 다른 콜라이더에 충돌 시 호출 - OnCollisionExit2D : 충돌에서 떨어질 시 호출 - OnCollisionStay2D : 충돌하고 있는 동안..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RmgRN/btrr0BGxGpV/6YOZVz0UHiCW55VrXioERK/img.png)
Rigidbody2D란? - 오브젝트를 물리 엔진이 제어하게 만듬 ( + 중력 제어 ) Body Type - Dynamic : 밀어내는 등 물리연산 o - Kinematic : 밀어내는 등 물리연산 x ( 물리연산이 없기 때문에 충돌감지만 가능해짐 -> 로직을 짜서 막아야 함 ) - Static : 고정 + rigidbody2D의 Simulated가 체크 해제되어 있으면 다른 충돌체와 상호작용을 하지 않음 Rigidbody를 이용한 물체 이동 - AddForce : 힘을 중복(중첩)해서 가할 경우 가속 - Velocity : 일정한 속도로 이동 (속력을 가짐) https://godgjwnsgur7.tistory.com/10 [Unity] ForceMode(ForceMode2D) Force : 연속 - 현..