Humility

아무리 노력해도 최고가 되지 못할 수 있다⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀그럼에도 노력하는자가 가장 겸손한 것 아닌가

공부하는 블로그
반응형

유니티/기능구현 11

[Unity] 유니티 C#) 2D 게임 사다리(Ladder)와 피킹(Peeking)

소닉이나 여타 많은 게임들은 Peeking 기능을 제공한다특히 다양한 기믹과 숨겨진 장치들이 즐비한 매트로베니아 장르에도 이러한 기능은 잘 어울릴 것 같다  0. 준비플레이어로 사용할 캡슐콜라이더를 만들고 타일맵을 대충 깔아보자 1. 지형 제작이렇게 3가지 나누어 만들었다 타일맵 (바깥지형)특징: 타일맵 콜라이더 컴포넌트가 붙어있다 거짓맵 ( 단순히 지형을 보여주기 위함 )특징: 아무런 컴포넌트도 붙어있지 않음 플랫폼맵 ( 밟고 올라갈 수 있는 지형 )특징: 아래에선 통과가 되지만 위에선 통과가 안됨 설정방법  1. 타일맵 콜라이더 Used By Effector 활성화2. 리지드바디 2D 컴포넌트 부착 후 바디타입 Static으로 변경3. Platform Effector 2D 컴포넌트 부착  ※ 사다리가..

[Unity] 유니티 C#) 메트로배니아 미니맵과 전체맵 ( 심화편 )

이번엔 맵 이동과 이동했을때 맞춰 업데이트 되는 맵을 구현해보겠다0. 준비다른맵을 같은 형식으로 만들어 주었다 ( Terrain 타일맵과 미니맵로 사용할 타일맵 ) 1. 플레이어간단하게 캡슐로 만들어주고 리지드바디와 콜라이더를 붙여주었다 플레이어의 자식으로 빈게임오브젝트를 하나 만들자Sprite Renderer만 추가하고 레이어를 미니맵으로 변경해주면미니맵에서 플레이어의 위치를 표시해줄 수 있다 플레이어 부분 코드는 아래쪽에서 한꺼번에 작성하였습니다 2. 카메라유니티 레지스트리에서 시네머신 다운로드 빈게임 오브젝트에 폴리곤 콜라이더로 시네머신이 돌아다닐 수 있는 범위 설정폴리곤 콜라이더 컴포넌트의 Points 값을 조정하여 반듯한 모양을 만들 수 있다 버츄얼 카메라 생성 후 세팅플레이어를 따라가야 하니 ..

[Unity] 유니티 C#) 메트로배니아 미니맵과 전체맵 ( 기본기능편 )

저번에 만들어둔 미니맵을 바탕으로 스크립트 작업을 이어나갔다설정이 더욱 중요하므로 보지 않았다면 아래 링크에서 보고 오시는 걸 추천한다 https://tears2am.tistory.com/44 0. 준비빈게임오브젝트를 생성하고 MapController와 MapManager 2개의 스크립트를 생성한다 1. MapController전체맵을 켜고 끄는 기능을 담은 스크립트다using UnityEngine;using UnityEngine.UI;public class MapController : MonoBehaviour{ public RawImage minimapImage; public RawImage fullmapImage; private KeyCode toggleMapKey = KeyCode...

[Unity] 유니티 C#) 2D 매트로베니아 미니맵과 전체맵 ( 유니티 설정편 )

매트로베니아 게임을 제작하며 미니맵 기능을 제작하였다미니맵 기능은 스크립트 작업보다 유니티로 설정 해주는 부분이 더 컸었다 완성된 미니맵 기능0. 준비타일맵으로 지형과 미니맵을 만들 것이기 때문에 2D로 프로젝트를 생성하였다 1. 지형 제작아래 사진과 같이 타일맵을 생성하고 원하는 지형을 그린다  2. 미니맵 제작미니맵으로 사용할 타일맵을 생성하여 이전에 만든 지형과 똑같이 그려준다'미니맵' 레이어를 추가하여 미니맵으로 사용할 타일맵의 레이어를 설정해준다 3. 카메라 설정 먼저 렌더텍스쳐를 생성하여 미니맵이라는 이름을 붙여주었다  메인카메라의 컬링마스크에서 미니맵 레이어를 제외하여 메인카메라에선 미니맵이 비춰지지 않게 하였다 맵을 비출 카메라를 새로 생성한다인스펙터 설정미니맵만 비추는 용도로 사용할 것이..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 저격총 )

일반적인 저격총 발사방법은 사실 돌격소총과 크게 다를바가 없다.단지, 총의 발사주기나 반동 등 몇가지 설정해놓은 변수값만 바꿔주면 되기 때문이다.그럼 어떤 특징이 있는지 생각해보자. 저격총의 특징1. 줌 저격총은 배율기를 사용해 먼 거리에 있는 적을 조준하고 사격하는데 의의가 있다. 때문에, 줌 기능을 구현해야한다. 2. 관통저격게임으로 유명한 스나이퍼엘리트 시리즈를 해보면 적 2명이 1자로 서있을 때, 총을 쏴 앞에 서있는 적을 맞추면 총알이 관통해 뒤에 있는 적까지 처치할 수 있다. 저격총은 다른 총에 비해 무겁고, 탄약 또한 강력하기 때문에 이러한 설정은 괜찮다고 생각한다.( 아쉽게도 미디어 자료는 찾을 수 없어 삽입할 수 없었다...)     1. 변수 설정public class Sniper :..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 샷건 )

이번엔 샷건을 구현해보자.샷건은 다른 총들과 달리 생각해야할 점이 2가지가 있다.1번째: 총 발사시, 쉘이 퍼져 나간다.보통의 총들은 발사시에 한발씩 나가지만 샷건은 한번 발사시에 여러개의 쉘로 퍼져서 나간다 2번째: 장전 시 한발씩 장전이 된다.보통의 총들은 장전시에 탄창을 교환하는 방식으로 한번에 장전되지만 샷건은 한발씩 장전되어야 한다 그럼 이제 샷건을 구현해보자. 1. 변수 설정public class ShotGun : MainWeapon{ private bool canReset = true; // 처음에만 총알 넣어주기 위해 private float nextFireTime; // 다음 발사 주기 public TextMeshProUGUI ammoTxt; // 탄약 UI 표시 ..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 돌격소총 )

이제 본격적으로 주무기를 만들어보자 1. 변수 할당public class Rifle : MainWeapon{ private bool canReset = true; // 처음에만 총알 넣어주기 위해 private float nextFireTime; // 다음 발사 주기 protected override void Awake() { base.Awake(); maxLoadedAmmo = 30; // 장전될 수 있는 탄약 initializeAmmo = 180; // 총기 최대 탄약 damage = 27; // 데미지 bulletRange = 50f; // 총알 발사 거리 fireRate = 0.06f; // 총알 발사 주기 recoilX = 0.2f; /..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 주무기 클래스 )

FPS 게임에는 다양한 총기들이 있다대표적으로 돌격소총, 산탄총, 저격총 이 3가지가 떠올랐다. 그럼 어떻게 설계할지 생각해보자 1. 구조 설계주무기들의 부모가 되는 클래스각 주무기들의 클래스실질적으로 총을 발사하는 클래스2. 필요한 변수탄약최대 장탄수, 장전 탄약, 남은 탄약, 데미지데미지, 총알 사거리, 발사 주기반동좌우반동, 수직반동, 반동 회복속도재장전재장전 시간, 장전중 확인정조준정조준 속도, 줌 정도탄퍼짐탄 퍼짐 정도 3. 필요한 로직슈팅 : 마우스 왼쪽 키를 눌렀을때, 총알 발사장전 : 장전되어있는 총알이 없거나 R키를 눌렀을 때발사 : 발사 방법정조준 : 마우스 오른쪽 키를 눌렀을 때 정조준주무기를 만드려고 생각 했을 때, 이정도 생각이 들었다.개발을 진행하면서 빼야할 부분은 빼고 추가할 ..

[Unity] 유니티 C#) 투척무기 구현을 어떻게 할까? ( 던지기 )

이제 마지막이다.. 어느새 또 새벽이다... 1. 먼저 궤적에 맞춰 날아가야 하므로 궤적 구현 부분에 쓰였던 값들을 가져오자 public void Throw(Transform _firePos) { Vector3 _velocity = _firePos.forward * throwForce; Vector3 _localStartPos = new Vector3(0, 0.5f, 1f); // 카메라 기준으로 궤적 시작 위치 설정 Vector3 _position = _firePos.TransformPoint(_localStartPos); } 그 다음은 매우 간단하다 ( 매우 어려운 작업은 궤적에서 다 했기 때문이다 ) 2. 위치를 대입해주고 리지드바디를 가져와 속도를 대입해준다publi..

[Unity] 유니티 C#) 투척무기 구현을 어떻게 할까? ( 궤적 표시 )

지난번에 이어서 투척무기 구현을 마무리 하려고 한다. 우선 마우스 왼쪽키를 누르고 있을 때, 궤적 표시를 해주자.궤적을 표시해주는 것은 3가지의 투척무기가 모두 공통적일 것이므로3가지의 부모가 되는 ThrowingWeapon 클래스에서 정의해주자 1. 우선 궤도에 관한 변수 설정과 라인 렌더러를 설정해보자public abstract class ThrowingWeapon : MonoBehaviour{ public float throwForce = 10f; // 던지는 힘 public LineRenderer trajectoryLine; // 궤적 라인 int trajectoryLinePoint = 40; // 궤적 포인트 갯수 ..

반응형