Skip to content

Commit

Permalink
Got scene transitioning working while preserving network manager
Browse files Browse the repository at this point in the history
  • Loading branch information
jiwoojang committed Jan 17, 2019
1 parent c0f1975 commit e0053d0
Show file tree
Hide file tree
Showing 8 changed files with 250 additions and 148 deletions.
161 changes: 93 additions & 68 deletions Assets/Scenes/SandboxScene.unity → Assets/Scenes/Game.unity
Original file line number Diff line number Diff line change
Expand Up @@ -168,12 +168,101 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1940540819}
- {fileID: 872393075}
- {fileID: 135821057}
- {fileID: 476014995}
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &122555015
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 122555016}
- component: {fileID: 122555019}
- component: {fileID: 122555018}
- component: {fileID: 122555017}
m_Layer: 5
m_Name: BlackScreen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &122555016
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 122555015}
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: 1681634729}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &122555017
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 122555015}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 1
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 100
m_TargetDisplay: 0
--- !u!114 &122555018
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 122555015}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &122555019
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 122555015}
m_CullTransparentMesh: 0
--- !u!1 &133828358
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -364,7 +453,7 @@ Transform:
- {fileID: 1351792068}
- {fileID: 1891517229}
m_Father: {fileID: 38731889}
m_RootOrder: 2
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &135821058
MonoBehaviour:
Expand Down Expand Up @@ -1035,7 +1124,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 38731889}
m_RootOrder: 3
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &476014996
MonoBehaviour:
Expand Down Expand Up @@ -1776,71 +1865,6 @@ Transform:
m_Father: {fileID: 918509547}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &872393074
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 872393075}
- component: {fileID: 872393077}
- component: {fileID: 872393076}
m_Layer: 0
m_Name: Network Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &872393075
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872393074}
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: 38731889}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &872393076
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872393074}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b64137f77cc41d94fa6b1387327f6690, type: 3}
m_Name:
m_EditorClassIdentifier:
player1RoomPropertyKey: Player1
player2RoomPropertyKey: Player2
_playerPrefabName: DebugPlayer
--- !u!114 &872393077
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 872393074}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: aa584fbee541324448dd18d8409c7a41, type: 3}
m_Name:
m_EditorClassIdentifier:
ObservedComponentsFoldoutOpen: 1
Group: 0
prefixField: -1
Synchronization: 0
OwnershipTransfer: 0
ObservedComponents:
- {fileID: 0}
viewIdField: 1
InstantiationId: 1
isRuntimeInstantiated: 0
--- !u!1 &918509546
GameObject:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -2674,6 +2698,7 @@ RectTransform:
- {fileID: 918509547}
- {fileID: 1999053671}
- {fileID: 1761507095}
- {fileID: 122555016}
m_Father: {fileID: 210174635}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
Expand Down
File renamed without changes.
112 changes: 56 additions & 56 deletions Assets/Scripts/Debug/DebugGameManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,62 +24,62 @@ public void Start() {
_networkManager = NetworkManager.instance;
}

if (_inputManager != null) {
// Subscribe to input events
_inputManager.gameInput.OnPrimaryButtonStarted += PrimaryButtonStartedHandler;
_inputManager.gameInput.OnPrimaryButtonEnded += PrimaryButtonEndedHandler;
_inputManager.gameInput.OnSecondaryButtonStarted += SecondaryButtonStartedHandler;
_inputManager.gameInput.OnSecondaryButtonEnded += SecondaryButtonEndedHandler;
} else {
Debug.LogError("Attempting to subscribe to input manager when it does not exist");
}

if (_networkManager != null) {
_networkManager.OnConnectedToPhotonMaster += OnConnectedToMaster;
_networkManager.OnConnectedToRoom += OnConnectedToRoom;
}
//if (_inputManager != null) {
// // Subscribe to input events
// _inputManager.gameInput.OnPrimaryButtonStarted += PrimaryButtonStartedHandler;
// _inputManager.gameInput.OnPrimaryButtonEnded += PrimaryButtonEndedHandler;
// _inputManager.gameInput.OnSecondaryButtonStarted += SecondaryButtonStartedHandler;
// _inputManager.gameInput.OnSecondaryButtonEnded += SecondaryButtonEndedHandler;
//} else {
// Debug.LogError("Attempting to subscribe to input manager when it does not exist");
//}

//if (_networkManager != null) {
// _networkManager.OnConnectedToPhotonMaster += OnConnectedToMaster;
// _networkManager.OnConnectedToRoom += OnConnectedToRoom;
//}
}

public void OnDisable() {
if (_inputManager != null) {
// Unsubscribe from input events
_inputManager.gameInput.OnPrimaryButtonStarted -= PrimaryButtonStartedHandler;
_inputManager.gameInput.OnPrimaryButtonEnded -= PrimaryButtonEndedHandler;
_inputManager.gameInput.OnSecondaryButtonStarted -= SecondaryButtonStartedHandler;
_inputManager.gameInput.OnSecondaryButtonEnded -= SecondaryButtonEndedHandler;
}

if (_networkManager != null) {
_networkManager.OnConnectedToPhotonMaster -= OnConnectedToMaster;
_networkManager.OnConnectedToRoom -= OnConnectedToRoom;
}
}

public override void OnConnectedToMaster() {
_networkManager.JoinOrCreateRoom("DebugRoom");
}

private void OnConnectedToRoom(string roomName) {
//_networkManager.InstantiatePlayerPrefab();
}

private void PrimaryButtonStartedHandler(HardwareInput sender) {
//Debug.Log("Primary Button Started");
}

private void PrimaryButtonEndedHandler(HardwareInput sender) {
//Debug.Log("Primary Button Ended");
}

private void SecondaryButtonStartedHandler(HardwareInput sender) {
//Debug.Log("Secondary Button Started");
}

private void SecondaryButtonEndedHandler(HardwareInput sender) {
//Debug.Log("Secondary Button Ended");
}

public override void OnPlayerEnteredRoom(Player newPlayer) {
MatchManager.instance.RemoteInitializeRound();
}
//public void OnDisable() {
// if (_inputManager != null) {
// // Unsubscribe from input events
// _inputManager.gameInput.OnPrimaryButtonStarted -= PrimaryButtonStartedHandler;
// _inputManager.gameInput.OnPrimaryButtonEnded -= PrimaryButtonEndedHandler;
// _inputManager.gameInput.OnSecondaryButtonStarted -= SecondaryButtonStartedHandler;
// _inputManager.gameInput.OnSecondaryButtonEnded -= SecondaryButtonEndedHandler;
// }

// if (_networkManager != null) {
// _networkManager.OnConnectedToPhotonMaster -= OnConnectedToMaster;
// _networkManager.OnConnectedToRoom -= OnConnectedToRoom;
// }
//}

//public override void OnConnectedToMaster() {
// _networkManager.JoinOrCreateRoom("DebugRoom");
//}

//private void OnConnectedToRoom(string roomName) {
// //_networkManager.InstantiatePlayerPrefab();
//}

//private void PrimaryButtonStartedHandler(HardwareInput sender) {
// //Debug.Log("Primary Button Started");
//}

//private void PrimaryButtonEndedHandler(HardwareInput sender) {
// //Debug.Log("Primary Button Ended");
//}

//private void SecondaryButtonStartedHandler(HardwareInput sender) {
// //Debug.Log("Secondary Button Started");
//}

//private void SecondaryButtonEndedHandler(HardwareInput sender) {
// //Debug.Log("Secondary Button Ended");
//}

//public override void OnPlayerEnteredRoom(Player newPlayer) {
// MatchManager.instance.RemoteInitializeRound();
//}
}
20 changes: 13 additions & 7 deletions Assets/Scripts/Match/MatchManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -242,15 +242,21 @@ public void StartRoundTimerSynchronization() {
// There should only be one other player in this list
// Ping in this situation is RTT
// Note this value could overflow to negative
int otherPlayerPing = (int)PhotonNetwork.PlayerListOthers[0].CustomProperties["Ping"];
int thisPlayerPing = PhotonNetwork.GetPing();

// Whichever player has the higher ping, use their ping as the delay to start the timer
int delayPing = (otherPlayerPing > thisPlayerPing) ? otherPlayerPing : thisPlayerPing;
// Cache value for validation
Photon.Realtime.Player[] otherPlayerList = PhotonNetwork.PlayerListOthers;

// Note there may be discrepancy if the ping of the other client changes significantly within the time to recieve this RPC
// Buffer this by double so that the client with the highest ping will not have to start the timer right away
photonView.RPC("HandleRoundTimerStartSynchronization", RpcTarget.AllViaServer, PhotonNetwork.ServerTimestamp, 2 * delayPing);
if (otherPlayerList.Length > 0) {
int otherPlayerPing = (int)otherPlayerList[0].CustomProperties["Ping"];
int thisPlayerPing = PhotonNetwork.GetPing();

// Whichever player has the higher ping, use their ping as the delay to start the timer
int delayPing = (otherPlayerPing > thisPlayerPing) ? otherPlayerPing : thisPlayerPing;

// Note there may be discrepancy if the ping of the other client changes significantly within the time to recieve this RPC
// Buffer this by double so that the client with the highest ping will not have to start the timer right away
photonView.RPC("HandleRoundTimerStartSynchronization", RpcTarget.AllViaServer, PhotonNetwork.ServerTimestamp, 2 * delayPing);
}
}
}

Expand Down
Loading

0 comments on commit e0053d0

Please sign in to comment.