![[Part 12] 주차 성공에 대한 추가 코드](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/Gf54h/btrB68Bj5N3/1facVp6lHoCGzlKHKuGxrk/img.png)
[Part 12] 주차 성공에 대한 추가 코드
문제 다른 일반 도로, 어린이 보호 구역, 산간 S자 도로와 같이 끝이 있는 맵과는 다르게 주차장 맵은 주차를 성공해야만 게임이 종료된다. 이를 위해 다시한번 Collider 기능을 사용 해결 Empty Object를 4개를 만들어서 아래와 같이 Box Collider 기능을 추가한다. 각각의 Object의 tag를 Park1, Park2, Park3, Park4로 한다. PlayerScore에 아래의 코드를 추가한다. 즉, 네개의 Box Collider가 감지되면 주차에 성공한 것이고 하나라도 벗어나면 주차에 실패한 것이다. private void OnTriggerStay(Collider other) { switch (other.gameObject.tag) { case "Park1": ParkFlag[..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 15.
![[Part 11] 채점 알고리즘 & Trigger, Collsion](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/8Cmj3/btrB8YrrAjI/XXVu7zkeJNNrASlle0K5d1/img.png)
[Part 11] 채점 알고리즘 & Trigger, Collsion
그 다음 요소는 본 프로젝트에서 사용자에게 운전 점수를 알려주기 위한 중심 로직인 채점 알고리즘을 구현하였다. 이전에 채점표를 기준으로 구현: https://mineral-mine.tistory.com/55 문제 아래와 같은 초기 채점 알고리즘에서 감점 요인을 감지하는 부분과 점수를 관리하는 부분이 합쳐져 있었다. 코드의 구분이 어렵고 나중에 사용자에게 어떤 요인에서 감점 횟수를 알려주기 어려웠다. public class ScoreTest_hj : MonoBehaviour { public int stagePoint = 100; public PlayerTest_hj playcar; //한번충돌시 한번 점수 감점 private bool onetimededuction = false; //시간 private s..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 14.
[Part 10] 타이머 설정 Timer & 카운트다운 CountDown: 유니티 이벤트 사용
이후 내가 맡은 역할인 타이머 구현 단계에 돌입하였다. 타이머가 시작된 시점이 Countdown이 완료된 후에 타이머가 시작되어야한다. 하지만 기존의 Countdown 코드에서는 게임의 시작을 알리는 코드가 없다. 보다 더 효율적으로 게임을 관리하기 위해 게임의 상태를 관리하는 상태관리Manager를 만들었다. 1. PlayStateManager를 만들어서 게임 상태를 get하거나 set한다. using System.Collections; using System.Collections.Generic; using UnityEngine; // Play State public enum Play_State { Ready, Start, Playing, GameOver, End, } public class PlayS..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 14.
![[Part 9] 사용자 게임 Scene에 놓기](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/wcdyX/btrCaj2Qr9v/PKbYgPrLkn3iGARGjJfstK/img.png)
[Part 9] 사용자 게임 Scene에 놓기
주차장 Scene을 제작할때 난이도 별로 따로 Scene을 제작하지 않고 아래와 같이 하나의 넓은 공간에 난이도 상, 중, 하의 주차장 공간을 제작하였다. 따라서, 사용자가 난이도에 따라 다른 위치에서 게임을 시작하도록 하는 코드가 필요했다. 1. 게임 Scene에 각각 난이도의 시작 위치에 Empty Object를 두고 각 Object 이름을 난이도에 맞게 "Level_1", "Level_2", "Level_3"으로 한다. 2. 아래 코드와 같이 Object의 이름("Level_1", "Level_2", "Level_3")으로 시작 위치를 알려주는 Object를 찾은 후, 사용자의 위치를 해당 Object의 위치로 설정한다. 3. 난이도 별로 객체의 rotate도 다르기때문에 난이도에 맞게 각도를 설정..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 14.
![[Part 8] 주차장 맵 제작 및 이벤트 구현: Waypoint System](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/0Utnt/btrB6RsQxqu/I9ti2nHCBgPUdWBzkx63xK/img.png)
[Part 8] 주차장 맵 제작 및 이벤트 구현: Waypoint System
난이도 하: 사용자는 붉은 선으로 표시된 공간에 주차를 해야 성공한다. 양 옆의 공간에 아무런 차량이 없다. 난이도 중: 도로 갓길 공간에 주차한다. 난이도 상: 자동차가 많은 공간에 주차한다. 기존에 주차장 난이도 설계에서 주차 공간에 따라 난이도를 조절하는 것 뿐만 아니라 랜덤 이벤트를 추가하여 난이도 조절를 하기로 하였다. 보도에 돌아다니는 사람 NPC, 도로에서 주행 중인 차량 NPC를 구현하기 위해 Unity를 이용하여 Waypoint System을 구현하였다. 이 부분은 먼저 구현을 시작한 해울이가 작성한 코드를 참고하여 개발함. 참고 영상: https://www.youtube.com/watch?v=MXCZ-n5VyJc 유니티의 UnityWindow기능을 이용하여 게임 Scene 안에서 Way..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 14.
[Part 7] 하드웨어 장비 구매, 역할 설정, 일정 정리 및 공부
VR: 오큘러스 quest2 공식 홈페이지에서 구매(참고 사이트: https://www.oculus.com/cart/) OK | Oculus www.oculus.com 자동차 핸들 및 기어 장비: 로지택 핸들, 기어 스틱 세트 구매(http://itempage3.auction.co.kr/DetailView.aspx?ItemNo=C258783035&frm3=V2) 로지텍 G29 드라이빙 포스 레이싱휠 쉬프터 패키지 - 옥션 게임>게임용품>게임컨트롤러 itempage3.auction.co.kr 서버: Google Cloud Platform 이용 형관펜: 내가 담당한 역할 역할이 정해져있지만, 거의 프로젝트 내내 어려운점은 함께 고쳐나갔다. 이름 대학 학과 역할 김민혜 서울시립대학교 컴퓨터과학부 프론트엔드 제..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 14.