1
Fork 0
mirror of https://github.com/Steffo99/better-tee.git synced 2024-11-21 23:04:19 +00:00

Update things

This commit is contained in:
Steffo 2019-09-19 19:02:34 +02:00
parent 40a7c5c6f8
commit a7f13f72ae
23 changed files with 742 additions and 43 deletions

View file

@ -3,9 +3,5 @@ using System;
[Serializable] [Serializable]
public class DrawingResults : ActResults { public class DrawingResults : ActResults {
public readonly byte[] pngBytes; public byte[] pngBytes;
public DrawingResults(byte[] pngBytes) {
this.pngBytes = pngBytes;
}
} }

View file

@ -8,6 +8,9 @@ namespace BetterTee.NetMsg
namespace Error { namespace Error {
public class InvalidPassword : MessageBase {} public class InvalidPassword : MessageBase {}
public class GameAlreadyStarted : MessageBase {} public class GameAlreadyStarted : MessageBase {}
public class MaxPlayersCapReached : MessageBase {}
public class NotEnoughPlayers : MessageBase {}
public class NoSettings : MessageBase {}
} }
public class LobbyStatusChange : MessageBase { public class LobbyStatusChange : MessageBase {
@ -43,7 +46,7 @@ namespace BetterTee.NetMsg
public string gamePassword; public string gamePassword;
} }
public class ActResults : MessageBase public class ActResultsMsg : MessageBase
{ {
public ActResults results; public ActResults results;
} }
@ -61,5 +64,7 @@ namespace BetterTee.NetMsg
{ {
public GameSettings settings; public GameSettings settings;
} }
public class GameStart : MessageBase {}
} }
} }

View file

@ -4,8 +4,4 @@ using System;
[Serializable] [Serializable]
public class TypingResults : ActResults { public class TypingResults : ActResults {
public string[] submissions; public string[] submissions;
public TypingResults(string[] submissions) {
this.submissions = submissions;
}
} }

View file

@ -91,7 +91,9 @@ namespace BetterTee.Player
drawableFrame.interactable = true; drawableFrame.interactable = true;
//Generate results //Generate results
results = new DrawingResults(drawableFrame.ToPNG()); results = new DrawingResults {
pngBytes = drawableFrame.ToPNG()
};
} }
public override void ActCleanup() { public override void ActCleanup() {

View file

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace BetterTee.Player
{
public class LobbyController : MonoBehaviour
{
[Header("Objects")]
public Canvas canvas = null;
public EventSystem eventSystem = null;
public Text lobbyText;
public Text playersText;
public Text viewersText;
public Text playersList;
public Text viewersList;
[Header("Prefabs")]
public GameObject lobbyTextPrefab;
public GameObject playersTextPrefab;
public GameObject viewersTextPrefab;
public GameObject playersListPrefab;
public GameObject viewersListPrefab;
protected void Start() {
canvas = GameObject.FindGameObjectWithTag("Canvas")?.GetComponent<Canvas>();
eventSystem = GameObject.FindGameObjectWithTag("EventSystem")?.GetComponent<EventSystem>();
lobbyText = Instantiate(lobbyTextPrefab, canvas.transform).GetComponent<Text>();
playersText = Instantiate(playersTextPrefab, canvas.transform).GetComponent<Text>();
viewersText = Instantiate(viewersTextPrefab, canvas.transform).GetComponent<Text>();
playersList = Instantiate(playersListPrefab, canvas.transform).GetComponent<Text>();
viewersList = Instantiate(viewersListPrefab, canvas.transform).GetComponent<Text>();
}
public void OnLobbyStatusChange(ConnectedPlayerData[] players, ConnectedViewerData[] viewers) {
playersList.text = "";
viewersList.text = "";
foreach(ConnectedPlayerData player in players) {
playersList.text += String.Format("[{0}] {1}\n", player.id, player.name);
}
foreach(ConnectedViewerData viewer in viewers) {
viewersList.text += String.Format("[{0}] {1}\n", viewer.id, viewer.name);
}
}
protected void OnDestroy() {
Destroy(lobbyText.gameObject);
Destroy(playersText.gameObject);
Destroy(viewersText.gameObject);
Destroy(playersList.gameObject);
Destroy(viewersList.gameObject);
}
}
}

View file

@ -0,0 +1,28 @@
fileFormatVersion: 2
guid: 0dfc4022dd0f23147b2b963c2750c36e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- canvas: {instanceID: 0}
- eventSystem: {instanceID: 0}
- lobbyText: {instanceID: 0}
- playersText: {instanceID: 0}
- viewersText: {instanceID: 0}
- playersList: {instanceID: 0}
- viewersList: {instanceID: 0}
- lobbyTextPrefab: {fileID: 6386469135376110178, guid: 745003c3bffcba6459448fbad7687f9f,
type: 3}
- playersTextPrefab: {fileID: 2701375965084900438, guid: 555a7eb2700e7ac4596020774a4450bb,
type: 3}
- viewersTextPrefab: {fileID: 5517075760296149523, guid: 17deacbc7a4a5fe458b491cfa6608d1f,
type: 3}
- playersListPrefab: {fileID: 8188877146660590661, guid: 84a62a0ae00165e418afb36de8439922,
type: 3}
- viewersListPrefab: {fileID: 7800282026214090873, guid: 03fa783d7d140f54cb9b3d03bbb1d9d8,
type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -19,10 +19,12 @@ namespace BetterTee.Player
[Header("Objects")] [Header("Objects")]
public ActController currentAct = null; public ActController currentAct = null;
public LobbyController lobbyController = null;
[Header("Prefabs")] [Header("Prefabs")]
public GameObject drawingControllerPrefab; public GameObject lobbyControllerPrefab = null;
public GameObject typingControllerPrefab; public GameObject drawingControllerPrefab = null;
public GameObject typingControllerPrefab = null;
[Serializable] [Serializable]
public class InvalidActTypeException : Exception { public class InvalidActTypeException : Exception {
@ -48,7 +50,7 @@ namespace BetterTee.Player
LogFilter.Debug = true; LogFilter.Debug = true;
Transport.activeTransport = GetComponent<TelepathyTransport>(); Transport.activeTransport = GetComponent<TelepathyTransport>();
NetworkClient.RegisterHandler<ConnectMessage>(OnConnect); NetworkClient.RegisterHandler<ConnectMessage>(OnConnect);
NetworkClient.RegisterHandler<NetMsg.Server.PlayerJoined>(OnPlayerJoinSuccessful); NetworkClient.RegisterHandler<NetMsg.Server.LobbyStatusChange>(OnLobbyStatusChange);
NetworkClient.RegisterHandler<NetMsg.Server.LobbyEnd>(OnLobbyEnd); NetworkClient.RegisterHandler<NetMsg.Server.LobbyEnd>(OnLobbyEnd);
NetworkClient.RegisterHandler<NetMsg.Server.GameEnd>(OnGameEnd); NetworkClient.RegisterHandler<NetMsg.Server.GameEnd>(OnGameEnd);
NetworkClient.RegisterHandler<NetMsg.Server.ActInit>(OnActInit); NetworkClient.RegisterHandler<NetMsg.Server.ActInit>(OnActInit);
@ -65,10 +67,12 @@ namespace BetterTee.Player
playerName = playerName, playerName = playerName,
gamePassword = gamePassword gamePassword = gamePassword
}); });
lobbyController = Instantiate(lobbyControllerPrefab, transform).GetComponent<LobbyController>();
} }
protected void OnPlayerJoinSuccessful(NetworkConnection connection, NetMsg.Server.PlayerJoined message) { protected void OnLobbyStatusChange(NetworkConnection connection, NetMsg.Server.LobbyStatusChange message) {
lobbyController.OnLobbyStatusChange(message.players, message.viewers);
} }
protected void OnLobbyEnd(NetworkConnection connection, NetMsg.Server.LobbyEnd message) {} protected void OnLobbyEnd(NetworkConnection connection, NetMsg.Server.LobbyEnd message) {}

View file

@ -84,7 +84,9 @@ namespace BetterTee.Player {
submit.GetComponent<Button>().interactable = false; submit.GetComponent<Button>().interactable = false;
//Create results //Create results
results = new TypingResults(submissions.ToArray()); results = new TypingResults {
submissions = submissions.ToArray()
};
} }
public override void ActCleanup() { public override void ActCleanup() {

View file

@ -1,57 +1,138 @@
using System; using System;
using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using Mirror; using Mirror;
namespace BetterTee.Server { namespace BetterTee.Server
{
public class ServerMainController : MonoBehaviour public class ServerMainController : MonoBehaviour
{ {
[Header("Status")] [Header("Status")]
public string password = null; public string lobbyPassword = null;
public List<ConnectedPlayerData> players; public Dictionary<NetworkConnection, ConnectedPlayer> players;
public List<ConnectedViewerData> viewers; public Dictionary<NetworkConnection, ConnectedViewer> viewers;
public GamePhase phase = GamePhase.UNINTIALIZED; public GamePhase phase = GamePhase.UNINTIALIZED;
public GameSettings gameSettings = null;
public int? currentActNumber = null;
public ActSettings CurrentActSettings {
get {
if(gameSettings == null) return null;
if(currentActNumber == null) return null;
return gameSettings.acts[currentActNumber.Value - 1];
}
}
[Header("Constants")] [Header("Constants")]
public const int MAX_CONNECTIONS = 32; public const int MAX_CONNECTIONS = 32;
#region Unity Methods
protected void Start() { protected void Start() {
StartServer(); ServerStart();
} }
protected void OnDestroy() { protected void OnDestroy() {
if(NetworkServer.active) NetworkServer.Shutdown(); if(NetworkServer.active) NetworkServer.Shutdown();
} }
public void StartServer() { #endregion
public void ServerStart() {
LogFilter.Debug = true; LogFilter.Debug = true;
phase = GamePhase.LOBBY; phase = GamePhase.LOBBY;
players = new Dictionary<NetworkConnection, ConnectedPlayer>();
viewers = new Dictionary<NetworkConnection, ConnectedViewer>();
Transport.activeTransport = GetComponent<TelepathyTransport>(); Transport.activeTransport = GetComponent<TelepathyTransport>();
#region Client Messages #region Client Messages
NetworkServer.RegisterHandler<NetMsg.Client.PlayerJoin>(OnPlayerJoin); NetworkServer.RegisterHandler<NetMsg.Client.PlayerJoin>(OnPlayerJoin);
NetworkServer.RegisterHandler<NetMsg.Client.ActResults>(OnActResults); NetworkServer.RegisterHandler<NetMsg.Client.ActResultsMsg>(OnActResults);
#endregion #endregion
#region Viewer Messages #region Viewer Messages
NetworkServer.RegisterHandler<NetMsg.Viewer.Settings>(OnGameSettings);
NetworkServer.RegisterHandler<NetMsg.Viewer.ViewerLink>(OnViewerLink); NetworkServer.RegisterHandler<NetMsg.Viewer.ViewerLink>(OnViewerLink);
NetworkServer.RegisterHandler<NetMsg.Viewer.GameStart>(OnGameStart);
#endregion #endregion
#region Other Messages #region Other Messages
NetworkServer.RegisterHandler<ConnectMessage>(OnConnect); NetworkServer.RegisterHandler<ConnectMessage>(OnConnect);
NetworkServer.RegisterHandler<DisconnectMessage>(OnDisconnect);
#endregion #endregion
NetworkServer.Listen(MAX_CONNECTIONS); NetworkServer.Listen(MAX_CONNECTIONS);
} }
public void SendLobbyUpdate() {
SendToAllRegistered<NetMsg.Server.LobbyStatusChange>(new NetMsg.Server.LobbyStatusChange {
players = players.Values.ToList().ConvertAll<ConnectedPlayerData>(player => player.Data).ToArray(),
viewers = viewers.Values.ToList().ConvertAll<ConnectedViewerData>(viewer => viewer.Data).ToArray()
});
}
public void GameStart() {
phase = GamePhase.ACTS;
currentActNumber = 1;
}
public void ActInit() {
SendToAllRegistered<NetMsg.Server.ActInit>(new NetMsg.Server.ActInit {
settings = CurrentActSettings
});
}
#region SendToAll Methods
public void SendToAllPlayers<T>(T message, int channelId = 0)
where T: IMessageBase {
foreach(NetworkConnection connection in players.Keys) {
connection.Send<T>(message, channelId);
}
}
public void SendToAllViewers<T>(T message, int channelId = 0)
where T: IMessageBase {
foreach(NetworkConnection connection in viewers.Keys) {
connection.Send<T>(message, channelId);
}
}
public void SendToAllRegistered<T>(T message, int channelId = 0)
where T: IMessageBase {
SendToAllPlayers<T>(message, channelId);
SendToAllViewers<T>(message, channelId);
}
#endregion
#region Network Events #region Network Events
protected void OnConnect(NetworkConnection connection, ConnectMessage message) {} protected void OnConnect(NetworkConnection connection, ConnectMessage message) {
//Kick out clients that don't identify in 5 seconds?
}
protected void OnDisconnect(NetworkConnection connection, DisconnectMessage message) {
//How to handle disconnections?
try {
players.Remove(connection);
}
catch(KeyNotFoundException) {}
try {
viewers.Remove(connection);
}
catch(KeyNotFoundException) {}
SendLobbyUpdate();
}
protected void OnPlayerJoin(NetworkConnection connection, NetMsg.Client.PlayerJoin message) protected void OnPlayerJoin(NetworkConnection connection, NetMsg.Client.PlayerJoin message)
{ {
if(message.gamePassword != password) { if(message.gamePassword != lobbyPassword) {
connection.Send<NetMsg.Server.Error.InvalidPassword>(new NetMsg.Server.Error.InvalidPassword()); connection.Send<NetMsg.Server.Error.InvalidPassword>(new NetMsg.Server.Error.InvalidPassword());
connection.Disconnect(); connection.Disconnect();
return; return;
@ -61,47 +142,69 @@ namespace BetterTee.Server {
connection.Disconnect(); connection.Disconnect();
return; return;
} }
if(players.Count >= gameSettings.maximumPlayers) {
connection.Send<NetMsg.Server.Error.MaxPlayersCapReached>(new NetMsg.Server.Error.MaxPlayersCapReached());
connection.Disconnect();
return;
}
ConnectedPlayerData newPlayer = new ConnectedPlayerData { ConnectedPlayer newPlayer = new ConnectedPlayer {
name = message.playerName, name = message.playerName,
id = players.Count id = players.Count
}; };
players.Add(newPlayer); players.Add(connection, newPlayer);
Debug.LogFormat("Player {0} joined the game", message.playerName); Debug.LogFormat("Player {0} joined the game", message.playerName);
connection.Send<NetMsg.Server.LobbyStatusChange>(new NetMsg.Server.LobbyStatusChange { SendLobbyUpdate();
players = players.ToArray(),
viewers = viewers.ToArray()
});
} }
protected void OnActResults(NetworkConnection connection, NetMsg.Client.ActResults message) { protected void OnActResults(NetworkConnection connection, NetMsg.Client.ActResultsMsg message) {
//TODO //Where should we put act results?
}
protected void OnGameSettings(NetworkConnection connection, NetMsg.Viewer.Settings message) {
Debug.LogFormat("Received GameSettings from {0}", viewers[connection].name);
gameSettings = message.settings;
} }
protected void OnViewerLink(NetworkConnection connection, NetMsg.Viewer.ViewerLink message) protected void OnViewerLink(NetworkConnection connection, NetMsg.Viewer.ViewerLink message)
{ {
if(message.gamePassword != password) { if(message.gamePassword != lobbyPassword) {
connection.Send<NetMsg.Server.Error.InvalidPassword>(new NetMsg.Server.Error.InvalidPassword()); connection.Send<NetMsg.Server.Error.InvalidPassword>(new NetMsg.Server.Error.InvalidPassword());
connection.Disconnect(); connection.Disconnect();
return; return;
} }
ConnectedViewerData newViewer = new ConnectedViewerData { ConnectedViewer newViewer = new ConnectedViewer {
name = message.viewerName,
id = viewers.Count id = viewers.Count
}; };
viewers.Add(newViewer); viewers.Add(connection, newViewer);
Debug.LogFormat("Viewer {0} is now linked to the game", message.viewerName); Debug.LogFormat("Viewer {0} is now linked to the game", message.viewerName);
connection.Send<NetMsg.Server.LobbyStatusChange>(new NetMsg.Server.LobbyStatusChange { SendLobbyUpdate();
players = players.ToArray(),
viewers = viewers.ToArray()
});
} }
protected void OnGameStart(NetworkConnection connection, NetMsg.Viewer.GameStart message) {
if(gameSettings == null) {
connection.Send<NetMsg.Server.Error.NoSettings>(new NetMsg.Server.Error.NoSettings());
connection.Disconnect();
return;
}
if(players.Count < gameSettings.minimumPlayers) {
connection.Send<NetMsg.Server.Error.NotEnoughPlayers>(new NetMsg.Server.Error.NotEnoughPlayers());
connection.Disconnect();
return;
}
GameStart();
}
#endregion #endregion
} }

View file

@ -0,0 +1,62 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6155809969824259580
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6155809969824259583}
- component: {fileID: 6155809969824259582}
m_Layer: 0
m_Name: Lobby Controller
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6155809969824259583
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6155809969824259580}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6155809969824259582
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6155809969824259580}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0dfc4022dd0f23147b2b963c2750c36e, type: 3}
m_Name:
m_EditorClassIdentifier:
canvas: {fileID: 0}
eventSystem: {fileID: 0}
lobbyText: {fileID: 0}
playersText: {fileID: 0}
viewersText: {fileID: 0}
playersList: {fileID: 0}
viewersList: {fileID: 0}
lobbyTextPrefab: {fileID: 6386469135376110178, guid: 745003c3bffcba6459448fbad7687f9f,
type: 3}
playersTextPrefab: {fileID: 2701375965084900438, guid: 555a7eb2700e7ac4596020774a4450bb,
type: 3}
viewersTextPrefab: {fileID: 5517075760296149523, guid: 17deacbc7a4a5fe458b491cfa6608d1f,
type: 3}
playersListPrefab: {fileID: 8188877146660590661, guid: 84a62a0ae00165e418afb36de8439922,
type: 3}
viewersListPrefab: {fileID: 7800282026214090873, guid: 03fa783d7d140f54cb9b3d03bbb1d9d8,
type: 3}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b44ef03800892be43b5bb7033900174c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6386469135376110178
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6386469135376110179}
- component: {fileID: 6386469135376110177}
- component: {fileID: 6386469135376110176}
m_Layer: 5
m_Name: Lobby Controller
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6386469135376110179
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6386469135376110178}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -12}
m_SizeDelta: {x: 1056, y: 200}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &6386469135376110177
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6386469135376110178}
m_CullTransparentMesh: 0
--- !u!114 &6386469135376110176
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6386469135376110178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 80
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 111
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Lobby

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 745003c3bffcba6459448fbad7687f9f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8188877146660590661
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7556675150576229492}
- component: {fileID: 7317752957197461379}
- component: {fileID: 194348398706308936}
m_Layer: 5
m_Name: Players List
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7556675150576229492
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8188877146660590661}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0000103, y: 1.0000103, z: 1.0000103}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -264, y: -200}
m_SizeDelta: {x: 528, y: -424.01}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7317752957197461379
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8188877146660590661}
m_CullTransparentMesh: 0
--- !u!114 &194348398706308936
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8188877146660590661}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 45
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 111
m_Alignment: 1
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1.2
m_Text:

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 84a62a0ae00165e418afb36de8439922
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2701375965084900438
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2701375965084900439}
- component: {fileID: 2701375965084900433}
- component: {fileID: 2701375965084900432}
m_Layer: 5
m_Name: Players Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2701375965084900439
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2701375965084900438}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -264, y: -212}
m_SizeDelta: {x: 528, y: 200}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &2701375965084900433
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2701375965084900438}
m_CullTransparentMesh: 0
--- !u!114 &2701375965084900432
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2701375965084900438}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 80
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 111
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Players

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 555a7eb2700e7ac4596020774a4450bb
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7800282026214090873
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7794105597259003164}
- component: {fileID: 537610793271935900}
- component: {fileID: 3871385835114305049}
m_Layer: 5
m_Name: Viewers List
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7794105597259003164
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7800282026214090873}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0000103, y: 1.0000103, z: 1.0000103}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 264, y: -200}
m_SizeDelta: {x: 528, y: -424.01}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &537610793271935900
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7800282026214090873}
m_CullTransparentMesh: 0
--- !u!114 &3871385835114305049
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7800282026214090873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 45
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 111
m_Alignment: 1
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1.2
m_Text:

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 03fa783d7d140f54cb9b3d03bbb1d9d8
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5517075760296149523
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1594410470093643232}
- component: {fileID: 5222349523306323582}
- component: {fileID: 8138011496094737141}
m_Layer: 5
m_Name: Viewers Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1594410470093643232
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5517075760296149523}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0000103, y: 1.0000103, z: 1.0000103}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 264.00003, y: -212.00006}
m_SizeDelta: {x: 528, y: 200}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &5222349523306323582
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5517075760296149523}
m_CullTransparentMesh: 0
--- !u!114 &8138011496094737141
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5517075760296149523}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 80
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 111
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Viewers

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 17deacbc7a4a5fe458b491cfa6608d1f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -48,6 +48,9 @@ MonoBehaviour:
playerName: Steffo playerName: Steffo
gamePassword: ASDF gamePassword: ASDF
currentAct: {fileID: 0} currentAct: {fileID: 0}
lobbyController: {fileID: 0}
lobbyControllerPrefab: {fileID: 6155809969824259580, guid: b44ef03800892be43b5bb7033900174c,
type: 3}
drawingControllerPrefab: {fileID: 3241962964773812264, guid: 4fd713402edcc1c43b82d4d86a713998, drawingControllerPrefab: {fileID: 3241962964773812264, guid: 4fd713402edcc1c43b82d4d86a713998,
type: 3} type: 3}
typingControllerPrefab: {fileID: 2942172269146964315, guid: d91131f9599079b4d96bfefa29d77a3a, typingControllerPrefab: {fileID: 2942172269146964315, guid: d91131f9599079b4d96bfefa29d77a3a,

View file

@ -8,7 +8,7 @@ EditorBuildSettings:
- enabled: 0 - enabled: 0
path: Assets/Scenes/Player.unity path: Assets/Scenes/Player.unity
guid: 2cda990e2423bbf4892e6590ba056729 guid: 2cda990e2423bbf4892e6590ba056729
- enabled: 1 - enabled: 0
path: Assets/Scenes/Server.unity path: Assets/Scenes/Server.unity
guid: 29c4d09f87832d24fbc08b364afc5b30 guid: 29c4d09f87832d24fbc08b364afc5b30
m_configObjects: {} m_configObjects: {}