본문 바로가기

반응형

유니티/모바일 멀티플레이 Shooting Game

(13)
Udemy 유니티 모바일 멀티플레이 TPS 슈팅게임 강의 리뷰 2022년 11월 말부터인가 강의를 듣기 시작해서 2023년 5월 16일에 드디어 강의를 완강하고 끝마쳤다. 사실 6개월 걸릴 양은 진짜 절대로 아니다. 교환학생 오면서 학교다니고 놀러도 많이 다니다 보니 ㅋㅋㅋㅋ 계속 미루고 미루다가 드디어 끝마쳤다. 내가 들은 강의는 아래와 같다 https://www.udemy.com/course/multiplayerthirdpersonshooter/ 2022년 말, 나는 Photon을 이용한 멀티게임을 만들어보고 싶었고 유데미에서 대충 뒤지다가 가격도 적당해보이고 배우고 싶었던 것들을 가르치는 위 강의를 선택해서 결제했다. 참고로 완전 영어강의이다. 강의를 다 듣고 게임을 완성해도, 게임이라기보단 그냥 모바일 멀티플레이의 기본적인 기능들을 구현해 놓은 듯한 느낌이다..
유니티 RaiseEvent를 이용한 준비 완료 시스템 이전 글에서 포스팅한 RaiseEvent를 사용했으며 원리는 매우 비슷하다 이전 글 : https://red-tiger.tistory.com/69 유니티 Photon의 RaiseEvents를 이용한 채팅 시스템 UI에 관한 건 스킵하겠다. 각자 본인 마다 원하는 UI 배치가 있을꺼니깐. 나는 이 포스팅에선 모바일 전용이니깐 키보드로 입력하는 것이 아닌 미리 정해진 구문을 누르면 메세지를 보낼 수 있게 red-tiger.tistory.com 우선 방에 입장하거나 방을 만들었을 때 띄울 UI를 적당히 만들어준다 우선 방에 들어왔을때 중앙의 버튼의 텍스트가 본인이 마스터 클라이언트인지 아닌지에 따라 달라지게 구현한다. 마스터 클라이언트일 때 마스터 클라이언트가 아닐 때 그리고 만약 중앙에 버튼을 눌렀을때 마스..
유니티 Photon의 RaiseEvents를 이용한 채팅 시스템 UI에 관한 건 스킵하겠다. 각자 본인 마다 원하는 UI 배치가 있을꺼니깐. 나는 이 포스팅에선 모바일 전용이니깐 키보드로 입력하는 것이 아닌 미리 정해진 구문을 누르면 메세지를 보낼 수 있게 했다. RPC가 아닌 RaiseEvent 기능을 이용한 채팅 시스템 RaiseEvents에는 4가지 특징이 있다 PhotonView가 필요없다 Unreliable하게 이벤트를 보낼 수 있다 한 오브젝트에서 다른오브젝트로 보내거나 받을 수 있다 특정 플레이어에게만 보낼 수 있다 두 가지 종류의 이벤트가 있는데 Reliable한 이벤트와 Unreliable한 이벤트가 있다 Reliable : 매우 중요한 이벤트고 어떠한 경우에서라도 전달되어야 한다. 네트워크가 얼마나 바쁘든지 간에 이 이벤트는 전달되야한다 Unreli..
유니티 3D 멀티플레이 RPC이용법(플레이어 체력 깎기) 당연한 얘기지만 총에 맞으면 체력이 달아야 한다. 일단 위와 같이 적당히 체력바를 만들어 준다. MyPlayer.cs에 위 두 변수를 만들어 준다. playerHealth는 말그대로 플레이어의 체력이고 damage는 총알 한개의 데미지이다. 이런 변수 수치는 개발자 맘대로 하자. 같은 스크립트의 Fire()함수를 아래와 같이 수정한다 if(Physics.Raycast(rayOrigin.position,Camera.main.transform.forward,out hit,100f)) { Debug.Log(hit.transform.tag); if(hit.transform.tag=="Player"&&!hit.transform.GetComponent().IsMine)//Not hitting myself { hit..
유니티3D OnPhotonSerializeView() 사용법 이전 포스팅 영상을 보면 다른 플레이어의 총구섬광 효과가 보이지 않았다. 계속해서 변화하는 어떤 것을 네트워크를 통해 동기화 시키려면 OnPhotonSerializeView()를 사용해야한다. ParticleSystem은 계속 변화하는 것이다. User01의 빨간색이 나 자신의 플레이어라고 가정해보자. 나 자신의 플레이어이므로 계속 해서 무언가를 작성하는 역할을 하고 있다. 즉 내 로컬플레이어는 stream.IsWriting이 참이 되어 stream.SendNext(value)를 실행한다. value는 동기화 하고 싶은 어떤 값이든 될 수 있다. 플레이어의 position이나 rotation도 가능하다. User02입장에서 본 빨간색은 상대방의 플레이어이다. 본인의 로컬플레이어가 아니다. 그러므로 계속 ..
유니티 Photon으로 간단하게 핑 확인법 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Photon.Pun; public class GameManager : MonoBehaviour { // Start is called before the first frame update public GameObject player; public Transform playerSpawnPosition; public Text pingrateTextx; void Awake()//First of all, make the player. It makes camera can track the player. { PhotonNetwo..
유니티 Photon 사용법 - 방만들기, 방 참가 로비 UI는 본인 편한대로 보기 좋은대로 만들면 된다. 나는 뭐 별로 이쁘게 할 생각도 없고 딱 중요한 기능들만 넣고 심플한걸 선호해서 이렇게 했다(사실 강의에서도 이렇게함) 별건 없고 그냥 눈에 보이는대로다. 버튼들 옆은 Input Text Field로 만들어주자. 그리고 인스펙터창에서 볼 수 있듯이 photon서버에 연결이 되면 ConnecctUI는 꺼주고 RoomUI는 켜주도록한다. 각 오브젝트들은 위와 같이 직접 드래그 앤 드롭으로 참조 시켜줬다. 코드설명은 주석에 열심히 달아놨다. LobbyManager.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; usin..
유니티3D 모바일- 총구섬광 효과 이번 포스팅은 간단하게 총을 쏠 때 총구섬광 효과를 구현해보겠다. 파티클시스템을 이용하는데 본인의 마음에 드는 파티클 시스템을 사용하면 된다. 나는 유니티 에셋스토어의 무료 에셋을 사용하였다. https://assetstore.unity.com/packages/vfx/particles/war-fx-5669 War FX | 시각 효과 파티클 | Unity Asset Store Add depth to your next project with War FX from Jean Moreno. Find this & more 시각 효과 파티클 on the Unity Asset Store. assetstore.unity.com 나는 위 asset을 import하고 아래의 particleSystem 프리펩을 사용하였다. ..

반응형