You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

136 lines
3.3 KiB

using TMPro;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using UnityEngine.TextCore.Text;
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }
private void Awake()
{
if (Instance == null) Instance = this;
}
[SerializeField] private Player localPlayer;
[SerializeField] private CameraController cameraController;
[SerializeField] private GameObject hostLeft;
[SerializeField] private TMP_InputField codeInput;
[SerializeField] private TMP_Text nickname;
[Header("Managers")]
[SerializeField] private SceneLoader sceneLoader;
[SerializeField] private MainScreensManager mainScreensManager;
[Header("References")]
[SerializeField] private GameObject loadingScreen;
[SerializeField] private Camera mainCamera;
[Header("Data")]
[SerializeField] private CharactersList charactersList;
[SerializeField] private EmojiPopupData emojiPopupData;
public static CharactersList CharactersList => Instance.charactersList;
public static EmojiPopupData EmojiPopupData => Instance.emojiPopupData;
public static Player LocalPlayer => Instance.localPlayer;
public static Camera MainCamera => Instance.mainCamera;
public void Loaded()
{
JoinMyRoom();
nickname.text = LocalPlayerData.PlayerName;
}
public void LoadScene(string sceneName)
{
sceneLoader.LoadScene(sceneName, () =>
{
//loadingScreen.SetActive(false);
mainScreensManager.SetGameScreen();
//LocalPlayer.SetPosition(new Vector3());
});
}
public void Loading(bool loading)
{
loadingScreen.SetActive(loading);
}
public void JoinLocation(string locationName)
{
loadingScreen.SetActive(true);
ConnectionManager.Instance.JoinLocation(locationName, () =>
{
LoadScene(locationName);
});
}
public void ChangeMyRoom(string roomName)
{
loadingScreen.SetActive(true);
LocalPlayerData.RoomID = roomName;
WebQuery.SetRoom(this, LocalPlayerData.ID, roomName, (UnityWebRequest request, string data) =>
{
JoinMyRoom();
});
}
public void JoinMyRoom()
{
string roomName = LocalPlayerData.RoomID;
loadingScreen.SetActive(true);
ConnectionManager.Instance.CreateLobbyAndRelay("MyRoom", roomName, 1, true, () =>
{
LoadScene(roomName);
});
}
public void SetCharacter(Character character)
{
LocalPlayer.SetCharacter(character);
}
public void PlayAnim(string anim)
{
LocalPlayer.PlayAnimation(anim);
}
public void Lay()
{
LocalPlayer.Lay();
}
public void Sit()
{
LocalPlayer.Sit();
}
public void Emoji(int emoji)
{
LocalPlayer.SpawnEmoji(emoji);
}
public void SetLocalPlayer(Player player)
{
if (!player.IsOwner)
{
Debug.LogError("Trying to assign not owned player");
return;
}
localPlayer = player;
cameraController.SetTarget(player.transform);
}
public void HostLeft()
{
hostLeft.SetActive(true);
}
}