일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- raycast
- Animation State Machine
- 일시정지
- 스크롤링
- Blend Type
- Hpbar
- Vector3
- 유니티
- joystick
- 패럴렉스
- 오브젝트 풀링
- Hp바
- rigidbody
- 플레이어 방향전환
- Prefabs
- CSharp #자료구조
- Object Poling
- Object Pooling
- Scrooling
- raycasting
- Unity
- LayerMark
- Transform
- 2D슈팅게임
- 플레이어 이동
- 프리팹
- Ainimation Blending
- apk
- rotation
- Parallax
- Today
- Total
목록Unity (10)
주녘공부일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b4N7sK/btrw6fYRdjh/17g9mGQlRo8IKCOkdj7G81/img.png)
Animation Blending 이란? 블랜드 트리를 활용하여 두 가지 이상의 모션을 섞는 것으로, 매끄러운 애니메이션 재생을 위해 사용함 ( 즉, 애니메이션 변화에 딜레이를 주면서 딜레이되는 시간동안 모션을 섞는 것이라고 봐도 무방 ) Blend Type 1D : 블랜드 할 기준 값이 하나만 필요한 블랜드 트리에 사용 ( 아래 예제의 wait_run_ratio 파라미터 ) 2D Simple Directional - 모션이 다른 방향을 표시할 때 유용, 같은 방향으로 여러 모션을 가질 수 없음 ex) 앞으로 걷기, 뒤로 걷기, 오른쪽으로 걷기, 왼쪽으로 걷기 2D Freeform Directional - 모션이 다른 방향을 표시하고 같은 방향에서 여러 모션을 가질 수 있음 ex) 앞으로 걷기, 앞으로 ..
Camera 엔진 상의 Main Camera 오브젝트의 컴포넌트로 존재하는 class CameraController 에디터에서 설정한 _player 오브젝트를 카메라가 따라가게 만드는 로직 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraController : MonoBehaviour { [SerializeField] Define.CameraMode _mode = Define.CameraMode.QuaterView; [SerializeField] Vector3 _delta = new Vector3(0f, 6f, -5f); // 초기값 [SerializeField] GameObje..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/caVqzz/btrua3oui9c/iJNshKOUtxY717y0oHYf11/img.png)
Physics.Raycast란? 충돌을 Collider로 감지하는 레이저 광선 ( Ray ) - UnityEngine에 선언되어 있는 구조체 Physics Raycasting은 상당히 무거운 작업(부하를 많이 줌)이므로 최적화를 하는 것이 중요 - 인스펙터에서 Layer를 추가해 LayerMask를 활용하여 영역을 나누어 연산 최적화 ( 글 하단 4, 5번 ) - 매쉬 콜라이더가 너무 복잡할 경우엔 충돌 연산용 매쉬 콜라이더를 만들어 사용 1. 3D 플레이어가 바라보는 방향의 물체 감지 예제 using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestRaycast : MonoBehaviour ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/be7HQi/btrt6uTA08r/LmlDXvaOWLFqjRkHDEsgoK/img.png)
1. Collider 충돌체의 기본 클래스로 충돌체의 범위, 재질 등을 나타냄 - 충돌체의 모양에 따라 BoxCollider, SphereCollider, CapsuleCollider, MeshCollider, 등이 있음 Is Trigger : rigidbody에 충돌을 연산하지 않고 충돌 감지 시에 OnTriggerXX함수 호출 2. RIgidbody 충돌을 감지하기 위해 사용하는 컴포넌트 - 오브젝트를 물리 엔진이 제어하게 만들 수 있음 ( + 중력 ) is Kinematic : 물리 연산 여부 ( 체크 시 충돌에 관한 물리 연산을 하지 않음 ) + 물리연산을 하지 않으므로, 중력도 적용되지 않음 Interpolate : 고정 프레임율에서 동작하는 물리효과를 보간할때 사용 Collision Detec..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Cik5n/btrtVpRQIVK/UtHshnYKfk3gTn2MS9Vlw1/img.png)
Rotation (회전) 월드 공간상에서의 트랜스폼의 회전을 나타냄 ( Quaternion으로 저장 ) Quaternion은 복잡한 수를 기반으로 하기에 직관적으로 이해하기 쉽지 않으므로, 회전에 사용한다고만 알아둠 1) transfrom.Rotate using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { float _yAngle = 0f; void Update() { transform.Rotate(new Vector3(0f, Time.deltaTime * 100f, 0)); // y축 방향으로 회전 _yAngle += Time.del..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lIV5c/btrtXxhl6qS/7rByxQ7EKCAko2rdinLb5k/img.png)
Vector3 3차원 벡터와 각 x, y, z 축에 따른 위치를 표현 가능한 구조체 Vector3와 일부 같은 역할을 하는 구조체를 만든 예제 struct MyVector { public float x; public float y; public float z; public float magitude { get { return Mathf.Sqrt(x * x + y * y + z * z); } } public MyVector normalized { get { return new MyVector(x / magitude, y / magitude, z / magitude); } } public MyVector(float x, float y, float z) { this.x = x; this.y = y; this...
1. 3D 플레이어 이동 구현 ( position ) using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { [SerializeField] float _speed = 10.0f; void Update() { if (Input.GetKey(KeyCode.W)) transform.position += new Vector3(0f, 0f, 1f) * Time.deltaTime * _speed; if (Input.GetKey(KeyCode.S)) transform.position -= new Vector3(0f, 0f, 1f) * Time.de..
총 3라운드로 구성되어 있는 슈팅 게임 ( 난이도 어려움 ) 2022.02.17 업데이트 - 라운드 클리어 시 파괴되지 않고 남아있는 적 기체 - 조이스틱 크기 조정 - 화면 크기 비율 고정 ( 9 : 16 ) 2022.02.18 업데이트 - 조이스틱 감도, 애니메이션 변경 - 플레이어 투명화 버그 수정 - 오브젝트 풀링 갯수 조정 https://github.com/godgjwnsgur7/ShootingGame GitHub - godgjwnsgur7/ShootingGame Contribute to godgjwnsgur7/ShootingGame development by creating an account on GitHub. github.com
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GnUgk/btrtwJP1qh1/QNlVsdfL9Et3Ukd0hjtKB1/img.png)
1. 조이스틱 - 기존 조이 패널은 드래그 시에 영역을 벗어나면 이동이 풀리는, 등의 문제와 유저 편의성이 너무 떨어져 조이스틱으로 변경 + 드래곤 플라이트처럼 변경할까 했지만, 그럼 게임 기획 상 이동속도 제한을 해야하는데, 그러면 오히려 불편하고, 시야도 손으로 자주 가리게 될 것으로 예상되어 조이스틱으로 변경함 https://godgjwnsgur7.tistory.com/28 [Unity] 모바일 터치 감지 방법 1. MonoBehaviour.OnMouseXX 함수 모바일에서는 커서가 올라가면 호출되는 함수는 터치시에 호출됨 https://docs.unity3d.com/kr/530/ScriptReference/MonoBehaviour.html Unity - 스크립팅 API: MonoBehaviour ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bMSCa1/btrrP3CliYh/gOHVW5LPmLZuQ5Mk0Drvkk/img.png)
프리팹(Prefab) : 게임 오브젝트 -> 재사용 가능한 에셋 // 템플릿프리팹의 장점- 프리팹은 각 씬마다 동일한 게임오브젝트를 생성하거나 사용해야할 때 사용하면 편리함- 각 프로퍼티 값이 변경되었을 때 씬마다 일일히 수정을 하지 않아도 됨 즉, 재사용성↑, 프리팹 인스턴스로 한번에 관리 용이 프리팹은 씬에 올라온 오브젝트에 접근할 수 없는데, 이를 하기 위해서는 인스턴스화된 오브젝트를 게임매니저에게 가지게 하여 프리팹의 오브젝트를 사용할 때 게임 매니저에 접근하여 처리하는 로직을 작성하는 등의 방법으로 사용 가능 + 당연히 프리팹끼리는 접근 가능 프리팹 중첩 : Nested Prefabs- 프리팹 내에 다른 프리팹 인스턴스를 포함 프리팹 상속 : Prefab Variant- 기존 프리팹의 인스펙터..