본문 바로가기

Unity 포트폴리오/플젝3. 플랫포머 게임[브레인 멜트다운 모작]5

컬러블록 구현 (Unity Project / BrainMeltdown 모작 / 플랫포머 2d게임) 해당 컬러의 캐릭터만 충돌할 수 있는 컬러블록 구조물에 대한 글이다. 코드가 아닌 Layer와 유니티에서 지원하는 Platfom Effector로 구현했다. platform effector는 전에 일방충돌을 구현했을때 썼던 기능인데, 레이어에 따른 충돌 구분을 해줄 수 있다. 위에 보이는 것 처럼 Collider Mask에서 purple_player 체크해제를 해주면 해당 레이어와의 충돌이 일어나지 않는다. 그리고 주의할점은 Platform Effector는 해당 구조물 collider에 Used By Effector를 체크해줘야 작동한다!! 2022. 7. 24.
플레이어의 벽면 충돌 방지_ Physics Material 2D(Unity 프로젝트 / 플랫포머 2d 게임) 플랫포머 게임에서 가장 중요한 것은 이동이기 때문에 조작감이 매우 중요하다. 나는 그림과 같이 땅에 엣지 콜라이더를 사용했는데, 벽면도 땅 처리가 되기 때문에 벽에서 자꾸 마찰이 생기는 문제가 있었다. 해결방법 Projects 창> create > 2d> Physics Material 의 friction(마찰)값을 0으로 바꿔주면 내가 원하는 조작감으로 구현할 수 있다!! 하지만, 이럴경우 추가로 발생하는 문제점 : 마찰이 없기 때문에 경사면에서 그냥 주르륵 미끄러져 버린다. 해결방법 if (moveX == 0) rigid2d.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezeRotation; else r.. 2022. 7. 17.
일방충돌 구현 / Platform Effector /윗 방향으로는 통과하고 아랫방향으로는 막히는 충돌(Unity Project / BrainMeltdown 모작 / 플랫포머 게임) 원작에 일방향으로만 충돌이 되는 구조물이 있었다. 처음엔 캐릭터의 rigidbody 의 velocity.y 값을 가져와 상승할때와 하강할 때의 값에 따라 구조물의 trigger 체크를 꺼줬다 켜주는 식으로 코드를 작성해 구현했는데 (매우 복잡했다.) 유니티에서 지원해주는 기능이 있었다. Platform Effector 플랫폼 이펙터 2D는 일방 충돌, 측면 마찰/바운스 제거 등 다양한 “플랫폼” 동작을 적용합니다. 라고 공식 홈페이지에 나와있다. 빨간 줄을 체크하고, 원래 콜라이더에 Used By Effector을 체크해주면 일방 충돌을 구현할 수 있다! 2022. 7. 14.
플레이어의 이동과 조작 (Unity 포트폴리오/Brain Meltdown 모작) 브레인멜트다운은 플랫포머 게임으로, 이번 포스팅에서는 플랫포머 게임에서 가장 중요한 캐릭터의 이동과 조작에 대해서 다루겠습니다. 이 게임은 두 개의 캐릭터를 한명이 컨트롤하는 게임으로, 이동의 알고리즘은 똑같지만 입력값이 다르다는 것이 특징입니다. 따라서 player라는 상위 추상클래스를 구현하고, 각각 캐릭터의 클래스가 이를 상속하게끔 설계했습니다. (오브젝트 풀은 캐릭터가 착지할 때 생기는 랜딩 이펙트 관리에 사용했습니다) 위와 같이 구성했습니다. 전체 코드는 더보기로 확인해주세요.▼ 더보기 상위클래스 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement.. 2022. 7. 11.