관리 메뉴

caLAB

02. 포톤 네트워크 기본 구조 만들기(서버 연결, 방 만들기) 본문

Unity/유니티 개발

02. 포톤 네트워크 기본 구조 만들기(서버 연결, 방 만들기)

도이(doi) 2020. 9. 29. 00:49
728x90

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun; //선언
using Photon.Realtime; //선언
using UnityEngine.UI; //선언

public class photonManager1 : MonoBehaviourPunCallbacks //클래스 상속
{
    public Text StatusText;
    public InputField NickNameInput;
    public InputField roomNameInput;
    public GameObject uiPanel;
    public byte userNum = 5;

    private bool connect = false;

    //현재 상태 표시 
    private void Update() => StatusText.text = PhotonNetwork.NetworkClientState.ToString();

    //서버에 접속
    public void Connect() => PhotonNetwork.ConnectUsingSettings();
    //연결 되면 호출
    public override void OnConnectedToMaster()
    {
        print("서버접속완료");
        string nickName = PhotonNetwork.LocalPlayer.NickName;
        nickName = NickNameInput.text;
        print("당신의 이름은 " + nickName + " 입니다.");
        connect = true;
    }

    //연결 끊기
    public void Disconnect() => PhotonNetwork.Disconnect();
    //연결 끊겼을 때 호출
    public override void OnDisconnected(DisconnectCause cause) => print("연결끊김");

    //방 입장
    public void JoinRoom()
    {
        if(connect)
        {
            PhotonNetwork.JoinRandomRoom();
            uiPanel.SetActive(false);
            print(roomNameInput.text + "방에 입장하였습니다.");
        }
    }

    //랜덤 룸 입장에 실패하면 새로운 방 생성 (master 방 생성)
    public override void OnJoinRandomFailed(short returnCode, string message) =>
    PhotonNetwork.CreateRoom(roomNameInput.text, new RoomOptions { MaxPlayers = userNum });

    //방에 입장 했을 때 호출 
    public override void OnJoinedRoom()
    => PhotonNetwork.Instantiate("player", Vector3.zero, Quaternion.identity);
}

 

오버라이드 : 자식클래스에서 부모클래스로부터 상속받은 부모의 메서드를 재정의하여 사용하는 것

콜 백 함수 on으로 시작하는 함수

식 본문 멤버 (bodied members expression) =>

동적 생성

 

728x90
반응형
Comments