📚Object 닷지 게임을 따라 만들어 보면서 게임 개발에 대한 안목과 실력 높이기 [ 닷지 게임 ] 사방에서 날아오는 탄알을 가능한 한 피하는 탄막 슈팅 게임 플레이어를 조작하여 가능한 한 오랫동안 탄알을 피해야 함 플레이어 주변은 벽으로 막혀 있고, 바닥은
Rigidbody Force를 이용한 Jump
💡목표 >유니티 화면에 존재하는 여러 창들이 어떤 것들인지 보고, 그 각 창들에 어떠한 기능들이 있는지 본다. 굉장히 기초적인 파트 유니티는 하나의 게임월드를 Scene 이라는 단위로 관리를 한다. 여기서, 보이는 Scene은 SampleScene이다. * Sc
공부를 하다가 의문점을 맞닥뜨렸다.무엇이냐면,, Update 안에 new 라는 생성코드가 들어가도 되는 것인가? 이다.Update는 1초당 수십프레임으로 실행이 되는 함수다.그 1초간에 몇십번의 실행이 되는데 new 가 들어가있으면 메모리 부분에서 굉장한 타격이 가지
내가 구현 할 게임은 3인칭 백 뷰 장르이다 WASD로 이동, 마우스를 고정시켜 마우스를 이용해 카메라를 회전하고 플레이어가 이동 시 카메라가 바라보는 방향에 따라 그 위치로 플레이어도 회전시키려고 한다예) 다크소울 Setting Unity Package : [ St
플레이어의 움직임을 제어하는 여러가지 방법 중, 마우스 클릭을 통해 플레이어를 움직이려고 한다 예: 리그 오브 레전드, 스타크래프트, 워크래프트 등 세팅을 해보자 해당 프로젝트는 쿼터뷰 (시점고정) 게임이다.
문제점현재 시작 시 아무 키 입력을 하지 않았을때 Idle 애니메이션이 실행되지 않고 고정 돼 있는 상태였다가 키 입력을 시작하고 나면 움직이지 않을때 Idle 애니메이션이 다시 실행이 잘 된다animation Blend 값을 갱신 안해준 것이 문제 인 줄 알았다최적
마우스 왼쪽 버튼을 누를 시 플레이어가 공격을 하는 기능을 만드려고 한다PlayerManager.cs 에서 inputSystem을 통해 Attack 입력을 받고 PlayerInteractHandler.cs에서 해당 Attack 처리를 해준다이제 애니메이터로 가서 Att
업그레이드 한 부분애니메이션 이벤트 오류애니메이션 트랜지션 할때, 일정 타이밍에 콤보 어택 상황으로 넘어가면 실행되지 말아야 할 애니메이션 이벤트가 실행돼서 오류가 생김애니메이션이 Attack2로 넘어갔는데 Attack1 애니메이션의 마지막 프레임에 위치하는 애니메이션
이제 적을 만들어볼텐데 FSM으로 구현하려고 한다그 전에 우선 적은 플레이어를 감지하기 전에 패트롤 형태로 위치를 이동한다그것을 Roaming이라고 앞으로 말하겠고 이 Roaming을 구현하려고 한다내가 사용 할 오늘의 모델EnemyAI.cs를 생성하고 시작 지점 +
앞 서 Enemy Roaming을 만들었는데 그것을 구현한 스크립트는 EnemyAI (FSM Manager)로 할 것이고 그 Enemy Roaming의 실질적인 코드는 EnemyRoamingState.cs 로 재구축 하려고 한다우선 그러한 여러 상태들의 스크립트를 구현
플레이어를 추적하는 Enemy Tracking State를 만들어보겠다 Enemy Roaming State 우선 EnemyRoamingState가 첫 State로써 시작한다 Distance를 통해서 거리를 확인하고 Tracking으로 전환하게 했다 전에 포스팅이랑
창의설계경진대회 나가서 수상했던 기록을 포스팅 해보려고 한다무엇을 만들었는가하면 청각 장애인을 위한 수어 교육 VR 을 만들었다주제에 게임 개발 주제가 없었지만 Unity라서 신나게 개발 했던 기억이..보면 알다싶히, 구현을 위해 다양한 Asset 들을 사용했다.그러
유니티 게임뷰 카메라 조작과 똑같이 하려고 한다진짜 세상에서 제일 편한 조작감인듯?
이제 Enemy Attacking State를 만드려고 한다!비교적 간단하다
환경 작업을 하던 도중 퀄리티를 위해선 많은 나무들을 배치해야 하는 상황이 왔다하지만 뭔가 불안한 나..하다가 두려워지는 숫자가 있었다..허허 배치수가 상당한 모습 아직 더 세팅 할 것이 산더미인데 벌써 이런다고?근데 예전에 이런것에 관한 최적화를 많이 찾아보고 했어서
주로 transform의 변환 관련해서 Update에서 계속해서 업데이트 해주는데이것이 때로는 성능 저하가 걸릴때가 있다특히 transform 변환을 위해 어떤 수칙 연산을 한다든지 말이다transform이 변환이 없는데 매 업데이트마다 연산을 한다든지 여러 저하가 걸
왜 Quaternion,Vector3 Angle 구현을 안했냐면 성능비용은 그렇게 큰 문제점은 안됐는데0~180도 사이 즉, 음수 반환을 하지 않아서 상당한 커스터마이징 해야한다는게 싫었다또 어떤 코드가 있긴 했는데 꼭 각도를 구하려고 식 계산을 해버리는게 있어서 좀
멀티엔딩 게임을 만들때 필요한 대사는 수십가지, 상황도 수십가지이다.그러한 모든 상황에서 대사들을 게임 내에 저장해놔야 하는데 너무나도 큰 데이터 파일이 필요하다.유니티 내에 저장을 효율적으로 좋게 하려면 JSON을 사용해야겠다 생각이 들었다.JSON을 알기전에 윤니티
오브젝트 풀링.간단히 설명하자면 Spawn을 이미 한 Object들을 재사용 하는 것이다. 왜 오브젝트 풀링을 사용해야 하는가?오브젝트들을 Instantiate, Destroy 하는 작업들이 GC 발생을 일으키기 때문.다수의 오브젝트들을 생성, 파괴를 한다면 그 GC의
소환 할 오브젝트들은 각자 공통된 속성을 가진다!그 중 Barrel 오브젝트인데 예시로 보자면 오브젝트 고유의 ID, 차 속력 저하 수치, 차에 데미지 들어가는 수치 이 세가지가 공통적으로 가져야 하는 속성이다.총 이렇게 4가지 있다.의문점이 들어 영상 서칭을 해보고
해당 부분은 인게임의 맵이다.이 맵은 세개의 섹션으로 나누어져 있다.도로 1, 도로 2, 도로 3 이다.도로 1의 특정한 지점을 플레이어가 지나치면 도로 1이 도로 3의 끝으로 가게 되는 구조다.그렇게 도로3은 도로1이 되는 것이고 도로 1은 도로 3이 되는 식의 시스
Plain Class와 옵저버 패턴을 이용하고 각 스크립트에서 Obstacle Data를 활용
🚩목표 Fire 이미지를 통해 부스터 게이지 표현 ( 이건 구현 완료 ) 그리고 Filled Amount가 일정 값 이상 초과 시, 코루틴 시스템을 이용하여 쿨다운을 표현 왜 1이 아니라 일정 값 이상 초과하냐면 Fire Image 자체가 윗 부분이 얇기 때문에
인게임에서 플레이 한 뒤 모인 골드를 통해 Van을 업그레이드 해준다.그렇기에 Van을 업그레이드 한 부분을 관리 할 Data Manage를 필요로 한다.업그레이드 한 내역을 메인 메뉴에서 진행 한 경우 실시간으로 JSON 형태로 저장이 된다.게임을 시작 할때 해당 J
해당 구조도를 만들기 위해 UML 다이어그램 강의 영상들을 보고 각 클래스간에 관계가 어떻게 되는지 Draw.io 를 통해 만들어 보았다. 이 구조도를 만들면서 느낀 점 하나가 강하게 들었다. 게임 내 클래스간의 결합이 얼마나 됐는가, 어떠한 것이 독립적이지 못한 클
사용 이유 오프라인 보상을 위해서 어플 종료 시 시간을 JSON 형태로 DateTime 자료형으로 저장을 하고 어플 실행시 저장했던 시간이 존재하는지 ( 초기화 상태인지도 확인 -> 첫 시작 ), 존재한다면 시간차이가 얼마나 나는지 확인하려고 했다. 다만 어플 종료 시 DateTime.Now가 저장 안되는 것이 확인 됐다. GameManager Da...