전체 글 (131) 썸네일형 리스트형 네이버 블로그에서 다시 티스토리로 오게된 지극히 개인적인 이유 네이버 블로그 관련 책을 읽고 블로그 수익화가 가능하다는 꿈에 부풀어 네이버에서 블로그를 다시 운영했었죠.당시 강의 플랫폼에서 진행하던 강의 무료 환급 이벤트도 신청하고, 꿈에 부풀어 있었는데, 역시 외적 동기에 의해 움직이는 의지력이라는 녀석은 믿을게 못됩니다.꾸준히 글을 쓴 지, 2주정도 지나다가 결국 나가 떨어져 버렸죠. 제가 글을 쓰는 이유는 수익화도 있고, 글을 읽어주시는 분들께 조금이라도 도움이 되길 바라는 마음도 있지만,역시 자신의 학습을 위해서, 언젠가 내가 써놓은 글을 다시 읽으면서 지식을 키우려는 목적이라는 생각이 듭니다.학습 효율을 늘릴 수 있기에 선택한 저만의 즐거움인거죠. 수익화라는 목표를 가지고 네이버 블로그에 쓴 글들을 보니,게시글 채우기에 급급했을 뿐, 과거 학습했던 기억들이.. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 추가기능 구현 멀티플레이 모드를 제외한 게임은 모두완성 된 상태입니다. 캔버스를 2개 사용하면서 플레이어 캐릭터에 HP바를 붙이기보다 어차피 싱글 플레이 게임으로 구현할 생각이라 우하단에 HP바 UI를 슬라이더로 구현했습니다. AWP 총 모델을 AssetStore에서 구해서 저격총을 구현할 예정입니다. 지금 들고 있는 Uzi 와 동일하게 컴포넌트들을 맞춰 줍니다. Left Hanle, Right Handle 도 Transform 객체를 생성해서 적당하게 맞춰 주었습니다. Scriptable Data인 GunData는 Uzi 전용과, Awp 전용으로 세분화 하였습니다. 총소리도 변경완료 AWP는 장탄수가 5발입니다. 재장전도 2초로 설정 했고요. PlayerShooter 쪽에서 데이터를 수정하니까 저격총을 들고 잘 움직.. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 7~일차 private IEnumerator UpdatePath() { // 살아 있는 동안 무한 루프 while (!dead) { if(hasTarget) { //target exist : path update and keep moving navMeshAgent.isStopped = false; navMeshAgent.SetDestination( targetEntity.transform.position); } else { //missing target : stop moving navMeshAgent.isStopped = true; // Collider[] colliders = Physics.OverlapSphere(transform.position, 20f, whatIsTarget); //findout Livi.. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 6일차 게임상 모든 생명체에게 적용되는 LivingEntity 클래스 만들기 이 장에서 진행할 내용 다형성을 사용해 여러 타입을 하나의 타입으로 다루는 과정을 게임내에서 구현합니다. 오버라이드를 사용해서 부모클래스의 맴버를 확장합니다. 이벤트를 사용해서 견고한 커플링을 해소하고 코드를 간결하게 만듭니다. UI 슬라이더를 사용해봅니다. 게임월드 내부에 UI를 배치해봅니다. 내비게이션 시스템을 이용해서 인공지능을 구현해봅니다. 다형성 다형성이란 객체지향 패러다임의 특징중 하나로, 요약하자면 형태에 구애받지 않고 프로그래머가 원하는 '동작'에 집중할 수 있도록 공통된 녀석들을 하나로 묶는 것을 말합니다. 이전에 가상함수 Virtual을 다루면서 다형성에 대해 기록한 포스팅이 있습니다. 가상함수 Virtual과 오버라.. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 5일차 코루틴을 사용해서 Reload 까지 완료 하면서 Gun 스크립트가 완료 되었습니다. FK와 IK의 차이 FK(Foward Kinematics) 전진 운동학이라고 하며 큰관절에서부터 움직임이 이루어 집니다. 몸통에 가까운 큰 관절부터 움직임이 시작됩니다. IK(Inverse Kinematics) 역 운동학이라고 합니다. 자식 관절에서 부터 움직임이 시작됩니다. 예를들어 검을 들고있는 상태라면 손부터 움직임이 시작됩니다. 반대로 FK 라면 몸에서 가까운 어깨부터 팔뚝, 손, 아이템 순으로 움직이기 때문에 어색해집니다. 총을 움직일 때는 총과 가까운 관절부터 움직이는게 맞겠죠 IK를 사용해야 합니다. IK를 사용하려면 애니메이터컨트롤러 에셋에서 좌측 메뉴에 적용시킬 레이어 설정 아이콘 IK Pass가 켜져 있.. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 4일차 총알이 발사되고, 투사체의 궤적을 표시하는 LineRenderer 를 사용해서 총알의 궤적을 잠시동안 나타내는 작업은 다른 작업과 동시에 진행 되도록 병렬화할 필요가 있기 때문에 코루틴을 사용하여 ShotEffect 를 완성하였습니다. Fire (발사) 메서드 완성하기 현재 발사가능한 상태인지 확인 && 마지막 총 발사 시점에서 GunData의 속성 중 하나인 발사간격 보다 시간이 더 지났을 때 if(state == State.Ready && Time.time >= lastFireTime + gunData.timeBetFire) 이렇게 if문이 완성 되었습니다. if문 안에는 lastFireTime을 현재 시간인 Time.time으로 갱신하는 처리와 함께 Shot() 메서드가 실행되게 됩니다. Shot .. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 3일차 오브젝트의 확장성 문제 어떤 오브젝트의 스크립트에 값을 가진 필드들이 나열되어 있다고 가정합니다. 이 값들은 컴포넌트에 종속 되어있습니다. 예를들어 어떤 게임에서 플레이어가 사용하는 무기가 1. 카메라, 2. 단검, 3. 장검 이 있다고 가정해 보겠습니다. 프로젝트가 완성된 후 유지보수가 이루어지는 과정에서 무기의 종류가 더 다양해질 수가 있습니다. 또한 무기가 플레이어 손에 들려있는것만 존재하리라는 보장도 없습니다. 씬에 같은 오브젝트가 여러개 존재할 수도 있는 것이지요. 씬에 있는 오브젝트는 프리펩을 복사한 형태가 있겠지요. 이러다 보면 같은 오브젝트의 복사본 형태이지만, 값이 다른 오브젝트가 존재할 여지가 생깁니다. 그리고, 런타임 중에 값이 수정되는 경우가 있을 때, 예를 들면 모드를 변경하여 데.. 유니티 탑다운 슈터 게임 좀비서바이버 개발일지 2일차 PlayerMovement 메소드 Move 메소드 private void Move() { Vector3 moveDistance = playerInput.move * transform.forward * moveSpeed * Time.deltaTime; playerRigidbody.MovePosition(playerRigidbody.position + moveDistance); } Rotate 메소드 private void Rotate() { //calculate relative rotate figure float turn = playerInput.rotate * rotateSpeed * Time.deltaTime; //Change Gameobject Rotation with Rigidbody playerR.. 이전 1 2 3 4 ··· 17 다음