Galaxy Ball/1. 멀티플레이 - 대전모드 26

(8) 발사구현 마무리

왜 한템포가 늦게 나가는지 생각을 해봤다 1. 클릭2. BallController가 삽입된 구체 생성3. BallController Start 컴포넌트에 있는 발사가 실행됨하지만 shotDirection, ShotDistance가 없으니 초기값으로 값을 넣고 발사4. 클릭을 뗌5. 그제서야 shotDirection, ShotDistance에 원하는 값이 들어감6. 두번째 발사에 적용됨 발사하는 코드를 Start에 넣었으니 그럴만도 했다. 그럼 Update에 발사문을 옮겨보자  private void Update() { if(Input.GetMouseButtonUp(0)) { rigid.velocity = GameManager.shotDirection * GameManager...

(7) Firezone, 발사구현

전글까지는 이미 다 구현해놓은 프로젝트를 글로 옮기는 작업이었지만 지금부터는 실시간으로 진행하는대로글에 옮겨적으려한다 드디어 미루고 미루다가 시작하는 발사구현. 아직 해보지 않았지만 이게 가장 까다로울것 같다 시작하기전 구현해야할 단계에 대해서 적어보겠다1. Firezone 제작2. Firezone에서만 클릭해야 구체가 생성되어 날아감3-1. 클릭 : 구체생성3-2. 클릭 상태로 잡아당김 : 구체가 생성된 위치와 마우스의 거리를 힘으로 환산 & 날리는 방향 결정3-3. 클릭을 뗌 : 그 상황된 힘만큼 구체에 힘을 주어 발사 이렇게까지가 발사구현. 사실상 3번때문에 여태 미뤄온것이다만약 여기까지 구현에 성공했다면 이제 서로의 턴마다 한번씩 주고받으며 공을 발사하게 해야한다 이번글에서는 1~3번까지 구현해볼..

(6) 내구도 표시 & 구체 파괴

이번에는 각 구체마다 1~5까지의 숫자중 랜덤숫자를 내구도로 부여한뒤 그 숫자를 날아가는 구체위에 보이게까지 하겠다그리고 내구도가 0이 되버리는 순간 해당 구체를 파괴하는것까지 구현해보도록 하겠다 가장 먼저 1~5사이에 랜덤으로 숫자를 뽑아 공에 표시하는것부터 해보겠다 사실 만들어놓은 공 프리팹에다 텍스트까지 추가해서 하나로 묶어버릴 생각이었다. 하지만 그건 너무 복잡하기도 하고 스크립트도 아예 하나 새로 만들거나 다른곳에 작성해야할것 같아 아예 텍스트 추가없이 BallController 스크립트에 자체적으로 추가하기로 했다 using System.Collections;using TMPro; //TextMeshPro 쓰려면 추가using UnityEngine;public class BallContr..

(5) 패배 판정 & 씬 변환

이번엔 패배판정과 결과에 따른 씬 변환까지 구현해보도록 하겠다 패배판정은 처음 설명에서도 말했듯 본인이 날린공이 본인의 Deadzone에 닿아야만 패배로 간주하기에조건이 약간 까다롭다. 게다가 팽창하며 Deadzone에 닿은것 역시 인정하기 않기에 조건이 하나 더 붙게된다 우선 "본인이 날린공이 본인의 Deadzone에 닿아야만 패배로 처리" 이것부터 구현해보겠다 (이걸 위해 미리 세팅해둔 Deadzone과 구체의 태그들) 사실상 패배판정이 나는 순간 곧바로 씬변환이 일어나기 때문에 둘은 동시에, 같은 스크립트에 만들어야하고,이번엔 트리거 역할을 해줄 Deadzone안에 새로운 스크립트를 만들어 넣어주도록 하겠다 using UnityEngine;using UnityEngine.SceneManagement..

(4) 구체 팽창 & 팽창 후 고정

이번엔 구체가 정지한뒤 다른 콜라이더와 충돌할때까지 팽창하는것을 구현해보겠다 using System.Collections;using TMPro;using UnityEngine;public class BallController : MonoBehaviour{ Rigidbody2D rigid; Vector2 lastVelocity; float deceleration = 2f; public float increase = 4f; private bool iscolliding = false; private bool isStopped = false; private void Start() { rigid = GetComponent(); rigid.velo..

(3) 게임 세팅 , 공 발사 & 반사

이번에는 게임이 구현될 가장 기본적인 스테이지를 만들 예정이다 쉽게 말해 그림으로 그린 인게임 화면을 유니티로 똑같이 만들어보겠다첫번째로 가장 기본이 될 BackGround. 적당히 밝은 색으로 잡아준뒤, 위에서 공이 이동을 해야하기 때문에Rigidbody2D 컴포넌트를 넣어주고, Static으로 고정시켜준다 두번째로 공이 밖으로 빠져나가지 않도록 벽의 역할을 해줄 Box Collider 2D를 Rigidbody2D와 함께 사면에 추가해준다이것 역시 움직일일 없이 고정시켜야 하므로 Rigidbody2D - Static을 선택해준다  세번째로 DeadZone. 공이 닿아버리는 순간 게임을 종료시켜버릴 공간이다하지만 여기서 중요한건 Player1의 공이 Player2의 Deadzone에 닿는건 아무 문제가 ..

반응형