Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic Multiplayer UI #774

Draft
wants to merge 52 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
dd1f515
WIP UI
mikeskydev Oct 13, 2023
a0ad425
Fix panel spawn
mikeskydev Oct 16, 2023
774196c
Add MP panel to list
mikeskydev Oct 16, 2023
ed48bef
Oculus connection logic for testing
mikeskydev Oct 16, 2023
52c54ff
Join logic
mikeskydev Oct 16, 2023
a23f473
WIP panel
mikeskydev Oct 16, 2023
5d45586
Setup new button type, fix close button
mikeskydev Oct 17, 2023
99b54d1
Change instantiation point of photon runner
mikeskydev Oct 18, 2023
87c9a62
beta tag prefab
mikeskydev Dec 7, 2023
3ee080a
Add alpha tag to multiplayer
mikeskydev Dec 7, 2023
2fbf009
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Dec 21, 2023
3882616
Remove duplicate "using" block
andybak Dec 22, 2023
33efddc
Merge branch 'main' into multiplayer/ui
mikeskydev Feb 11, 2024
2e03443
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak May 19, 2024
e90d5dc
Merge branch 'main' into multiplayer/ui
mikeskydev May 21, 2024
b4cc4ec
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Sep 26, 2024
de5499a
Trigger CI workflow
sbanca Oct 3, 2024
4fe8071
Minimal UI Implementation for multiplayer room
sbanca Oct 7, 2024
defb047
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Oct 7, 2024
ad8281b
Merge branch 'multiplayer/ui' of https:/icosa-foundation/…
andybak Oct 7, 2024
cf83975
Numeric keyboard popup for multiplayer room
andybak Oct 7, 2024
16d3746
Buttons were too close to panel
andybak Oct 7, 2024
1637dc9
Don't init XR manager on start
andybak Oct 7, 2024
ba14137
OpenXR should be the default in the editor
andybak Oct 7, 2024
ada058c
Admin panel label tweaks
andybak Oct 7, 2024
7a2b832
Initialize keyboard with room name and refactor room name handling
sbanca Oct 7, 2024
02dbcfe
Does Room exist
sbanca Oct 7, 2024
af158cc
Update MultiplayerManager.cs
sbanca Oct 7, 2024
af7a389
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Oct 9, 2024
50e7266
Merge branch 'multiplayer/ui' of https:/icosa-foundation/…
andybak Oct 9, 2024
3e3bc6f
Remove graphview reference
andybak Oct 9, 2024
562b5bd
dotnet format
andybak Oct 9, 2024
a8e177b
Add Disconnection Handling for Multiplayer Mode Update
sbanca Oct 10, 2024
438a276
Add Leave Room button
sbanca Oct 10, 2024
f2d2108
Update PhotonPlayerRig.prefab
sbanca Oct 13, 2024
b9fcd27
Update MultiplayerPanel.prefab
sbanca Oct 14, 2024
fc4d431
Editor UI to test connection to the room
sbanca Oct 14, 2024
3213254
Reducing payload per Stroke Chunk
sbanca Oct 14, 2024
0c07316
update Build GitHub Actions workflow (build.yml) to use the new photo…
sbanca Oct 15, 2024
eed2b6a
Update PopUpWindow_NumericKeyboard.prefab
sbanca Oct 15, 2024
0bb5dfe
Include Photon Fusion project-specific assets in version control
sbanca Oct 15, 2024
ba5a48d
Include NetworkPrefabAssetCollection.asset in version control
sbanca Oct 15, 2024
29ce9ff
Update PhotonPlayerRig.prefab
sbanca Oct 15, 2024
f45546b
removing the NetworkPrefbAssetCollection
sbanca Oct 15, 2024
20e4a8b
Track PhotonAppSettings
sbanca Oct 17, 2024
2543d85
Rebake PhotonPlayerRig
sbanca Oct 17, 2024
69f666b
Update SketchControlsScript.cs
sbanca Oct 20, 2024
6f13bb7
Update MultiplayerPanel.cs
sbanca Oct 20, 2024
ee77722
Handle the removal of the player rig when leaving the room
sbanca Oct 20, 2024
8a589a0
Update PhotonManager.cs
sbanca Oct 20, 2024
e7843f2
Update SketchControlsScript.cs
sbanca Oct 20, 2024
e5de53b
Create NetworkPrefabAssetCollection.asset
sbanca Oct 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,7 @@ jobs:
with:
token: ${{ env.PHOTON_PAT }}
repository: icosa-mirror/photon-fusion
ref: v1.1.10
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without this, it will take the latest. We probably should pin it, though, so this is a good change.

path: photon-fusion-mirror/

- name: Copy photon files
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ Packages/com.unity.xr.picoxr
/Assets/Photon/**
/Assets/Photon.meta
!/Assets/Photon/Fusion/Resources/NetworkProjectConfig.fusion*
!/Assets/Photon/Fusion/Resources/PhotonAppSettings.asset*
!/Assets/Photon/Fusion/User/NetworkPrefabAssetCollection.asset*

# Cache files
*.cache
61 changes: 61 additions & 0 deletions Assets/Editor/MultiplayerManagerEditor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// MultiplayerManagerInspector.cs
using UnityEditor;
using UnityEngine;
using OpenBrush.Multiplayer;
using System.Threading.Tasks;

#if UNITY_EDITOR
[CustomEditor(typeof(MultiplayerManager))]
public class MultiplayerManagerInspector : Editor
{
private MultiplayerManager multiplayerManager;
private string roomName = "1234";
private bool isPrivate = false;
private int maxPlayers = 4;
private bool voiceDisabled = false;

public override void OnInspectorGUI()
{
// Get the target object (MultiplayerManager)
multiplayerManager = (MultiplayerManager)target;

GUILayout.Label("Multiplayer Manager Controls", EditorStyles.boldLabel);

// Room data input fields
roomName = EditorGUILayout.TextField("Room Name", roomName);


if (GUILayout.Button("Connect to Room"))
{
ConnectToRoom();
}

// Draw default inspector below
DrawDefaultInspector();
}

private async void ConnectToRoom()
{
if (multiplayerManager != null)
{
RoomCreateData roomData = new RoomCreateData
{
roomName = roomName,
@private = isPrivate,
maxPlayers = maxPlayers,
voiceDisabled = voiceDisabled
};

bool success = await multiplayerManager.Connect(roomData);
if (success)
{
Debug.Log($"Successfully connected to room: {roomName}");
}
else
{
Debug.LogError($"Failed to connect to room: {roomName}");
}
}
}
}
#endif
11 changes: 11 additions & 0 deletions Assets/Editor/MultiplayerManagerEditor.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions Assets/OculusMR/OculusMRController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,19 @@ public async void StartMRExperience(bool isHosting)
{
await m_SpatialAnchorManager.CreateSpatialAnchor();
m_SpatialAnchorManager.SceneLocalizeToAnchor();
MultiplayerManager.m_Instance.Connect();
MultiplayerManager.m_Instance.Connect(new RoomCreateData()
{
roomName = "OculusMRRoom",
maxPlayers = 12
});
}
else
{
MultiplayerManager.m_Instance.Connect();
MultiplayerManager.m_Instance.Connect(new RoomCreateData()
{
roomName = "OculusMRRoom",
maxPlayers = 12
});
}
}

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions Assets/Photon/Fusion/Resources/PhotonAppSettings.asset
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1878438611, guid: 7de3b8b9e1263ad479e2d0c4261b7646, type: 3}
m_Name: PhotonAppSettings
m_EditorClassIdentifier:
AppSettings:
AppIdFusion:
AppIdChat:
AppIdVoice:
AppVersion:
UseNameServer: 1
FixedRegion:
Server:
Port: 0
ProxyServer:
Protocol: 0
EnableProtocolFallback: 1
AuthMode: 0
EnableLobbyStatistics: 0
NetworkLogging: 1
154 changes: 154 additions & 0 deletions Assets/Photon/Fusion/User/NetworkPrefabAssetCollection.asset
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7851828500534389341
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: NetworkedRig
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: 7f1f582839553344c8827c8e7f15e4b2
--- !u!114 &-6679037723637155746
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: PhotonPlayerRig
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: 9ee52735aebb6a445b4905c8aba8cfe3
--- !u!114 &-4876441823125888161
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: PlayerBallPrototype
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: 6eca58070665ea64797a9b124cb6ab03
--- !u!114 &-3882056053279745226
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: FusionAvatar
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: eedb965bcb4e568479a4828d17fbc1c3
--- !u!114 &-2813734544996678366
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 929548324, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: ~MISSING~PhotonPlayerRigBkp
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: a5876108ffed6db47892c3ae59497b56
--- !u!114 &-2200370131318246874
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: BallPrototype
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: 61b6ef4ffff3d8f4498968869591d6bf
--- !u!114 &-272827184848844876
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: FusionColocationDriver
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: 8ee45e6a80f151e48a85e55c1f12b1b1
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -225830702, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: NetworkPrefabAssetCollection
m_EditorClassIdentifier:
--- !u!114 &1613190245493424334
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: PlayerPrototype
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: e4df49d0bf125a740a2c14ab6e887572
--- !u!114 &3549518608579063576
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: PlayerTransformPrototype
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: 3251faa3ac8a66642bf6f9e8433499da
--- !u!114 &4563594632895129475
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -571403812, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name: PlayerRB2DPrototype
m_EditorClassIdentifier:
AssetGuid:
RawGuidValue: dbc9b57ea26fbf84b8cc14b0882fe89b
Loading
Loading