원본 글 : https://doc.photonengine.com/ko-kr/pun/current/demos-and-tutorials/pun-basics-tutorial/lobby-ui
이번 파트는 큰 내용은 없었다.
Launcher 스크립트의 start 부분에 있는 connect() 함수를 지우고,
버튼 하나를 만들어 Launcher 스크립트를 연결하여 onClick시 connect() 함수를 연결
버튼을 눌러야만 연결되도록 변경하였다.
InputField에 연결할 스크립트를 만든 후 InputField를 만들어 스크립트를 넣고
onValueChanged에 SetPlayerName() 함수를 연결해준다.
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 32 33 | using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(InputField))] public class PlayerNameInputField : MonoBehaviour { static string playerNamerPrefKey = "PlayerName"; // Use this for initialization void Start () { string defaultName = ""; InputField _inputfield = this.GetComponent<InputField>(); if (_inputfield != null) { if(PlayerPrefs.HasKey(playerNamerPrefKey)) { defaultName = PlayerPrefs.GetString(playerNamerPrefKey); _inputfield.text = defaultName; } } PhotonNetwork.playerName = defaultName; } public void SetPlayerName(string value) { PhotonNetwork.playerName = value + " "; PlayerPrefs.SetString(playerNamerPrefKey, value); } } | cs |
PlayerPrefs는 dictionary처럼 key와 value값을 가진 리스트로 플레이어의 환경설정을 저장하는 용도라고 보면 된다.
(https://docs.unity3d.com/ScriptReference/PlayerPrefs.html)
키는 변하지 않으므로 static으로 선언해두었다. (7번째줄)
InputField에 값을 입력받으면 SetString을 통해 해당 키에 value를 입력하고, (30번째줄)
실행 시 해당 키가 존재하면(HasKey, 17번째줄) GetString을 통해 value값을 받아와 출력한다. (19번째줄)
PhotonNetwork.playerName을 통해 네트워크상의 이름을 설정한다.
이후 텍스트 하나를 생성후 내용을 Connecting... 으로 변경
Start함수에서 라벨 및 버튼은 표시하고, 텍스트는 비표시.
Connect()시 라벨 및 버튼 비표시, Connecting 글자가 표시되도록 함.
OnDisconnectedFromPhoton()에서는 다시 라벨 및 버튼을 표시하고 텍스트는 표시되지 않도록 함.
'프로그래밍 공부 > Photon' 카테고리의 다른 글
5. 플레이어 만들기 / 6. 플레이어 카메라 동작 (0) | 2018.08.07 |
---|---|
3. 게임 씬 / 4. 게임 매니저와 레벨 (0) | 2018.08.06 |
1. 로비 만들기 (0) | 2018.08.06 |
Photon 시작하기 (0) | 2018.08.06 |
Photon Import 'newtonsoft.json.jsonconvert' is defined multiple times 에러 해결 (0) | 2018.08.06 |