diff --git a/Minecraft Client/Assets/Content/Player.prefab b/Minecraft Client/Assets/Content/Player.prefab index 8b2908b..bf700d7 100644 --- a/Minecraft Client/Assets/Content/Player.prefab +++ b/Minecraft Client/Assets/Content/Player.prefab @@ -1,5 +1,84 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &2364439863761876436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4287102993642578527} + - component: {fileID: 5335013759181273151} + - component: {fileID: 4515687939373857105} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4287102993642578527 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2364439863761876436} + 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: 4806445434898626671} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5335013759181273151 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2364439863761876436} + m_CullTransparentMesh: 1 +--- !u!114 &4515687939373857105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2364439863761876436} + 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: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: c5d381fc55e1650408676b69d87c7d55, type: 3} + m_FontSize: 43 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 9 + m_MaxSize: 43 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Name --- !u!1 &4093383343133656139 GameObject: m_ObjectHideFlags: 0 @@ -28,9 +107,110 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 6997416220352495879} + - {fileID: 4806445434898626671} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6130259766477046308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4806445434898626671} + - component: {fileID: 452157612323187453} + - component: {fileID: 3785361083592586855} + - component: {fileID: 4286033408814976509} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4806445434898626671 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6130259766477046308} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.039} + m_LocalScale: {x: 0.01, y: 0.01, z: 1} + m_Children: + - {fileID: 4287102993642578527} + m_Father: {fileID: 4093383343133656141} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -0.046, y: 2.339} + m_SizeDelta: {x: 200, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &452157612323187453 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6130259766477046308} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &3785361083592586855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6130259766477046308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &4286033408814976509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6130259766477046308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 --- !u!1 &6443714940181712877 GameObject: m_ObjectHideFlags: 0 diff --git a/Minecraft Client/Assets/Scenes/Game.unity b/Minecraft Client/Assets/Scenes/Game.unity index e77a814..69d9159 100644 --- a/Minecraft Client/Assets/Scenes/Game.unity +++ b/Minecraft Client/Assets/Scenes/Game.unity @@ -2127,6 +2127,7 @@ MonoBehaviour: deadScreen: {fileID: 1849105196} pauseScreen: {fileID: 622656467} optionsScreen: {fileID: 409400360} + camera: {fileID: 1934992311} blockData: - name: Air textures: diff --git a/Minecraft Client/Assets/Scripts/Game/Client.cs b/Minecraft Client/Assets/Scripts/Game/Client.cs index 67740ab..e4ac17c 100644 --- a/Minecraft Client/Assets/Scripts/Game/Client.cs +++ b/Minecraft Client/Assets/Scripts/Game/Client.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Data; using System.IO; +using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; @@ -19,6 +20,7 @@ public class Client private UdpClient client; private int port; private Thread receiveThread; + private string nameOther = null; public Client(string hostname, int port, World world, string name) { @@ -236,6 +238,19 @@ public class Client world.UpdatePlayerRotation(new Quaternion(x, y, z, w), id); } + + //name request + if (data[0] == 11) + { + List nameASCII = new List(); + + for (int i = 1; i < data.Length; i++) + { + nameASCII.Add(data[i]); + } + + nameOther = Encoding.ASCII.GetString(nameASCII.ToArray()); + } } } @@ -265,6 +280,19 @@ public class Client client.Send(data, data.Length); } + public string GetPlayerName(int id) + { + Send(new byte[]{11, (byte)id}); + + while (nameOther == null) + { + } + + string ret = nameOther; + nameOther = null; + return ret; + } + public void SaveWorld() { Send(new byte[]{9}); diff --git a/Minecraft Client/Assets/Scripts/Game/World.cs b/Minecraft Client/Assets/Scripts/Game/World.cs index c697d89..aef9d1a 100644 --- a/Minecraft Client/Assets/Scripts/Game/World.cs +++ b/Minecraft Client/Assets/Scripts/Game/World.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Threading; using UnityEngine; using UnityEngine.SceneManagement; +using UnityEngine.UI; public class World : MonoBehaviour { @@ -25,6 +26,7 @@ public class World : MonoBehaviour [SerializeField] private GameObject deadScreen; [SerializeField] private GameObject pauseScreen; [SerializeField] private GameObject optionsScreen; + [SerializeField] private Camera camera; private ChunkCoord lastPlayerChunkCoord = new ChunkCoord(0, 0); //chunks @@ -93,11 +95,16 @@ public class World : MonoBehaviour if (playersToCreate.Count > 0) { byte id = playersToCreate.Dequeue(); + string nameOther = client.GetPlayerName(id); GameObject player = Instantiate(playerPrefab); player.transform.position = new Vector3((int)player.transform.position.x, GetHeight((byte)player.transform.position.x, (byte)player.transform.position.z) + 2, (int)player.transform.position.z); player.transform.SetParent(gameObject.transform); + Canvas canvas = player.GetComponentInChildren(); + canvas.worldCamera = camera; + Text nameText = player.GetComponentInChildren(); + nameText.text = nameOther; otherPlayers.Add(id, player); } diff --git a/Minecraft Server/Assets/Game/Server.cs b/Minecraft Server/Assets/Game/Server.cs index e21f8e1..a511134 100644 --- a/Minecraft Server/Assets/Game/Server.cs +++ b/Minecraft Server/Assets/Game/Server.cs @@ -48,6 +48,7 @@ public class Server //[0] = 8: player rotation update //[0] = 9: Save the World //[0] = 10: Player died + //[0] = 11: name request private void Receive() { @@ -256,6 +257,20 @@ public class Server { Console.WriteLine(playerNames[GetPlayerID(endPoint)] + " died! \n"); } + + //name request + if(data[0] == 11) + { + int id = data[1]; + List send = new List(); + send.Add(11); + byte[] nameASCII = Encoding.ASCII.GetBytes(playerNames[id]); + foreach (byte b in nameASCII) + { + send.Add(b); + } + Send(send.ToArray(), endPoint); + } } catch (Exception e) { diff --git a/Minecraft Server/Assets/Scenes/Server.unity b/Minecraft Server/Assets/Scenes/Server.unity index 74bc46c..b8d6751 100644 --- a/Minecraft Server/Assets/Scenes/Server.unity +++ b/Minecraft Server/Assets/Scenes/Server.unity @@ -166,5 +166,5 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 5457f26f725053d46bffb9885acfd7d8, type: 3} m_Name: m_EditorClassIdentifier: - worldSize: 60 + worldSize: 10 transferDelay: 5