유니티 22

[Unity] Unity event와 C# event의 차이점

C# event delegate vs Unity event Unity Event? 어떤 이벤트가 발생되면 그 이벤트에 등록해둔 기능이 발동 → 이벤트 발생시키는 쪽과 이벤트를 등록해둔 쪽 서로 관심이 없다 (언제 어떻게 등록, 실행이 되는지 연관이 없다) - 등록되어있는 함수들은 언제 / 어떻게 발동될 지 서로 무관심 - 코드가 간결해지는 장점 (스파게티 회피) - 클래스 의존도를 낮출 수 있다. → 두 오브젝트가 서로 심하게 엮임 : 커플링, 이것이 심해지면 한 오브젝트가 없어졌을 때 다른 오브젝트가 영향을 많이 받음 - Monobeheaviour을 상속받는 모든 클래스에서 사용 가능, UnityEvent 변수를 선언하면 인스펙터에 표시되며 영구적 콜백을 추가 가능 (영구적 콜백: 인스펙터에서 등록해준..

공부/Unity 2023.05.01

[Unity] Renderer Pipe Line - HDRP와 URP와의 차이점

Renderer Pipe Line - graphics 개념 - Light, Mesh (Polygon), 모델링, Texture 정보(Sprite) 얘네들을 다 모니터로 출력하기 위한 작업 GPU를 이용해 3D 이미지 리소스를 2D 래스터 이미지로 표현하기 위한 단계적인 과정 렌더 파이프라인은 모두 다른 기능과 특성 보유 서로 다른 셰이더 출력을 사용, 서로 다른 기능을 보유하고 있기 때문에 한 렌더 파이프라인에서 다른 렌더 파이프라인으로 프로젝트를 전환하기가 어렵다. (보통 처음 프로젝트 생성시 설정) 렌더 파이프 라인의 종류 빌트인 렌더 파이프 라인 (기본 설정) 고해상도 렌더 파이프라인 (HDRP) 유니버설 렌더 파이프라인 (URP) 커스텀 렌더 파이프라인 HDRP란? High Definition R..

공부/Unity 2023.04.28

[Unity] 커비 마무리!

적이 없는 곳에서 흡입시 null -> target값 null로 다시 지정 뱉는 도중에는 걸을 수 없고 적이 입에 있는 도중에는 뛸 수 없다 닿기만 해도 가지고 있던 능력이 바뀌는 기능의 무언가 무능한 우리의 커비 닿으면 커터로 변신! -> 오브젝트에 change 값을 넣어 닿으면 즉시 바뀌게 만들었다 1-2 stage 배경화면 parallax로 배경이 움직인다 (1stage의 parallax roll과 동일) 게임오버씬 만들고 연결 목숨이 1 남은 상태로 죽으면 게임오버씬에 들어와진다. asset은 커비 이전 게임들에서 마구잡이로 집어왔구 재시작은 불가하다! (목숨이 처음부터 3개면 됐지 뭐!) 생명 업 아이템 아이템과 닿을 시 gamemanager에 접근해 생명이 1 늘어난다 문으로 이동시 하얗게 f..

공부/C# 2023.04.25

[Unity] 커비 7일차 생명 UI, 상태 패턴, 일시정지중에 애니메이션 작동

1. life UI 생성 커비 폰트는 따로 텍스트로 넣자니 적용이 이상하게 돼서, 그냥 font 이미지를 잘라서 넣고 gamemanager에 선언한 life를 받아서 숫자에 따라 앞자리 수, 뒷자리 수를 setactive true / false 하게 만들었다 2. gamemanager -> 기본 life 3개로 시작, hp가 다 닳면 life 감소 체력이 적으면, Die함수를 들어가는데 이를 한번 처리했으면 isDie를 true로 바꾸고 커비가 높이 한번 찍고 떨어져야 하기 때문에 높게 올라가는 위치를 destination으로 잡아주었다. destination까지 도달을 못했으면 올라가게, 도달했으면 내려가게 만들어준다. 하지만 deltaTime을 곱하면, 죽을때 일시정지 되게 Time.timeScale..

공부/Unity 2023.04.19

[Unity] 커비 6일차 parallel scrolling -> 2D로 원근감 주기, 마리오 커비 탄생

1. mario enemy 생성 도트로 찍힌 마리오 애셋을 구해서 마리오 적을 만든다 1 - 1 마리오 애니메이션 구성 -> 자르고 기존의 enemy control script에 필요한 변수들도 만들어서 연결하고 등등 기본적인 애니메이션 만듦 1 - 2 마리오의 공격 마리오도 공격이 가능한데, 불꽃 발사하는 것으로 만들고 싶었다. 마리오 안에 자식 오브젝트로 불꽃을 만들고 애니메이션으로 추가해서 연결해줬다 (불꽃은 monster Weapon layer에 넣어서 trigger 처리로 공격당한다) 그 결과 마리오에게 맞은 커비가 탄생한다. 2. kirby mario 생성 (및 그리기) 2 - 1 커비 마리오 애니메이션 인터넷에서 얻은 커비 그림 많아보이지만 변신 완료 했을때 자유의 여신상 포즈, 점프 모션,..

공부/Unity 2023.04.18

[Unity] 커비 5일차 스테이지 선택 씬, 별 뱉기, 몬스터의 공격, 플랫폼 처리 (착지할 때만 닿는 바닥)

1. 공격중인 몬스터도 흡입 가능 몬스터가 공격중이라면 흡입이 불가했는데, beingInhaled 코드를 뜯어 수정했다. 2. cutter enemy 공격 생성 자식개체로 weapon을 만들어 애니메이션에 맞춰 돌아가게 만들었다. 이게 더 간단,, 이런식으로 collider 넣어준 공격 weapon을 날리게 했다 + animation 커터의 공격에 얻어맞은 커비 3. 플랫폼 -> 날거나 점프하면 부딪히지 않지만, 착지하면 부딪히는,,, 딱봐도 rigid.velocity.y 가 양수냐 음수냐 나누면 될 거 같아서 식쓰니깐 뭔가 이상했다. youtube 참고해서 수정했다 https://youtu.be/zKg70oiDFiw 아래 키 누르면 떨어지게 하고싶었는데, 커비 control script와 platfor..

공부/Unity 2023.04.17

[Unity] 커비 개발 4일차 raycast로 벽 확인, 맵 워프, 경사면 미끄러짐, 적의 자동 점프

animation tag: copy, split, attack 1. raycast로 몬스터의 바로 앞에 벽이 있으면 방향을 바꾸게 설정 노란색만큼 raycast를 달고, ground와 부딪히면 방향 바꾸게 코드를 바꿔줬다. 좌우 raycast가 다르게 나온다. 2. 커비가 어떤 이유로든 대미지를 받으면 별을 뱉게했다 + 아무 능력 없어도 별 만드는 오류 잡기 완료! 3. 커비가 변신중일때는 능력을 벗지 못하게 조건을 추가해줬다. 4. 공중에 있을때 능력 변신 불가능 공중에서 변신하는 커비,,,, 에휴 변신 조건문에 점프중이 아닐때를 추가해서 오류 해결 5. 스테이지를 이동하는 문 스크립트 5 - 1 문 이미지를 아직 못구해서 그냥 네모 검정으로 만들고, script를 작성해준다. public class ..

공부/Unity 2023.04.14

[Unity] 커비 3일차, Layer Collision Matrix 안될 때 해결, 싱글톤으로 HP 선언 후 슬라이더 연동

1. 커비가 능력을 가지고 있을 때 능력벗고 별이 통통 튀어다니게 + 별을 먹으면 그 능력으로 다시 변신 1-1. 능력 벗는 파티클 애니메이션 찍기 완료! 1-2 능력 벗을때 파티클 생성 코드 + 걷는 도중 / 나는 도중 / 가만히 있는 도중 벗었을때 애니메이션 연결 점점 복잡해진다,,, 완료!! 1-3 능력 벗으면 나오는 별 애니메이션으로 돌아가게! 빙글빙글 완료! 1-4 별이 통통튀게 (벽돌 깨기같이) material 제작 후 rigidbody material에 넣어주기 완료! + 스크립트 작성 (오타난 bounceStar script) public class bouncStar : MonoBehaviour { [SerializeField] float speed = 90f; public Rigidbod..

공부/Unity 2023.04.13

[Unity] 갤러그 만들기 - 2 (코루틴, 오브젝트 풀링, 코루틴 캐싱, 슬라이더)

적을 등장하게 만들어봅시다 Create Empty로 EnemySpawner를 만들어 준 뒤, component추가로 enemySpanwer 스크립트를 만들어줍니다. 코루틴을 이용해 적을 일정 시간마다 만드려합니다. private IEnumerator SpawnEnemy_co() { WaitForSeconds wfs = new WaitForSeconds(spawnTime); while (true) { float positionX = Random.Range(stageData.LimitMin.x, stageData.LimitMax.x); Vector2 position = new Vector2(positionX, stageData.LimitMax.y + 1f); Instantiate(enemyPrefabs, p..

공부/Unity 2023.04.06

[Unity] 유니런 중요 스크립트 및 기능 정리

Rigidbody 2D & Box Collider 2D & Circle Collider 2D 플레이어와 땅의 충돌을 처리하는 방법 -> collider2D & Rigidbody2D 사용하기! 물체에게 중력을 작용하게 만들기 위해 Rigidbody 2D를 넣어준다. 실행시켜보면 플레이어가 계속 떨어져서 화면에 안잡히게 된다. Rigidbody 2D에서 Collision Detection을 Continuous로 해줘야 충돌 감지를 끊기지 않고 계속 할 수 있다. 이전의 설정은 Discrete (이산)이었다. * Rigidbody: 중력과 동일한 효과 또한 Constraints에서 혹시 모를 Z축으로의 회전을 방지하기 위해 Freeze Rotation을 걸어준다. boxcollider를 추가할 시, 생긴 모양..

공부/Unity 2023.04.04
728x90