diff --git a/Assets/Prefabs/Game/Managers/GameManager.prefab b/Assets/Prefabs/Game/Managers/GameManager.prefab index f59f180..30a757d 100644 --- a/Assets/Prefabs/Game/Managers/GameManager.prefab +++ b/Assets/Prefabs/Game/Managers/GameManager.prefab @@ -9,6 +9,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1043847408052489032} + - component: {fileID: 564767176013578446} + - component: {fileID: 292422149206273730} m_Layer: 0 m_Name: GameManager m_TagString: Untagged @@ -30,3 +32,32 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &564767176013578446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1043847408052489033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + NetworkInstanceId: 0 + PrefabHash: 13494567273885427380 + PrefabHashGenerator: GameManager + AlwaysReplicateAsRoot: 0 + DontDestroyWithOwner: 0 +--- !u!114 &292422149206273730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1043847408052489033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 326af4e8fa7869240a41c45c889fa8f8, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/King/KingPrefab.prefab b/Assets/Prefabs/King/KingPrefab.prefab index 9a02313..db27c1e 100644 --- a/Assets/Prefabs/King/KingPrefab.prefab +++ b/Assets/Prefabs/King/KingPrefab.prefab @@ -248,7 +248,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &6649144231394212727 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Player/PlayerPrefab.prefab b/Assets/Prefabs/Player/PlayerPrefab.prefab index e92302e..d4eb8c6 100644 --- a/Assets/Prefabs/Player/PlayerPrefab.prefab +++ b/Assets/Prefabs/Player/PlayerPrefab.prefab @@ -128,7 +128,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4814433541978696327} - m_Enabled: 1 + m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 22ae0d31c49624d4fb9990f2f5f72fd9, type: 3} m_Name: @@ -267,7 +267,7 @@ CharacterController: m_GameObject: {fileID: 4814433541978696327} m_Material: {fileID: 0} m_IsTrigger: 0 - m_Enabled: 1 + m_Enabled: 0 serializedVersion: 2 m_Height: 2 m_Radius: 0.5 diff --git a/Assets/Scripts/Network/Game/GameHandler.cs b/Assets/Scripts/Network/Game/GameHandler.cs index d3ba523..4e61f87 100644 --- a/Assets/Scripts/Network/Game/GameHandler.cs +++ b/Assets/Scripts/Network/Game/GameHandler.cs @@ -1,18 +1,56 @@ using System.Collections; using System.Collections.Generic; +using MLAPI; using UnityEngine; -public class GameHandler : MonoBehaviour +public class GameHandler : NetworkBehaviour { // Start is called before the first frame update - void Start() - { - // Perform the intro cutscene camera movement + void Start() { + StartCoroutine(introCutscene()); + } - // Do a 3.2.1 countdown or ask team what we want to do here + IEnumerator introCutscene() { + // Get the time to complete the intro camera fly through + float cameraLerpTime = Camera.main.GetComponent().playOnAwakeTime; - // Re-enable the character controllers and disable the capsulecollider, and remove the main camera, and activate the local cameras + // Wait for that many seconds - allows for time to complete the "cutscene" + yield return new WaitForSecondsRealtime(cameraLerpTime); - // Start the game timer + // Remove the main camera and give camera to local players + Camera.main.gameObject.SetActive(false); + + // Get all players in the scene - runners and king + GameObject[] playableCharacters = GameObject.FindGameObjectsWithTag("Player"); + + // Iterate over them and if their network object equals the call to the rpc, enable that camera + GameObject localPlayer = null; + foreach (GameObject character in playableCharacters) { + if (character.GetComponent().OwnerClientId == NetworkManager.Singleton.LocalClientId) { + localPlayer = character; + FindGameObjectInChildWithTag(character, "PlayerCam").SetActive(true); + } + } + + //TODO: Do a 3.2.1 countdown + + // Re-enable the player movement + localPlayer.GetComponentInChildren().enabled = true; + + //TODO: Start the game timer + } + + // Only works for 1st generation children + private static GameObject FindGameObjectInChildWithTag(GameObject parent, string tag) { + Transform t = parent.transform; + + for (int i = 0; i < t.childCount; i++) { + if (t.GetChild(i).gameObject.tag == tag) { + return t.GetChild(i).gameObject; + } + } + + // Couldn't find child with tag + return null; } } diff --git a/Assets/Scripts/Network/Game/SpawnManager.cs b/Assets/Scripts/Network/Game/SpawnManager.cs index 3ab5df4..b80fe37 100644 --- a/Assets/Scripts/Network/Game/SpawnManager.cs +++ b/Assets/Scripts/Network/Game/SpawnManager.cs @@ -21,7 +21,6 @@ public class SpawnManager : NetworkBehaviour { InitSpawnPoints(); if (IsHost) { - Debug.Log("Host spawn"); // Get the player data for the host player if (ServerGameNetPortal.Instance.clientIdToGuid.TryGetValue(NetworkManager.Singleton.LocalClientId, out string clientGuid)) { if (ServerGameNetPortal.Instance.clientData.TryGetValue(clientGuid, out PlayerData playerData)) { diff --git a/Assets/Scripts/PlayerScripts/PlayerMovement.cs b/Assets/Scripts/PlayerScripts/PlayerMovement.cs index 80163da..f0d76d8 100644 --- a/Assets/Scripts/PlayerScripts/PlayerMovement.cs +++ b/Assets/Scripts/PlayerScripts/PlayerMovement.cs @@ -114,7 +114,7 @@ public class PlayerMovement : NetworkBehaviour { // Don't do movement unless this is the local player controlling it // Otherwise we let the server handle moving us - //if (!IsLocalPlayer) { return; } + if (!IsLocalPlayer) { return; } //Controls for camera diff --git a/Assets/Scripts/UI/Lobby/LobbyUI.cs b/Assets/Scripts/UI/Lobby/LobbyUI.cs index 891a660..d850cc0 100644 --- a/Assets/Scripts/UI/Lobby/LobbyUI.cs +++ b/Assets/Scripts/UI/Lobby/LobbyUI.cs @@ -291,7 +291,6 @@ public class LobbyUI : NetworkBehaviour { string[] a3 = a2.Split('<'); // Now split to the first HTML tag after the IP address. string a4 = a3[0]; // Get the substring before the tag. - Debug.Log("External IP Address = " + a4); hostIpAddress.Value = "Host IP: " + a4; } } diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index c1e8301..168f614 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -17,10 +17,4 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/Game-Mountain.unity guid: f6e50dc4cb4a9b2449937a34f68b7e26 - - enabled: 1 - path: Assets/Scenes/Demos/InventorySelection.unity - guid: 087e255255a646a4b895d4c7b60e2e3e - - enabled: 1 - path: Assets/Scenes/Demos/MovementScene.unity - guid: 4282c79fedd3def4fa3c93c0a77f914f m_configObjects: {} diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 8f49ba9..70598d5 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -15,25 +15,25 @@ EditorUserSettings: value: 224247031146466f181a033019225303593b17282e3169032e2c1336f1af073be7e933d6ca3f31297717e1351027 flags: 0 RecentlyUsedScenePath-3: - value: 22424703114646680e0b0227036c6f02131b172b282d347e38271427fb + value: 22424703114646680e0b0227036c7b151b180b6505263035233d1221fbd33134e7e422e0e8347129370bfb25 flags: 0 RecentlyUsedScenePath-4: - value: 22424703114646680e0b0227036c7b151b180b6505263035233d1221fbd33134e7e422e0e8347129370bfb25 - flags: 0 - RecentlyUsedScenePath-5: value: 224247031146467c0c03096f3d2c4a1e02161124623d28393930 flags: 0 - RecentlyUsedScenePath-6: + RecentlyUsedScenePath-5: value: 22424703114646680e0b0227036c7b151b180b6505263035233d1221fbd33134e7e422e0e8347129370bfb25 flags: 0 - RecentlyUsedScenePath-7: + RecentlyUsedScenePath-6: value: 22424703114646680e0b0227036c7b151b180b650d262f3d192c0e27d1e33136e7a923e7ee2e26 flags: 0 + RecentlyUsedScenePath-7: + value: 22424703114646680e0b0227036c78111b125507233d28242c20137df7ee3d2cfb + flags: 0 RecentlyUsedScenePath-8: - value: 22424703114646680e0b0227036c6f02131b172b282d347e38271427fb + value: 22424703114646680e0b0227036c78111b125507233d28242c20137df7ee3d2cfb flags: 0 RecentlyUsedScenePath-9: - value: 22424703114646680e0b0227036c78111b125507233d28242c20137df7ee3d2cfb + value: 22424703114646680e0b0227036c6f02131b172b282d347e38271427fb flags: 0 UnityRemoteCompression: value: 337f73