| 
| Joyce | Дата: Четверг, 27 Сентября 2018, 18:13 | Сообщение # 1 |  | был не раз Сейчас нет на сайте | Здравствуйте. Уже неделю пробую сделать так, чтобы по нажатию кнопки играть в Unity(С Match Maker) создавался матч, если других нету, или игрок присоединялся к существующему матчу, если он есть. Попытки не увенчались успехом, поэтому потеряв надежду я обращаюсь сюда. В срипте есть 2 public void`а, один создает матч, другой подключается к существуещему, если он есть, но они вешаются на разные кнопки, а мне надо чтобы было на одной. И можно ли повесить сразу эти два public void`а на одну кнопку и они будут работать так, как мне надо , или рандомно, или будеть выполняться только первый public void, который висит ? Сам скрипт: Код using System.Collections;using System.Collections.Generic;
 using UnityEngine.Networking;
 using UnityEngine.Networking.Match;
 using UnityEngine;
 using UnityEngine.UI;
 
 public class MatchMakerLobby : NetworkBehaviour
 {
 string matchName;
 public GameObject match;
 public Canvas canv;
 public Transform tochka;
 GameObject matchH;
 string matchFind;
 
 void Start()
 {
 NetworkManager.singleton.StartMatchMaker();
 string matchName = GameObject.Find("InputFieldNameMatch").transform.Find("Text").GetComponent<Text>().text;
 string matchFind = GameObject.Find("InputFieldNameMatch").transform.Find("Text").GetComponent<Text>().text;
 }
 
 public void CreateInternetMatch(string matchName)
 {
 NetworkManager.singleton.matchMaker.CreateMatch(matchName, 4, true, "", "", "", 0, 0, OnInternetMatchCreate);
 
 }
 
 private void OnInternetMatchCreate(bool success, string extendedInfo, MatchInfo matchInfo)
 {
 if (success)
 {
 Debug.Log("Create match succeeded");
 
 MatchInfo hostInfo = matchInfo;
 NetworkServer.Listen(hostInfo, 9000);
 
 NetworkManager.singleton.StartHost(hostInfo);
 
 }
 else
 {
 Debug.LogError("Create match failed");
 }
 }
 
 public void FindInternetMatch(string matchName)
 {
 NetworkManager.singleton.matchMaker.ListMatches(0, 10, matchName, true, 0, 0, OnInternetMatchList);
 }
 
 private void OnInternetMatchList(bool success, string extendedInfo, List<MatchInfoSnapshot> matches)
 {
 if (success)
 {
 if (matches.Count != 0)
 {
 NetworkManager.singleton.matchMaker.JoinMatch(matches[matches.Count - 1].networkId, "", "", "", 0, 0, OnJoinInternetMatch);
 }
 else
 {
 Debug.Log("No matches in requested room!");
 }
 }
 else
 {
 Debug.LogError("Couldn't connect to match maker");
 }
 }
 
 private void OnJoinInternetMatch(bool success, string extendedInfo, MatchInfo matchInfo)
 {
 if (success)
 {
 
 MatchInfo hostInfo = matchInfo;
 NetworkManager.singleton.StartClient(hostInfo);
 }
 else
 {
 Debug.LogError("Join match failed");
 }
 }
 }
 |  |  |  |  | 
| 
| Reng | Дата: Суббота, 29 Сентября 2018, 16:16 | Сообщение # 2 |  | был не раз Сейчас нет на сайте | С Match Maker я не знаком, но постараюсь помочь. 
 Может нужно найти скрипт который вызывает методы CreateInternetMatch и FindInternetMatch.
 А в нём изменить код, чтобы сначала вызывался FindInternetMatch, а если матч не нашёлся тогда вызывался CreateInternetMatch.
 
 Или эти методы одновременно вызывает button(on Click)?
 
 Я думаю дело в кнопке или в скрипте который на ней висит.
 
 
 Сообщение отредактировал Reng - Суббота, 29 Сентября 2018, 16:20 |  |  |  |  |