Skip to content

Latest commit

 

History

History
134 lines (105 loc) · 6.35 KB

File metadata and controls

134 lines (105 loc) · 6.35 KB

메뉴 만들기

  • 방에 들어갔을때 방이름이 뜨도록 코드를 만들어준다.

  • canvas에서 바뀌 코드요소들을 추가해준다.

  • 실행해보면 이제 내가 지정한 방 이름이 위에 뜬다.

  • 방을 떠났을때 어떻게 작동해야 할지 코드로 짜준다.
  • leave room버튼을 눌렀을때 어떤행동을 해야할지 할당해준다.
  • 실행해보면 방 만들고 방 나가기 까지는 작동하는걸 볼 수 있다.

  • 새로운 메뉴를 만들어주자.
  • Find Room Menu를 만들어주고 텍스트 메쉬 프로를 화면과 같이 넣어주자.

  • UI에서 image를 추가해주자.
  • 크기와 위치와 색깔을 정해주면 화면과 같이 된다.

  • 버튼을 추가해주고 버튼을 누르면 title 메뉴로 돌아가게끔 설정을 해주자.

  • 아까 추가한 이미지에 vertical layout group을 추가해주고 설정을 해주자.

  • 방 이름으로 쓸 버튼을 추가해주고 크기를 조정해주고 prefab화 시켜준다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;//포톤 기능 사용
using TMPro;//텍스트 메쉬 프로 기능 사용

public class Launcher : MonoBehaviourPunCallbacks//다른 포톤 반응 받아들이기
{
    [SerializeField] TMP_InputField roomNameInputField;
    [SerializeField] TMP_Text errorText;
    [SerializeField] TMP_Text roomNameText;
    void Start()
    {
        Debug.Log("Connecting to Master");
        PhotonNetwork.ConnectUsingSettings();//설정한 포톤 서버에 때라 마스터 서버에 연결
    }

    public override void OnConnectedToMaster()//마스터서버에 연결시 작동됨
    {
        Debug.Log("Connected to Master");
        PhotonNetwork.JoinLobby();//마스터 서버 연결시 로비로 연결
    }

    public override void OnJoinedLobby()//로비에 연결시 작동
    {
        MenuManager.Instance.OpenMenu("title");//로비에 들어오면 타이틀 메뉴 키기
        Debug.Log("Joined Lobby");
    }
    public void CreateRoom()//방만들기
    {
        if (string.IsNullOrEmpty(roomNameInputField.text))
        {
            return;//방 이름이 빈값이면 방 안만들어짐
        }
        PhotonNetwork.CreateRoom(roomNameInputField.text);//포톤 네트워크기능으로 roomNameInputField.text의 이름으로 방을 만든다.
        MenuManager.Instance.OpenMenu("loading");//로딩창 열기
    }

    public override void OnJoinedRoom()//방에 들어갔을때 작동
    {
        MenuManager.Instance.OpenMenu("room");//룸 메뉴 열기
        roomNameText.text = PhotonNetwork.CurrentRoom.Name;//들어간 방 이름표시
    }

    public override void OnCreateRoomFailed(short returnCode, string message)//방 만들기 실패시 작동
    {
        errorText.text = "Room Creation Failed: " + message;
        MenuManager.Instance.OpenMenu("error");//에러 메뉴 열기
    }

    public void LeaveRoom()
    {
        PhotonNetwork.LeaveRoom();//방떠나기 포톤 네트워크 기능
        MenuManager.Instance.OpenMenu("loading");//로딩창 열기
    }

    public override void OnLeftRoom()//방을 떠나면 호출
    {
        MenuManager.Instance.OpenMenu("title");//방떠나기 성공시 타이틀 메뉴 호출
    }
}

  • 수정한 launcher스크립트의 전문이다.