일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 게임제작
- Unity #Unity2D #Portal
- 3회차
- Pong
- 1인 게임 제작
- Unity
- 자바스크립트
- 정처기
- 퐁
- 1인 게임 개발
- 정처기 필기
- 게임 개발
- 유니티3d
- Vampire Survivors
- 자바스크립트 게임
- 게임
- 1인 개발
- 1인 게임
- 정보처리기사
- 게임 제작
- FPS
- Unity2D
- 유니티 3D
- portal
- unity3d
- 토이 프로젝트
- 합격
- 프로그래머스 #최소힙 #우선순위 큐
- 필기
- 유니티
- Today
- Total
목록Unity2D (8)
Coding Feature.
이펙트, 효과음 등 추가해야 할 사항들이 많지만 우선 사용자가 플레이할 첫 번째 레벨부터 구현해보도록 하겠습니다! 우선 다음과 같이 레벨을 디자인 해보았습니다. 간략하게 설명하자면, 우선 플레이어의 동선을 블루 포탈 -> 오렌지 포탈 -> 전원 버튼 -> 오렌지 포탈 -> 블루 포탈 -> 나가는 문으로 설정했습니다. 위 과정을 통해 플레이어는 - 블루 포탈, 오렌지 포탈 - 전원 버튼 - 클리어를 위한 나가는 문 의 용도를 알게 됩니다! 우선 나가는 문으로 도달한 경우 다음 레벨을 로딩하는 스크립트(SceneController.cs)를 짜보았습니다. using UnityEngine; using UnityEngine.SceneManagement; public class SceneController : Mo..
이제 앞서 만든 포탈과 포탈건 매커니즘에 대해서 발생할 수 있는 여러 가지 버그 또는 리스크 들을 해결하여 더욱 완벽한 게임 플레이 경험을 만들어 보겠습니다! - 두 포탈이 겹치는 경우 처리 포탈건으로 같은 벽면에 블루, 오렌지 포탈을 쏜다면 겹쳐질 것입니다. 이를 해결하기 위해 블루, 오렌지 포탈의 Collider가 겹치는지 확인하는 코드를 작성했습니다. private void HandlePortalCreation() { if (Input.GetKeyDown(KeyCode.Mouse0)) { m_tempVector = bluePortal.transform.position; // 이전 포탈 위치 저장. m_tempQuaternion = bluePortal.transform.rotation; // 이전 포..
앞서 포탈건의 조준선을 시각화했다면 이제는 본격적으로 포탈건으로 포탈을 만들수 있도록 구현해보겠습니다. 플레이어가 어떤 벽면에 포탈건을 조준하고 쏠 때 벽면의 각도와 위치에 따라서 포탈이 그에 알맞게 생성되도록 해야 합니다. 우선 포탈을 만들 수 있는 벽면을 "Portalable"이라고 명명하겠습니다. 그리고 앞서 만들었던 GameObject인 "Ground"의 앞면에 Portalable을 붙여놓습니다. 그래서 실제로 포탈이 만들어질 때 Ground가 아니라 Ground의 바로 앞에 있는 Portalable에 생성되도록 했습니다. 그 다음 Portalable에 포탈건을 쏠 때, 포탈건으로부터 쏠 때의 위치와 각도, 그리고 Portalable의 위치와 각도를 사용해서 포탈이 Portalable의 어느 위치..
포탈건을 만들어보기로 했습니다. 우선 플레이어가 포탈건으로 조준할 때 조준선이 화면에 보이도록 만들어보겠습니다. 유니티 엔진에서 제공하는 Line Renderer를 사용했습니다. 우선 Portal Gun Script 이라는 오브젝트를 생성하고 PortalGunScript.cs를 작성했습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class PortalGunScript : MonoBehaviour { public LineRenderer m_lineRenderer; public GameObject m_player; public float aimLineLength; Vector3 m_startP..