공부/Unity 49

[Unity] 좀비 서바이벌 동그란 체력바 + 좀비 Ai (nav) + 피격판정

살아있는 것들의 공통 사항을 Script로 만들어 상속시켜주자 생명체로 동작할 오브젝트들이 모두 상속받을 클래스를 생성한다 Living Entity - 체력을 가짐 - 체력 회복 가능 - 공격을 받을 수 있음 - 살거나 죽기 가능 필요한 부분들에 대해 변수 선언 및 처음 불릴때 상태 리셋을 해주었다. 여기서 health와 dead 친구들의 프로퍼티에 protected를 걸어준 이유는 접근 한정자 protected는 클래스 외부에서는 접근이 불가하고, 자식 클래스에서만 접근이 가능한데, LivingEntity를 모두 상속할 것이기에 상속하는 자식 개체에서만 변경할 수 있게끔 만들었다. 지지난 나의 게시글을 보면 Unity event를 다뤘는데, 이 부분을 이용하기 위해서였다. 사망시 onDeath에 저장된..

공부/Unity 2023.05.02

[Unity] 좀비 서바이벌 Cinemachine, FK / IK, Scriptable Object를 활용한 총쏘기

플레이어를 따라오는 카메라 - Cinemachine (책을 참고 p607) windows > packet manager > unity registry의 Cinemachine 다운로드 기존의 main camera에 cinemachine Brain camera component를 추가해준다 Cinemachine의 브레인 카메라와 가상 카메라를 이용할 것이다. 브레인 카메라: 게임 월드를 촬영하는 진짜 카메라, 씬에 하나만 존재 가상 카메라: 씬에 여러개 존재하며 카메라의 분신 역할 - 브레인 카메라를 위한 여러 설정값을 제공, 여러 가상 카메라의 몸들을 두고 본체인 브레인 카메라가 몸을 바꿔 끼는 느낌 create empty > Follow cam으로 이름을 만들고 Cinemachine Virtual Cam..

공부/Unity 2023.05.01

[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] 이동을 처리하는 Addforce와 Velocity의 차이점 / Dodge 게임 툴 만들기

이동방식을 구현할 때 Addforce나 Velocity를 주로 사용한다. 둘의 차이가 뭘까 Addforce: 가해지는 힘을 누적하여 속도를 증가시키고, 이동 물리 질량 관성의 영향을 받는 메소드 Velocity: 속도를 나타내주는 변수이므로, 질량 관성은 무시하고 주어진 속도로 이동하는 이동변수 이다 확대는 못했지만 Velocity는 관성이 거의 없는 느낌으로 누르는만큼 딱딱 멈추지만, Addforce쪽은 마찰이 없는 것 처럼 슥슥 미끄러지는 영향을 많이 받은 상태를 확인할 수 있다. Addforce를 사용한 코드는 if (Input.GetKey(KeyCode.W)) { Player_r.AddForce(0, 0, speed); } if (Input.GetKey(KeyCode.A)) { Player_r.A..

공부/Unity 2023.04.26

[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
728x90