├── .gitignore ├── .idea └── .idea.AuthoritativeMovementExample │ ├── .idea │ ├── contentModel.xml │ ├── indexLayout.xml │ ├── modules.xml │ ├── vcs.xml │ └── workspace.xml │ └── riderModule.iml ├── Assets ├── AuthoritativeMovementExample.meta ├── AuthoritativeMovementExample │ ├── material.meta │ ├── material │ │ ├── physics.physicsMaterial2D │ │ └── physics.physicsMaterial2D.meta │ ├── prefab.meta │ ├── prefab │ │ ├── GameManager.prefab │ │ ├── GameManager.prefab.meta │ │ ├── InputListener.prefab │ │ ├── InputListener.prefab.meta │ │ ├── Player.prefab │ │ └── Player.prefab.meta │ ├── scene.meta │ ├── scene │ │ ├── AuthoritativeMovementExample.unity │ │ └── AuthoritativeMovementExample.unity.meta │ ├── script.meta │ ├── script │ │ ├── ByteArray.cs │ │ ├── ByteArray.cs.meta │ │ ├── GameManager.cs │ │ ├── GameManager.cs.meta │ │ ├── InputFrame.cs │ │ ├── InputFrame.cs.meta │ │ ├── InputListener.cs │ │ ├── InputListener.cs.meta │ │ ├── ListExtensions.cs │ │ ├── ListExtensions.cs.meta │ │ ├── Player.cs │ │ └── Player.cs.meta │ ├── textures.meta │ └── textures │ │ ├── Square.png │ │ └── Square.png.meta ├── Bearded Man Studios Inc.meta ├── Bearded Man Studios Inc │ ├── Api Documentation HTML.zip │ ├── Api Documentation HTML.zip.meta │ ├── Editor.meta │ ├── Editor │ │ ├── ForgeNetworkingUnityEditor.dll.mdb │ │ ├── ForgeNetworkingUnityEditor.dll.mdb.meta │ │ ├── ForgeNetworkingUnityEditor.dll.meta │ │ ├── ForgeNetworkingUnityEditor.pdb.meta │ │ ├── Resources.meta │ │ └── Resources │ │ │ ├── Add.png │ │ │ ├── Add.png.meta │ │ │ ├── Arrow.png │ │ │ ├── Arrow.png.meta │ │ │ ├── BMS_Forge_Editor.meta │ │ │ ├── BMS_Forge_Editor │ │ │ ├── NetworkBehaviorTemplate.txt │ │ │ ├── NetworkBehaviorTemplate.txt.meta │ │ │ ├── NetworkManagerTemplate.txt │ │ │ ├── NetworkManagerTemplate.txt.meta │ │ │ ├── NetworkObjectFactoryTemplate.txt │ │ │ ├── NetworkObjectFactoryTemplate.txt.meta │ │ │ ├── NetworkObjectTemplate.txt │ │ │ ├── NetworkObjectTemplate.txt.meta │ │ │ ├── StandAloneNetworkBehaviorTemplate.txt │ │ │ ├── StandAloneNetworkBehaviorTemplate.txt.meta │ │ │ ├── version.txt │ │ │ └── version.txt.meta │ │ │ ├── Icon.png │ │ │ ├── Icon.png.meta │ │ │ ├── Lightbulb.png │ │ │ ├── Lightbulb.png.meta │ │ │ ├── Save.png │ │ │ ├── Save.png.meta │ │ │ ├── SideArrow.png │ │ │ ├── SideArrow.png.meta │ │ │ ├── Star.png │ │ │ ├── Star.png.meta │ │ │ ├── Subtract.png │ │ │ ├── Subtract.png.meta │ │ │ ├── Trash.png │ │ │ ├── Trash.png.meta │ │ │ ├── logoDark.png │ │ │ ├── logoDark.png.meta │ │ │ ├── logoLight.png │ │ │ └── logoLight.png.meta │ ├── Examples.meta │ ├── Examples │ │ ├── Cube Forge.meta │ │ ├── Cube Forge │ │ │ ├── CubeForgeGame.unity │ │ │ ├── CubeForgeGame.unity.meta │ │ │ ├── Materials.meta │ │ │ ├── Materials │ │ │ │ ├── Camera.mat │ │ │ │ └── Camera.mat.meta │ │ │ ├── Prefabs.meta │ │ │ ├── Prefabs │ │ │ │ ├── Cube.prefab │ │ │ │ ├── Cube.prefab.meta │ │ │ │ ├── Network Camera.prefab │ │ │ │ └── Network Camera.prefab.meta │ │ │ ├── Scripts.meta │ │ │ ├── Scripts │ │ │ │ ├── CubeForgeGame.cs │ │ │ │ ├── CubeForgeGame.cs.meta │ │ │ │ ├── NetCam.cs │ │ │ │ ├── NetCam.cs.meta │ │ │ │ ├── Primitive.cs │ │ │ │ └── Primitive.cs.meta │ │ │ ├── Textures.meta │ │ │ └── Textures │ │ │ │ ├── Camera.png │ │ │ │ └── Camera.png.meta │ │ ├── Proximity.meta │ │ └── Proximity │ │ │ ├── ExampleProximity.unity │ │ │ ├── ExampleProximity.unity.meta │ │ │ ├── ExampleProximityPlayer.cs │ │ │ ├── ExampleProximityPlayer.cs.meta │ │ │ ├── ExampleProximitySpawn.cs │ │ │ ├── ExampleProximitySpawn.cs.meta │ │ │ ├── ProximityPlayer.prefab │ │ │ └── ProximityPlayer.prefab.meta │ ├── Generated.meta │ ├── Generated │ │ ├── NetworkManager.cs │ │ ├── NetworkManager.cs.meta │ │ ├── NetworkObjectFactory.cs │ │ ├── NetworkObjectFactory.cs.meta │ │ ├── UserGenerated.meta │ │ └── UserGenerated │ │ │ ├── ChatManagerBehavior.cs │ │ │ ├── ChatManagerBehavior.cs.meta │ │ │ ├── ChatManagerNetworkObject.cs │ │ │ ├── ChatManagerNetworkObject.cs.meta │ │ │ ├── CubeForgeGameBehavior.cs │ │ │ ├── CubeForgeGameBehavior.cs.meta │ │ │ ├── CubeForgeGameNetworkObject.cs │ │ │ ├── CubeForgeGameNetworkObject.cs.meta │ │ │ ├── ExampleProximityPlayerBehavior.cs │ │ │ ├── ExampleProximityPlayerBehavior.cs.meta │ │ │ ├── ExampleProximityPlayerNetworkObject.cs │ │ │ ├── ExampleProximityPlayerNetworkObject.cs.meta │ │ │ ├── GameManagerBehavior.cs │ │ │ ├── GameManagerBehavior.cs.meta │ │ │ ├── GameManagerNetworkObject.cs │ │ │ ├── GameManagerNetworkObject.cs.meta │ │ │ ├── InputListenerBehavior.cs │ │ │ ├── InputListenerBehavior.cs.meta │ │ │ ├── InputListenerNetworkObject.cs │ │ │ ├── InputListenerNetworkObject.cs.meta │ │ │ ├── NetworkCameraBehavior.cs │ │ │ ├── NetworkCameraBehavior.cs.meta │ │ │ ├── NetworkCameraNetworkObject.cs │ │ │ ├── NetworkCameraNetworkObject.cs.meta │ │ │ ├── PlayerBehavior.cs │ │ │ ├── PlayerBehavior.cs.meta │ │ │ ├── PlayerNetworkObject.cs │ │ │ ├── PlayerNetworkObject.cs.meta │ │ │ ├── TestBehavior.cs │ │ │ ├── TestBehavior.cs.meta │ │ │ ├── TestNetworkObject.cs │ │ │ └── TestNetworkObject.cs.meta │ ├── Modules.meta │ ├── Modules │ │ ├── Chat.meta │ │ ├── Chat │ │ │ ├── Chat Maker.prefab │ │ │ ├── Chat Maker.prefab.meta │ │ │ ├── ChatMaker.cs │ │ │ ├── ChatMaker.cs.meta │ │ │ ├── ChatManager.cs │ │ │ └── ChatManager.cs.meta │ │ ├── LobbySystem.meta │ │ ├── LobbySystem │ │ │ ├── LobbyManager.cs │ │ │ ├── LobbyManager.cs.meta │ │ │ ├── LobbyPlayer.cs │ │ │ ├── LobbyPlayer.cs.meta │ │ │ ├── LobbyPlayerItem.cs │ │ │ └── LobbyPlayerItem.cs.meta │ │ ├── Prefabs.meta │ │ ├── Prefabs │ │ │ ├── Chat.prefab │ │ │ ├── Chat.prefab.meta │ │ │ ├── EventSystem.prefab │ │ │ ├── EventSystem.prefab.meta │ │ │ ├── LobbyPlayerItem.prefab │ │ │ ├── LobbyPlayerItem.prefab.meta │ │ │ ├── LobbySystem.prefab │ │ │ ├── LobbySystem.prefab.meta │ │ │ ├── Message.prefab │ │ │ └── Message.prefab.meta │ │ ├── Stand Alone Chat.meta │ │ ├── Stand Alone Chat │ │ │ ├── StandAloneChat.cs │ │ │ └── StandAloneChat.cs.meta │ │ ├── VOIP.meta │ │ └── VOIP │ │ │ ├── VOIP.cs │ │ │ ├── VOIP.cs.meta │ │ │ ├── VOIP.unity │ │ │ ├── VOIP.unity.meta │ │ │ ├── VoipStarter.cs │ │ │ └── VoipStarter.cs.meta │ ├── Plugins.meta │ ├── Plugins │ │ ├── BeardedManStudios.dll.mdb │ │ ├── BeardedManStudios.dll.mdb.meta │ │ ├── BeardedManStudios.dll.meta │ │ ├── BeardedManStudios.pdb.meta │ │ ├── ForgeNetworkingCommon.dll.mdb │ │ ├── ForgeNetworkingCommon.dll.mdb.meta │ │ ├── ForgeNetworkingCommon.dll.meta │ │ └── ForgeNetworkingCommon.pdb.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── NetworkManager.prefab │ │ ├── NetworkManager.prefab.meta │ │ ├── Server Option.prefab │ │ └── Server Option.prefab.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── Lobby.unity │ │ ├── Lobby.unity.meta │ │ ├── MultiplayerMenu.unity │ │ ├── MultiplayerMenu.unity.meta │ │ ├── ServerBrowser.unity │ │ └── ServerBrowser.unity.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── BMSUnityExtensions.cs │ │ ├── BMSUnityExtensions.cs.meta │ │ ├── InterpolateQuaternion.cs │ │ ├── InterpolateQuaternion.cs.meta │ │ ├── InterpolateVector2.cs │ │ ├── InterpolateVector2.cs.meta │ │ ├── InterpolateVector3.cs │ │ ├── InterpolateVector3.cs.meta │ │ ├── InterpolateVector4.cs │ │ ├── InterpolateVector4.cs.meta │ │ ├── Logging.meta │ │ ├── Logging │ │ ├── BMSLogger.cs │ │ ├── BMSLogger.cs.meta │ │ ├── Resources.meta │ │ └── Resources │ │ │ ├── BMSLogger.prefab │ │ │ └── BMSLogger.prefab.meta │ │ ├── MainThreadManager.cs │ │ ├── MainThreadManager.cs.meta │ │ ├── Multiplayer Menu.meta │ │ ├── Multiplayer Menu │ │ ├── MultiplayerMenu.cs │ │ └── MultiplayerMenu.cs.meta │ │ ├── NetworkBehavior.cs │ │ ├── NetworkBehavior.cs.meta │ │ ├── NetworkManager.cs │ │ ├── NetworkManager.cs.meta │ │ ├── NetworkObjectFactory.cs │ │ ├── NetworkObjectFactory.cs.meta │ │ ├── NetworkObjectFactoryBase.cs │ │ ├── NetworkObjectFactoryBase.cs.meta │ │ ├── Server Browser.meta │ │ ├── Server Browser │ │ ├── ServerBrowser.cs │ │ ├── ServerBrowser.cs.meta │ │ ├── ServerBrowserItem.cs │ │ └── ServerBrowserItem.cs.meta │ │ ├── UnityObjectMapper.cs │ │ └── UnityObjectMapper.cs.meta ├── Plugins.meta └── Plugins │ ├── Editor.meta │ └── Editor │ ├── JetBrains.meta │ └── JetBrains │ └── JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta ├── AssetsLogs └── bmslog.txt ├── LICENSE ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset ├── README.md └── UnityPackageManager └── manifest.json /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | /Assets/Images* 8 | 9 | # Visual Studio 2015 cache directory 10 | /.vs/ 11 | 12 | # Autogenerated VS/MD/Consulo solution and project files 13 | ExportedObj/ 14 | .consulo/ 15 | *.csproj 16 | *.unityproj 17 | *.sln 18 | *.suo 19 | *.tmp 20 | *.user 21 | *.userprefs 22 | *.pidb 23 | *.booproj 24 | *.svd 25 | *.pdb 26 | 27 | # Unity3D generated meta files 28 | *.pidb.meta 29 | 30 | # Unity3D Generated File On Crash Reports 31 | sysinfo.txt 32 | 33 | # Builds 34 | *.apk 35 | *.unitypackage -------------------------------------------------------------------------------- /.idea/.idea.AuthoritativeMovementExample/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/.idea.AuthoritativeMovementExample/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/.idea.AuthoritativeMovementExample/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/.idea.AuthoritativeMovementExample/riderModule.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6d6f7592fa093847a4c63e2f04235da 3 | folderAsset: yes 4 | timeCreated: 1513694909 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/material.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 649236d9b1c997c4a8a23457ea168bec 3 | folderAsset: yes 4 | timeCreated: 1513698948 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/material/physics.physicsMaterial2D: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!62 &6200000 4 | PhysicsMaterial2D: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: physics 9 | friction: 0 10 | bounciness: 0 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/material/physics.physicsMaterial2D.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e840529a43f61ed4eaaf42f6c13d098a 3 | timeCreated: 1513698967 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 6200000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f322a12d837d364c838ae50f75ec433 3 | folderAsset: yes 4 | timeCreated: 1513694927 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/prefab/GameManager.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1909901469931254} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1909901469931254 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4979201583194304} 22 | - component: {fileID: 114147026580097278} 23 | m_Layer: 0 24 | m_Name: GameManager 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!4 &4979201583194304 31 | Transform: 32 | m_ObjectHideFlags: 1 33 | m_PrefabParentObject: {fileID: 0} 34 | m_PrefabInternal: {fileID: 100100000} 35 | m_GameObject: {fileID: 1909901469931254} 36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 37 | m_LocalPosition: {x: 0, y: 0, z: 0} 38 | m_LocalScale: {x: 1, y: 1, z: 1} 39 | m_Children: [] 40 | m_Father: {fileID: 0} 41 | m_RootOrder: 0 42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 43 | --- !u!114 &114147026580097278 44 | MonoBehaviour: 45 | m_ObjectHideFlags: 1 46 | m_PrefabParentObject: {fileID: 0} 47 | m_PrefabInternal: {fileID: 100100000} 48 | m_GameObject: {fileID: 1909901469931254} 49 | m_Enabled: 1 50 | m_EditorHideFlags: 0 51 | m_Script: {fileID: 11500000, guid: 2ff9eb452303dcf4ba18816f62689d44, type: 3} 52 | m_Name: 53 | m_EditorClassIdentifier: 54 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/prefab/GameManager.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d377f70144ac074287c53ff786949db 3 | timeCreated: 1513699197 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 100100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/prefab/InputListener.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1420436103130830} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1420436103130830 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4734678180465878} 22 | - component: {fileID: 114778372134132180} 23 | m_Layer: 0 24 | m_Name: InputListener 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!4 &4734678180465878 31 | Transform: 32 | m_ObjectHideFlags: 1 33 | m_PrefabParentObject: {fileID: 0} 34 | m_PrefabInternal: {fileID: 100100000} 35 | m_GameObject: {fileID: 1420436103130830} 36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 37 | m_LocalPosition: {x: 0, y: 0, z: 0} 38 | m_LocalScale: {x: 1, y: 1, z: 1} 39 | m_Children: [] 40 | m_Father: {fileID: 0} 41 | m_RootOrder: 0 42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 43 | --- !u!114 &114778372134132180 44 | MonoBehaviour: 45 | m_ObjectHideFlags: 1 46 | m_PrefabParentObject: {fileID: 0} 47 | m_PrefabInternal: {fileID: 100100000} 48 | m_GameObject: {fileID: 1420436103130830} 49 | m_Enabled: 1 50 | m_EditorHideFlags: 0 51 | m_Script: {fileID: 11500000, guid: 958bd3eda33af9f47bc0117581696dac, type: 3} 52 | m_Name: 53 | m_EditorClassIdentifier: 54 | sendSingleInputs: 1 55 | frameSyncRate: 5 56 | FramesToPlay: [] 57 | FramesToReconcile: [] 58 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/prefab/InputListener.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c12fefa12ce8bd4d9f3d990eb94af41 3 | timeCreated: 1513699229 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 100100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/prefab/Player.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b4acefbb25517e4a8f7b0b694e11548 3 | timeCreated: 1531428186 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 100100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b650d522eedffb54f9364d3c83f925d8 3 | folderAsset: yes 4 | timeCreated: 1513694923 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/scene/AuthoritativeMovementExample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f7cfb602031be34c920b35dbfad5b58 3 | timeCreated: 1513699298 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30846eb3ebe42304491cccef5486972f 3 | folderAsset: yes 4 | timeCreated: 1513694931 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/ByteArray.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Runtime.Serialization.Formatters.Binary; 4 | 5 | namespace AuthMovementExample 6 | { 7 | /// 8 | /// Binary (De)serializer using BinaryFormatter 9 | /// 10 | public class ByteArray 11 | { 12 | private static BinaryFormatter _bf = new BinaryFormatter(); 13 | 14 | /// 15 | /// Serialize the object to a binary byte array 16 | /// 17 | /// 18 | /// 19 | public static byte[] Serialize(Object obj) 20 | { 21 | _bf = new BinaryFormatter(); 22 | using (MemoryStream ms = new MemoryStream()) 23 | { 24 | _bf.Serialize(ms, obj); 25 | return ms.ToArray(); 26 | } 27 | } 28 | 29 | /// 30 | /// Deserialize a binary byte array to an object 31 | /// 32 | /// 33 | /// 34 | public static Object Deserialize(byte[] bytes) 35 | { 36 | using (MemoryStream ms = new MemoryStream()) 37 | { 38 | ms.Write(bytes, 0, bytes.Length); 39 | ms.Seek(0, SeekOrigin.Begin); 40 | Object obj = _bf.Deserialize(ms); 41 | return obj; 42 | } 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/ByteArray.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20feb110bbb536749b6afbe31af5b847 3 | timeCreated: 1513695091 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/GameManager.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Generated; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using System.Collections.Generic; 4 | 5 | namespace AuthMovementExample 6 | { 7 | /// 8 | /// The singleton Game object which oversees the whole game state 9 | /// 10 | public class GameManager : GameManagerBehavior 11 | { 12 | // Singleton instance 13 | public static GameManager Instance; 14 | 15 | // List of players 16 | private readonly Dictionary _playerObjects = new Dictionary(); 17 | 18 | private bool _networkReady; 19 | 20 | private void Awake() 21 | { 22 | if (Instance == null) Instance = this; 23 | else if (Instance != this) Destroy(gameObject); 24 | DontDestroyOnLoad(Instance); 25 | } 26 | 27 | protected override void NetworkStart() 28 | { 29 | base.NetworkStart(); 30 | 31 | if (NetworkManager.Instance.IsServer) 32 | { 33 | NetworkManager.Instance.Networker.playerAccepted += (player, sender) => 34 | { 35 | // Instantiate the player on the main Unity thread, get the Id of its owner and add it to a list of players 36 | MainThreadManager.Run(() => 37 | { 38 | PlayerBehavior p = NetworkManager.Instance.InstantiatePlayer(); 39 | p.networkObject.ownerNetId = player.NetworkId; 40 | _playerObjects.Add(player.NetworkId, p); 41 | }); 42 | }; 43 | 44 | NetworkManager.Instance.Networker.playerDisconnected += (player, sender) => 45 | { 46 | // Remove the player from the list of players and destroy it 47 | PlayerBehavior p = _playerObjects[player.NetworkId]; 48 | _playerObjects.Remove(player.NetworkId); 49 | p.networkObject.Destroy(); 50 | }; 51 | } 52 | else 53 | { 54 | // This is a local client - it needs to listen for input 55 | NetworkManager.Instance.InstantiateInputListener(); 56 | } 57 | 58 | _networkReady = true; 59 | } 60 | 61 | // Force NetworkStart to happen - a work around for NetworkStart not happening 62 | // for objects instantiated in scene in the latest version of Forge 63 | private void FixedUpdate() 64 | { 65 | if (!_networkReady && networkObject != null) 66 | { 67 | NetworkStart(); 68 | } 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/GameManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ff9eb452303dcf4ba18816f62689d44 3 | timeCreated: 1513695026 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/InputFrame.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace AuthMovementExample 4 | { 5 | /// 6 | /// Represents the state of a single frame of input 7 | /// gathered from Unity's input manager 8 | /// 9 | [Serializable] 10 | public class InputFrame 11 | { 12 | public static InputFrame Empty { get { return new InputFrame(); } } 13 | 14 | public uint frameNumber; 15 | public bool right; 16 | public bool down; 17 | public bool left; 18 | public bool up; 19 | public float horizontal; 20 | public float vertical; 21 | 22 | public bool HasInput { get { return right || down || left || up; } } 23 | 24 | // Equality operator overload - we want to check if input has changed 25 | // and we don't care about the frameNumber, timestamp or input axis 26 | public static bool operator ==(InputFrame i1, InputFrame i2) 27 | { 28 | // Null & reference check (i1 and i2 are the same if they're at the same location in memory obviously) 29 | if (ReferenceEquals(i1, i2)) return true; 30 | else if (ReferenceEquals(i1, null) || ReferenceEquals(i2, null)) return false; 31 | 32 | // Check the inputs 33 | return i1.right == i2.right && 34 | i1.down == i2.down && 35 | i1.left == i2.left && 36 | i1.up == i2.up; 37 | } 38 | 39 | // Inequality operator overload - see above, but inverted 40 | public static bool operator !=(InputFrame i1, InputFrame i2) 41 | { 42 | // Null & reference check (i1 and i2 are the same if they're at the same location in memory obviously) 43 | if (ReferenceEquals(i1, i2)) return false; 44 | else if (ReferenceEquals(i1, null) || ReferenceEquals(i2, null)) return true; 45 | 46 | // Check the inputs 47 | return i1.right != i2.right || 48 | i1.down != i2.down || 49 | i1.left != i2.left || 50 | i1.up != i2.up; 51 | } 52 | 53 | // Equals() should be identical to the equality operator 54 | public override bool Equals(object obj) 55 | { 56 | // Null & reference check (i1 and i2 are the same if they're at the same location in memory obviously) 57 | if (ReferenceEquals(this, obj)) return true; 58 | else if (ReferenceEquals(this, null) || ReferenceEquals(obj, null)) return false; 59 | 60 | // Check the inputs 61 | return right == ((InputFrame) obj).right && 62 | down == ((InputFrame) obj).down && 63 | left == ((InputFrame) obj).left && 64 | up == ((InputFrame) obj).up; 65 | } 66 | 67 | // GetHashCode() should correspond to Equals() and the equality operator 68 | public override int GetHashCode() 69 | { 70 | return right.GetHashCode() ^ down.GetHashCode() ^ left.GetHashCode() ^ 71 | up.GetHashCode() ^ horizontal.GetHashCode() ^ vertical.GetHashCode(); 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/InputFrame.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f995730aa72a6dc4a830038a67f7d436 3 | timeCreated: 1513695725 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/InputListener.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Generated; 3 | using System; 4 | using System.Collections.Generic; 5 | using UnityEngine; 6 | 7 | namespace AuthMovementExample 8 | { 9 | /* 10 | * Polls the client's input and send its to the server 11 | * 12 | * Client-owned 13 | */ 14 | public class InputListener : InputListenerBehavior 15 | { 16 | #region Public Properties 17 | [HideInInspector] 18 | public List FramesToPlay; 19 | [HideInInspector] 20 | public List FramesToReconcile; 21 | #endregion 22 | 23 | private bool _networkReady; 24 | 25 | private uint _frameNumber; 26 | private InputFrame _inputFrame = InputFrame.Empty; 27 | 28 | private void Start() 29 | { 30 | FramesToPlay = new List(); 31 | FramesToReconcile = new List(); 32 | } 33 | 34 | protected override void NetworkStart() 35 | { 36 | base.NetworkStart(); 37 | _networkReady = true; 38 | } 39 | 40 | /// 41 | /// Polling of inputs is handled in Update since they 42 | /// reset every frame making weird things happen in FixedUpdate 43 | /// 44 | private void Update() 45 | { 46 | if (!_networkReady) return; 47 | 48 | if (!networkObject.IsServer && networkObject.IsOwner) 49 | { 50 | _inputFrame = new InputFrame 51 | { 52 | right = Input.GetKey(KeyCode.L) || Input.GetKey(KeyCode.RightArrow), 53 | down = Input.GetKey(KeyCode.K) || Input.GetKey(KeyCode.DownArrow), 54 | left = Input.GetKey(KeyCode.J) || Input.GetKey(KeyCode.LeftArrow), 55 | up = Input.GetKey(KeyCode.I) || Input.GetKey(KeyCode.UpArrow), 56 | horizontal = Input.GetAxisRaw("Horizontal"), 57 | vertical = Input.GetAxisRaw("Vertical") 58 | }; 59 | } 60 | } 61 | 62 | /// 63 | /// Store the input polled from Update and send it 64 | /// to the server for authoritative processing 65 | /// 66 | private void FixedUpdate() 67 | { 68 | if (!_networkReady) return; 69 | 70 | // If this is a client store and send the current polled input for processing 71 | if (!networkObject.IsServer && networkObject.IsOwner) 72 | { 73 | _inputFrame.frameNumber = _frameNumber++; 74 | FramesToPlay.Add(_inputFrame); 75 | 76 | byte[] bytes = ByteArray.Serialize(_inputFrame); 77 | networkObject.SendRpc(RPC_SYNC_INPUTS, Receivers.Server, bytes); 78 | } 79 | } 80 | 81 | /// 82 | /// Send input state to the server for processing 83 | /// 84 | /// 85 | public override void SyncInputs(RpcArgs args) 86 | { 87 | if (networkObject.IsServer) 88 | { 89 | var bytes = args.GetNext(); 90 | InputFrame newest = (InputFrame) ByteArray.Deserialize(bytes); 91 | FramesToPlay.Add(newest); 92 | } 93 | } 94 | } 95 | } -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/InputListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 958bd3eda33af9f47bc0117581696dac 3 | timeCreated: 1513695065 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/ListExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace AuthMovementExample 5 | { 6 | public static class ListExtensions 7 | { 8 | public static void TryAdd(this List list, T item) 9 | { 10 | if (list.Contains(item)) return; 11 | 12 | lock (list) 13 | { 14 | list.Add(item); 15 | } 16 | } 17 | 18 | public static T Pop(this List list) 19 | { 20 | if (list.Count > 0) 21 | { 22 | T item = list[0]; 23 | list.RemoveAt(0); 24 | return item; 25 | } 26 | throw new IndexOutOfRangeException(); 27 | } 28 | 29 | public static T Front(this List list) 30 | { 31 | if (list.Count > 0) 32 | { 33 | return list[0]; 34 | } 35 | throw new IndexOutOfRangeException(); 36 | } 37 | 38 | public static T Back(this List list) 39 | { 40 | if (list.Count > 0) 41 | { 42 | return list[list.Count - 1]; 43 | } 44 | throw new IndexOutOfRangeException(); 45 | } 46 | 47 | public static bool Replace(this List list, T item, Predicate match) 48 | { 49 | int i = list.FindIndex(match); 50 | if (i >= 0) 51 | { 52 | list[i] = item; 53 | } 54 | return i >= 0; 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/ListExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6969d81d7e45446284713755faf269b8 3 | timeCreated: 1531425317 -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/script/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07e41be2201375d4fb2a4dbedac81576 3 | timeCreated: 1513695057 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95a9dec34b1dd3e4ab091e48b4110ffb 3 | folderAsset: yes 4 | timeCreated: 1513698197 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/textures/Square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/AuthoritativeMovementExample/textures/Square.png -------------------------------------------------------------------------------- /Assets/AuthoritativeMovementExample/textures/Square.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0282d244d3a72274a97e95e019447f4c 3 | timeCreated: 1513698205 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: 1 36 | mipBias: 0 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 3 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 16 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 8 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: 4 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | - buildTarget: Standalone 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: 4 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: iPhone 78 | maxTextureSize: 2048 79 | resizeAlgorithm: 0 80 | textureFormat: 4 81 | textureCompression: 1 82 | compressionQuality: 50 83 | crunchedCompression: 0 84 | allowsAlphaSplitting: 0 85 | overridden: 0 86 | - buildTarget: Android 87 | maxTextureSize: 2048 88 | resizeAlgorithm: 0 89 | textureFormat: 4 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | - buildTarget: WebGL 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: 4 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | spriteSheet: 105 | serializedVersion: 2 106 | sprites: [] 107 | outline: 108 | - - {x: -2, y: -2} 109 | - {x: -2, y: 2} 110 | - {x: 2, y: 2} 111 | - {x: 2, y: -2} 112 | physicsShape: 113 | - - {x: -2, y: -2} 114 | - {x: -2, y: 2} 115 | - {x: 2, y: 2} 116 | - {x: 2, y: -2} 117 | spritePackingTag: 118 | userData: 119 | assetBundleName: 120 | assetBundleVariant: 121 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54ef4fabc16dc0a4687e05bb4dede7db 3 | folderAsset: yes 4 | timeCreated: 1464149608 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Api Documentation HTML.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Api Documentation HTML.zip -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Api Documentation HTML.zip.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4318728fd1ea4a442aa6fca3df63f58a 3 | timeCreated: 1488137951 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebcdfcb7d8ef1f646a99f7e46c2f8104 3 | folderAsset: yes 4 | timeCreated: 1488964690 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/ForgeNetworkingUnityEditor.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/ForgeNetworkingUnityEditor.dll.mdb -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/ForgeNetworkingUnityEditor.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c96ec8b16506e254ea3c271de28a8079 3 | timeCreated: 1512731375 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/ForgeNetworkingUnityEditor.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5657d94d2ba8b604c91fd6bde70e342c 3 | timeCreated: 1512731365 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 1 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | Windows Store Apps: WindowsStoreApps 26 | second: 27 | enabled: 0 28 | settings: 29 | CPU: AnyCPU 30 | userData: 31 | assetBundleName: 32 | assetBundleVariant: 33 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/ForgeNetworkingUnityEditor.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12421a383168bde4aa00c5bef084f6f9 3 | timeCreated: 1512731361 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01de3ed43ec37624780da2fb9a03dd63 3 | folderAsset: yes 4 | timeCreated: 1464933039 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Add.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Add.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ef6e7b4e36b1bb49b364e092c43e477 3 | timeCreated: 1465024621 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Arrow.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Arrow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24726a0b2b65d41439bcbdbe92f137a1 3 | timeCreated: 1464940576 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61f33fdeb3f2e6f4e9080f0f8cc44f9a 3 | folderAsset: yes 4 | timeCreated: 1465228127 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkBehaviorTemplate.txt: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[>:generatedTypes:<]")] 8 | [GeneratedRPCVariableNames("{\"types\":[>:generatedHelperTypes:<]")] 9 | public abstract partial class >:className:< : NetworkBehavior 10 | { 11 | >:FOREACH constRpcs:< 12 | public const byte RPC_>:[0]:< = >:[idx]:< + 5; 13 | >:ENDFOREACH:< 14 | 15 | public >:networkObject:< networkObject = null; 16 | 17 | public override void Initialize(NetworkObject obj) 18 | { 19 | // We have already initialized this object 20 | if (networkObject != null && networkObject.AttachedBehavior != null) 21 | return; 22 | 23 | networkObject = (>:networkObject:<)obj; 24 | networkObject.AttachedBehavior = this; 25 | 26 | base.SetupHelperRpcs(networkObject); 27 | >:FOREVERY rpcs:< 28 | networkObject.RegisterRpc(">:[0]:<", >:[0]:<>:[1]:<); 29 | >:ENDFOREVERY:< 30 | 31 | networkObject.onDestroy += DestroyGameObject; 32 | 33 | if (!obj.IsOwner) 34 | { 35 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 36 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 37 | else 38 | skipAttachIds.Remove(obj.NetworkId); 39 | } 40 | 41 | if (obj.Metadata == null) 42 | return; 43 | 44 | byte transformFlags = obj.Metadata[0]; 45 | 46 | if (transformFlags == 0) 47 | return; 48 | 49 | BMSByte metadataTransform = new BMSByte(); 50 | metadataTransform.Clone(obj.Metadata); 51 | metadataTransform.MoveStartIndex(1); 52 | 53 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 54 | { 55 | MainThreadManager.Run(() => 56 | { 57 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 58 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 59 | }); 60 | } 61 | else if ((transformFlags & 0x01) != 0) 62 | { 63 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 64 | } 65 | else if ((transformFlags & 0x02) != 0) 66 | { 67 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 68 | } 69 | 70 | MainThreadManager.Run(() => 71 | { 72 | NetworkStart(); 73 | networkObject.Networker.FlushCreateActions(networkObject); 74 | }); 75 | } 76 | 77 | protected override void CompleteRegistration() 78 | { 79 | base.CompleteRegistration(); 80 | networkObject.ReleaseCreateBuffer(); 81 | } 82 | 83 | public override void Initialize(NetWorker networker, byte[] metadata = null) 84 | { 85 | Initialize(new >:networkObject:<(networker, createCode: TempAttachCode, metadata: metadata)); 86 | } 87 | 88 | private void DestroyGameObject(NetWorker sender) 89 | { 90 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 91 | networkObject.onDestroy -= DestroyGameObject; 92 | } 93 | 94 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 95 | { 96 | return new >:networkObject:<(networker, this, createCode, metadata); 97 | } 98 | 99 | protected override void InitializedTransform() 100 | { 101 | networkObject.SnapInterpolations(); 102 | } 103 | 104 | >:FOREVERY rpcs:< 105 | /// 106 | /// Arguments: 107 | >:[2]:< 108 | /// 109 | public abstract void >:[0]:<(RpcArgs args); 110 | >:ENDFOREVERY:< 111 | 112 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 113 | } 114 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkBehaviorTemplate.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54fa1910003d26548a65ddf6dc74506a 3 | timeCreated: 1465229951 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkManagerTemplate.txt: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Generated; 2 | using System; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Unity 6 | { 7 | public partial class NetworkManager : MonoBehaviour 8 | { 9 | public delegate void InstantiateEvent(INetworkBehavior unityGameObject, NetworkObject obj); 10 | public event InstantiateEvent objectInitialized; 11 | private BMSByte metadata = new BMSByte(); 12 | 13 | >:FOREACH networkObjects:< 14 | public GameObject[] >:[i]::ENDFOREACH:< 16 | 17 | private void SetupObjectCreatedEvent() 18 | { 19 | Networker.objectCreated += CaptureObjects; 20 | } 21 | 22 | private void OnDestroy() 23 | { 24 | if (Networker != null) 25 | Networker.objectCreated -= CaptureObjects; 26 | } 27 | 28 | private void CaptureObjects(NetworkObject obj) 29 | { 30 | if (obj.CreateCode < 0) 31 | return; 32 | 33 | >:FOREACH networkObjects:< 34 | >:ELSEIF:< (obj is >:[i]: 37 | { 38 | NetworkBehavior newObj = null; 39 | if (!NetworkBehavior.skipAttachIds.TryGetValue(obj.NetworkId, out newObj)) 40 | { 41 | if (>:[i]: 0 && >:[i]::[i]:(); 45 | } 46 | } 47 | 48 | if (newObj == null) 49 | return; 50 | 51 | newObj.Initialize(obj); 52 | 53 | if (objectInitialized != null) 54 | objectInitialized(newObj, obj); 55 | }); 56 | } 57 | >:ENDFOREACH:< 58 | } 59 | 60 | private void InitializedObject(INetworkBehavior behavior, NetworkObject obj) 61 | { 62 | if (objectInitialized != null) 63 | objectInitialized(behavior, obj); 64 | 65 | obj.pendingInitialized -= InitializedObject; 66 | } 67 | 68 | >:FOREACH networkObjects:< 69 | [Obsolete("Use Instantiate>:[i]:< instead, its shorter and easier to type out ;)")] 70 | public >:[i]::[i]::[i]::[i]:(); 74 | var obj = netBehavior.CreateNetworkObject(Networker, index); 75 | go.GetComponent<>:[i]:().networkObject = (>:[i]::ENDFOREACH:< 82 | 83 | >:FOREACH networkObjects:< 84 | public >:[i]::[i]:<(int index = 0, Vector3? position = null, Quaternion? rotation = null, bool sendTransform = true) 85 | { 86 | var go = Instantiate(>:[i]::[i]:(); 88 | 89 | NetworkObject obj = null; 90 | if (!sendTransform && position == null && rotation == null) 91 | obj = netBehavior.CreateNetworkObject(Networker, index); 92 | else 93 | { 94 | metadata.Clear(); 95 | 96 | if (position == null && rotation == null) 97 | { 98 | metadata.Clear(); 99 | byte transformFlags = 0x1 | 0x2; 100 | ObjectMapper.Instance.MapBytes(metadata, transformFlags); 101 | ObjectMapper.Instance.MapBytes(metadata, go.transform.position, go.transform.rotation); 102 | } 103 | else 104 | { 105 | byte transformFlags = 0x0; 106 | transformFlags |= (byte)(position != null ? 0x1 : 0x0); 107 | transformFlags |= (byte)(rotation != null ? 0x2 : 0x0); 108 | ObjectMapper.Instance.MapBytes(metadata, transformFlags); 109 | 110 | if (position != null) 111 | ObjectMapper.Instance.MapBytes(metadata, position.Value); 112 | 113 | if (rotation != null) 114 | ObjectMapper.Instance.MapBytes(metadata, rotation.Value); 115 | } 116 | 117 | obj = netBehavior.CreateNetworkObject(Networker, index, metadata.CompressBytes()); 118 | } 119 | 120 | go.GetComponent<>:[i]:().networkObject = (>:[i]::ENDFOREACH:< 127 | } 128 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkManagerTemplate.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ae5d21b79676f04ea008335d1ab44b3 3 | timeCreated: 1465231331 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkObjectFactoryTemplate.txt: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using System; 3 | using MainThreadManager = BeardedManStudios.Forge.Networking.Unity.MainThreadManager; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | public partial class NetworkObjectFactory : NetworkObjectFactoryBase 8 | { 9 | public override void NetworkCreateObject(NetWorker networker, int identity, uint id, FrameStream frame, Action callback) 10 | { 11 | if (networker.IsServer) 12 | { 13 | if (frame.Sender != null && frame.Sender != networker.Me) 14 | { 15 | if (!ValidateCreateRequest(networker, identity, id, frame)) 16 | return; 17 | } 18 | } 19 | 20 | bool availableCallback = false; 21 | NetworkObject obj = null; 22 | MainThreadManager.Run(() => 23 | { 24 | switch (identity) 25 | { 26 | >:FOREACH networkObjects:< 27 | case >:[i]:<.IDENTITY: 28 | availableCallback = true; 29 | obj = new >:[i]:<(networker, id, frame); 30 | break; 31 | >:ENDFOREACH:< 32 | } 33 | 34 | if (!availableCallback) 35 | base.NetworkCreateObject(networker, identity, id, frame, callback); 36 | else if (callback != null) 37 | callback(obj); 38 | }); 39 | } 40 | 41 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkObjectFactoryTemplate.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0eca6723e39d8c04384f661b62ede3f6 3 | timeCreated: 1465231004 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/NetworkObjectTemplate.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 238c6291011ba8e448db9c76a19157ac 3 | timeCreated: 1465190595 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/StandAloneNetworkBehaviorTemplate.txt: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[>:generatedTypes:<]")] 8 | [GeneratedRPCVariableNames("{\"types\":[>:generatedHelperTypes:<]")] 9 | public abstract partial class >:className:< : INetworkBehavior 10 | { 11 | >:FOREVERY constRpcs:< 12 | public const byte RPC_>:[0]:< = >:[idx]:< + 5; 13 | >:ENDFOREVERY:< 14 | 15 | public >:networkObject:< networkObject = null; 16 | 17 | public void Initialize(NetworkObject obj) 18 | { 19 | // We have already initialized this object 20 | if (networkObject != null && networkObject.AttachedBehavior != null) 21 | return; 22 | 23 | networkObject = (>:networkObject:<)obj; 24 | networkObject.AttachedBehavior = this; 25 | 26 | >:FOREVERY rpcs:< 27 | networkObject.RegisterRpc(">:[0]:<", >:[0]:<>:[1]:<); 28 | >:ENDFOREVERY:< 29 | networkObject.RegistrationComplete(); 30 | } 31 | 32 | public void Initialize(NetWorker networker) 33 | { 34 | Initialize(new >:networkObject:<(networker)); 35 | } 36 | 37 | >:FOREVERY rpcs:< 38 | /// 39 | /// Arguments: 40 | >:[2]:< 41 | /// 42 | public abstract void >:[0]:<(RpcArgs args); 43 | >:ENDFOREVERY:< 44 | 45 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 46 | } 47 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/StandAloneNetworkBehaviorTemplate.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3910c566bad4e4346aa213618c1d11e8 3 | timeCreated: 1485405562 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/version.txt: -------------------------------------------------------------------------------- 1 | Fri 12/08/2017-12:06:46.33 2 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/BMS_Forge_Editor/version.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d200b4dd95c9057408db3a681979d185 3 | timeCreated: 1502904549 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Icon.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a5d2fa1fe9381448bd2620f6f11c976 3 | timeCreated: 1487573409 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | spriteMode: 0 41 | spriteExtrude: 1 42 | spriteMeshType: 1 43 | alignment: 0 44 | spritePivot: {x: 0.5, y: 0.5} 45 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 46 | spritePixelsToUnits: 100 47 | alphaIsTransparency: 0 48 | spriteTessellationDetail: -1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | serializedVersion: 2 53 | sprites: [] 54 | outline: [] 55 | spritePackingTag: 56 | userData: 57 | assetBundleName: 58 | assetBundleVariant: 59 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Lightbulb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Lightbulb.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Lightbulb.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a9b0aad7a583a943b440e18380c6d42 3 | timeCreated: 1465033751 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Save.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Save.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f66df9089fa7b31439982910fc9569a1 3 | timeCreated: 1465026743 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 2 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/SideArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/SideArrow.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/SideArrow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28a168fa15397a74cb16bf50db68c8fd 3 | timeCreated: 1464943695 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Star.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Star.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3aaf165248f415a4f83d5ff5cb70782c 3 | timeCreated: 1464942215 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Subtract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Subtract.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Subtract.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6ee0ffb971afba4197bbc5fdb7aea03 3 | timeCreated: 1465024621 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/Trash.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/Trash.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7109c27571d46f044b7d1d31ed6b793f 3 | timeCreated: 1465022930 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 1 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 1 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 5 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/logoDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/logoDark.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/logoDark.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85d1fc28a39872d4b8c1a70af4403281 3 | timeCreated: 1502980392 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: -1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 1 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 8 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | - buildTarget: Standalone 67 | maxTextureSize: 2048 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | spritePackingTag: 80 | userData: 81 | assetBundleName: 82 | assetBundleVariant: 83 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/logoLight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Editor/Resources/logoLight.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Editor/Resources/logoLight.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd2db5071d8a1744aa7023794e530a8e 3 | timeCreated: 1502980392 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: -1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 1 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 100 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 8 53 | textureShape: 1 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - buildTarget: DefaultTexturePlatform 59 | maxTextureSize: 2048 60 | textureFormat: -1 61 | textureCompression: 1 62 | compressionQuality: 50 63 | crunchedCompression: 0 64 | allowsAlphaSplitting: 0 65 | overridden: 0 66 | - buildTarget: Standalone 67 | maxTextureSize: 2048 68 | textureFormat: -1 69 | textureCompression: 1 70 | compressionQuality: 50 71 | crunchedCompression: 0 72 | allowsAlphaSplitting: 0 73 | overridden: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | spritePackingTag: 80 | userData: 81 | assetBundleName: 82 | assetBundleVariant: 83 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a9880254d51c7c340b724023f0320e71 3 | folderAsset: yes 4 | timeCreated: 1464308251 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70806470bce4a6547a05ad60195fed0c 3 | folderAsset: yes 4 | timeCreated: 1464392267 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/CubeForgeGame.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ef136a7071399248bad683d402a0e39 3 | timeCreated: 1486024399 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f022c13bfb2721c449cc8c12ff0209a3 3 | folderAsset: yes 4 | timeCreated: 1464418355 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Materials/Camera.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Camera 10 | m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: 3000 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: d6d8cd996fc7f274fac832403c9d7555, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _Glossiness: 0.5 63 | - _Metallic: 0 64 | - _Mode: 0 65 | - _OcclusionStrength: 1 66 | - _Parallax: 0.02 67 | - _SrcBlend: 1 68 | - _UVSec: 0 69 | - _ZWrite: 1 70 | m_Colors: 71 | - _Color: {r: 1, g: 1, b: 1, a: 1} 72 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 73 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Materials/Camera.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f131259599e61d45a31bf469a579895 3 | timeCreated: 1464418364 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb5b44bc1ea5f214990cc733acc191ac 3 | folderAsset: yes 4 | timeCreated: 1464418505 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Prefabs/Cube.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &176172 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 5 9 | m_Component: 10 | - component: {fileID: 483322} 11 | - component: {fileID: 3372180} 12 | - component: {fileID: 6528936} 13 | - component: {fileID: 2392696} 14 | - component: {fileID: 11418708} 15 | m_Layer: 0 16 | m_Name: Cube 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &483322 23 | Transform: 24 | m_ObjectHideFlags: 1 25 | m_PrefabParentObject: {fileID: 0} 26 | m_PrefabInternal: {fileID: 100100000} 27 | m_GameObject: {fileID: 176172} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_Children: [] 32 | m_Father: {fileID: 0} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | --- !u!23 &2392696 36 | MeshRenderer: 37 | m_ObjectHideFlags: 1 38 | m_PrefabParentObject: {fileID: 0} 39 | m_PrefabInternal: {fileID: 100100000} 40 | m_GameObject: {fileID: 176172} 41 | m_Enabled: 1 42 | m_CastShadows: 1 43 | m_ReceiveShadows: 1 44 | m_DynamicOccludee: 1 45 | m_MotionVectors: 1 46 | m_LightProbeUsage: 1 47 | m_ReflectionProbeUsage: 1 48 | m_Materials: 49 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 50 | m_StaticBatchInfo: 51 | firstSubMesh: 0 52 | subMeshCount: 0 53 | m_StaticBatchRoot: {fileID: 0} 54 | m_ProbeAnchor: {fileID: 0} 55 | m_LightProbeVolumeOverride: {fileID: 0} 56 | m_ScaleInLightmap: 1 57 | m_PreserveUVs: 1 58 | m_IgnoreNormalsForChartDetection: 0 59 | m_ImportantGI: 0 60 | m_StitchLightmapSeams: 0 61 | m_SelectedEditorRenderState: 3 62 | m_MinimumChartSize: 4 63 | m_AutoUVMaxDistance: 0.5 64 | m_AutoUVMaxAngle: 89 65 | m_LightmapParameters: {fileID: 0} 66 | m_SortingLayerID: 0 67 | m_SortingLayer: 0 68 | m_SortingOrder: 0 69 | --- !u!33 &3372180 70 | MeshFilter: 71 | m_ObjectHideFlags: 1 72 | m_PrefabParentObject: {fileID: 0} 73 | m_PrefabInternal: {fileID: 100100000} 74 | m_GameObject: {fileID: 176172} 75 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 76 | --- !u!65 &6528936 77 | BoxCollider: 78 | m_ObjectHideFlags: 1 79 | m_PrefabParentObject: {fileID: 0} 80 | m_PrefabInternal: {fileID: 100100000} 81 | m_GameObject: {fileID: 176172} 82 | m_Material: {fileID: 0} 83 | m_IsTrigger: 0 84 | m_Enabled: 1 85 | serializedVersion: 2 86 | m_Size: {x: 1, y: 1, z: 1} 87 | m_Center: {x: 0, y: 0, z: 0} 88 | --- !u!114 &11418708 89 | MonoBehaviour: 90 | m_ObjectHideFlags: 1 91 | m_PrefabParentObject: {fileID: 0} 92 | m_PrefabInternal: {fileID: 100100000} 93 | m_GameObject: {fileID: 176172} 94 | m_Enabled: 1 95 | m_EditorHideFlags: 0 96 | m_Script: {fileID: 11500000, guid: 4d9ec3971636b064aa8c530ab1dc0234, type: 3} 97 | m_Name: 98 | m_EditorClassIdentifier: 99 | readOnly: 0 100 | --- !u!1001 &100100000 101 | Prefab: 102 | m_ObjectHideFlags: 1 103 | serializedVersion: 2 104 | m_Modification: 105 | m_TransformParent: {fileID: 0} 106 | m_Modifications: [] 107 | m_RemovedComponents: [] 108 | m_ParentPrefab: {fileID: 0} 109 | m_RootGameObject: {fileID: 176172} 110 | m_IsPrefabParent: 1 111 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Prefabs/Cube.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c6782f77321b654d99b5a371d0c8fbc 3 | timeCreated: 1464418515 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Prefabs/Network Camera.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 661f29f0c0c86fa47b6015bd602d0ac6 3 | timeCreated: 1464418513 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ade804536ecfc924cb5aa6de841441ff 3 | folderAsset: yes 4 | timeCreated: 1464417564 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Scripts/CubeForgeGame.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4d864ad110b9234498b4ee01ca5ba77 3 | timeCreated: 1464418599 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Scripts/NetCam.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Generated; 2 | using UnityEngine; 3 | 4 | public class NetCam : NetworkCameraBehavior 5 | { 6 | /// 7 | /// The speed of the camera whenever it is moving 8 | /// 9 | public float speed = 5.0f; 10 | 11 | /// 12 | /// The reference to the camera component of this object 13 | /// 14 | private Camera cameraRef = null; 15 | 16 | /// 17 | /// Used to track the current players camera for LookAt rotation 18 | /// 19 | private static NetCam playerCamera = null; 20 | 21 | protected override void NetworkStart() 22 | { 23 | base.NetworkStart(); 24 | 25 | cameraRef = GetComponent(); 26 | networkObject.UpdateInterval = 100; 27 | 28 | // If this is not our camera then we should not render using it 29 | if (!networkObject.IsOwner) 30 | cameraRef.enabled = false; 31 | else 32 | playerCamera = this; 33 | 34 | networkObject.position = transform.position; 35 | networkObject.SnapInterpolations(); 36 | 37 | if (!networkObject.IsOwner) 38 | return; 39 | } 40 | 41 | private void Update() 42 | { 43 | if (networkObject == null) 44 | return; 45 | 46 | if (cameraRef == null) 47 | return; 48 | 49 | // If this is not owned by the current network client then it needs to 50 | // assign it to the position specified 51 | if (!networkObject.IsOwner) 52 | { 53 | transform.position = networkObject.position; 54 | 55 | if (playerCamera == null) 56 | return; 57 | 58 | // Make sure that this camera plane is always facing the current player 59 | transform.LookAt(transform.position + (transform.position - playerCamera.transform.position)); 60 | return; 61 | } 62 | 63 | if (Input.GetMouseButtonDown(0)) 64 | { 65 | RaycastHit hit; 66 | if (Physics.Raycast(cameraRef.ScreenPointToRay(Input.mousePosition), out hit)) 67 | { 68 | var primitive = hit.transform.GetComponent(); 69 | 70 | if (primitive == null) 71 | return; 72 | 73 | Vector3 position = hit.transform.position; 74 | position += hit.normal; 75 | 76 | if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) 77 | { 78 | if (!primitive.readOnly) 79 | CubeForgeGame.Instance.DestroyPrimitive(primitive); 80 | } 81 | else 82 | CubeForgeGame.Instance.CreatePrimitive(position); 83 | } 84 | } 85 | // If we right click we can move the camera as if we were in noclip mode 86 | else if (Input.GetMouseButton(1)) 87 | { 88 | if (Input.GetKey(KeyCode.W)) 89 | transform.position += transform.forward * speed * Time.deltaTime; 90 | if (Input.GetKey(KeyCode.S)) 91 | transform.position -= transform.forward * speed * Time.deltaTime; 92 | if (Input.GetKey(KeyCode.A)) 93 | transform.position -= transform.right * speed * Time.deltaTime; 94 | if (Input.GetKey(KeyCode.D)) 95 | transform.position += transform.right * speed * Time.deltaTime; 96 | if (Input.GetKey(KeyCode.Q)) 97 | transform.position += transform.up * speed * Time.deltaTime; 98 | if (Input.GetKey(KeyCode.Z)) 99 | transform.position -= transform.up * speed * Time.deltaTime; 100 | 101 | transform.Rotate(-Input.GetAxis("Mouse Y") * 2, Input.GetAxis("Mouse X") * 2, 0); 102 | transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, 0); 103 | 104 | Cursor.lockState = CursorLockMode.Locked | CursorLockMode.Confined; 105 | Cursor.visible = false; 106 | } 107 | else if (Input.GetMouseButtonUp(1)) 108 | { 109 | Cursor.lockState = CursorLockMode.None; 110 | Cursor.visible = true; 111 | } 112 | 113 | // The network object should always house the latest position of this camera 114 | networkObject.position = transform.position; 115 | } 116 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Scripts/NetCam.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b3adbd6371012a42ab3aa2981d16bbd 3 | timeCreated: 1464417571 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Scripts/Primitive.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class Primitive : MonoBehaviour 4 | { 5 | /// 6 | /// Used to determine if this object can be destroyed 7 | /// 8 | public bool readOnly = false; 9 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Scripts/Primitive.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d9ec3971636b064aa8c530ab1dc0234 3 | timeCreated: 1464459132 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0e2ad3ede9977743bf25923f8403ff8 3 | folderAsset: yes 4 | timeCreated: 1464398029 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Textures/Camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Examples/Cube Forge/Textures/Camera.png -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Cube Forge/Textures/Camera.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6d8cd996fc7f274fac832403c9d7555 3 | timeCreated: 1464398055 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 762f51a614ae9ca458af4cb4899d7cc1 3 | folderAsset: yes 4 | timeCreated: 1487348743 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity/ExampleProximity.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5129b7b4abd07747875264ed6f5ecf3 3 | timeCreated: 1487443322 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity/ExampleProximityPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6d0bb802f536df4f850c493b0645165 3 | timeCreated: 1487348822 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity/ExampleProximitySpawn.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Unity; 2 | using UnityEngine; 3 | 4 | public class ExampleProximitySpawn : MonoBehaviour 5 | { 6 | private void Start() 7 | { 8 | NetworkManager.Instance.InstantiateExampleProximityPlayer(); 9 | } 10 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity/ExampleProximitySpawn.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90150ec371a8a2e4a9b5447338240e91 3 | timeCreated: 1487443391 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity/ProximityPlayer.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1000012738253334} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1000012738253334 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4000010203704556} 22 | - component: {fileID: 33000011264546984} 23 | - component: {fileID: 65000012386810640} 24 | - component: {fileID: 23000012360675710} 25 | - component: {fileID: 114000013906537314} 26 | m_Layer: 0 27 | m_Name: ProximityPlayer 28 | m_TagString: Untagged 29 | m_Icon: {fileID: 0} 30 | m_NavMeshLayer: 0 31 | m_StaticEditorFlags: 0 32 | m_IsActive: 1 33 | --- !u!4 &4000010203704556 34 | Transform: 35 | m_ObjectHideFlags: 1 36 | m_PrefabParentObject: {fileID: 0} 37 | m_PrefabInternal: {fileID: 100100000} 38 | m_GameObject: {fileID: 1000012738253334} 39 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 40 | m_LocalPosition: {x: 0, y: 0, z: 0} 41 | m_LocalScale: {x: 1, y: 1, z: 1} 42 | m_Children: [] 43 | m_Father: {fileID: 0} 44 | m_RootOrder: 0 45 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 46 | --- !u!23 &23000012360675710 47 | MeshRenderer: 48 | m_ObjectHideFlags: 1 49 | m_PrefabParentObject: {fileID: 0} 50 | m_PrefabInternal: {fileID: 100100000} 51 | m_GameObject: {fileID: 1000012738253334} 52 | m_Enabled: 1 53 | m_CastShadows: 1 54 | m_ReceiveShadows: 1 55 | m_DynamicOccludee: 1 56 | m_MotionVectors: 1 57 | m_LightProbeUsage: 1 58 | m_ReflectionProbeUsage: 1 59 | m_Materials: 60 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 61 | m_StaticBatchInfo: 62 | firstSubMesh: 0 63 | subMeshCount: 0 64 | m_StaticBatchRoot: {fileID: 0} 65 | m_ProbeAnchor: {fileID: 0} 66 | m_LightProbeVolumeOverride: {fileID: 0} 67 | m_ScaleInLightmap: 1 68 | m_PreserveUVs: 1 69 | m_IgnoreNormalsForChartDetection: 0 70 | m_ImportantGI: 0 71 | m_StitchLightmapSeams: 0 72 | m_SelectedEditorRenderState: 3 73 | m_MinimumChartSize: 4 74 | m_AutoUVMaxDistance: 0.5 75 | m_AutoUVMaxAngle: 89 76 | m_LightmapParameters: {fileID: 0} 77 | m_SortingLayerID: 0 78 | m_SortingLayer: 0 79 | m_SortingOrder: 0 80 | --- !u!33 &33000011264546984 81 | MeshFilter: 82 | m_ObjectHideFlags: 1 83 | m_PrefabParentObject: {fileID: 0} 84 | m_PrefabInternal: {fileID: 100100000} 85 | m_GameObject: {fileID: 1000012738253334} 86 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 87 | --- !u!65 &65000012386810640 88 | BoxCollider: 89 | m_ObjectHideFlags: 1 90 | m_PrefabParentObject: {fileID: 0} 91 | m_PrefabInternal: {fileID: 100100000} 92 | m_GameObject: {fileID: 1000012738253334} 93 | m_Material: {fileID: 0} 94 | m_IsTrigger: 0 95 | m_Enabled: 1 96 | serializedVersion: 2 97 | m_Size: {x: 1, y: 1, z: 1} 98 | m_Center: {x: 0, y: 0, z: 0} 99 | --- !u!114 &114000013906537314 100 | MonoBehaviour: 101 | m_ObjectHideFlags: 1 102 | m_PrefabParentObject: {fileID: 0} 103 | m_PrefabInternal: {fileID: 100100000} 104 | m_GameObject: {fileID: 1000012738253334} 105 | m_Enabled: 1 106 | m_EditorHideFlags: 0 107 | m_Script: {fileID: 11500000, guid: a6d0bb802f536df4f850c493b0645165, type: 3} 108 | m_Name: 109 | m_EditorClassIdentifier: 110 | speed: 5 111 | matRef: {fileID: 0} 112 | proximityDistance: 1 113 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Examples/Proximity/ProximityPlayer.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: feb25ecf90a8d8b4ab922a455249997b 3 | timeCreated: 1487443295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f53c03c886363649981067f29dd2ea3 3 | folderAsset: yes 4 | timeCreated: 1463633341 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/NetworkManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c56931a5b2387354481b1cd988ce3f31 3 | timeCreated: 1465143949 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/NetworkObjectFactory.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using System; 3 | using MainThreadManager = BeardedManStudios.Forge.Networking.Unity.MainThreadManager; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | public partial class NetworkObjectFactory : NetworkObjectFactoryBase 8 | { 9 | public override void NetworkCreateObject(NetWorker networker, int identity, uint id, FrameStream frame, Action callback) 10 | { 11 | if (networker.IsServer) 12 | { 13 | if (frame.Sender != null && frame.Sender != networker.Me) 14 | { 15 | if (!ValidateCreateRequest(networker, identity, id, frame)) 16 | return; 17 | } 18 | } 19 | 20 | bool availableCallback = false; 21 | NetworkObject obj = null; 22 | MainThreadManager.Run(() => 23 | { 24 | switch (identity) 25 | { 26 | case ChatManagerNetworkObject.IDENTITY: 27 | availableCallback = true; 28 | obj = new ChatManagerNetworkObject(networker, id, frame); 29 | break; 30 | case CubeForgeGameNetworkObject.IDENTITY: 31 | availableCallback = true; 32 | obj = new CubeForgeGameNetworkObject(networker, id, frame); 33 | break; 34 | case ExampleProximityPlayerNetworkObject.IDENTITY: 35 | availableCallback = true; 36 | obj = new ExampleProximityPlayerNetworkObject(networker, id, frame); 37 | break; 38 | case GameManagerNetworkObject.IDENTITY: 39 | availableCallback = true; 40 | obj = new GameManagerNetworkObject(networker, id, frame); 41 | break; 42 | case InputListenerNetworkObject.IDENTITY: 43 | availableCallback = true; 44 | obj = new InputListenerNetworkObject(networker, id, frame); 45 | break; 46 | case NetworkCameraNetworkObject.IDENTITY: 47 | availableCallback = true; 48 | obj = new NetworkCameraNetworkObject(networker, id, frame); 49 | break; 50 | case PlayerNetworkObject.IDENTITY: 51 | availableCallback = true; 52 | obj = new PlayerNetworkObject(networker, id, frame); 53 | break; 54 | case TestNetworkObject.IDENTITY: 55 | availableCallback = true; 56 | obj = new TestNetworkObject(networker, id, frame); 57 | break; 58 | } 59 | 60 | if (!availableCallback) 61 | base.NetworkCreateObject(networker, identity, id, frame, callback); 62 | else if (callback != null) 63 | callback(obj); 64 | }); 65 | } 66 | 67 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 68 | } 69 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/NetworkObjectFactory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10f8758b53c8d3c43867cba7f1c53cfa 3 | timeCreated: 1464417461 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f9f1c5b59ce33046a36d35fb6f04c1c 3 | folderAsset: yes 4 | timeCreated: 1477888305 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ChatManagerBehavior.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[[\"string\", \"string\"]]")] 8 | [GeneratedRPCVariableNames("{\"types\":[[\"username\", \"message\"]]")] 9 | public abstract partial class ChatManagerBehavior : NetworkBehavior 10 | { 11 | public const byte RPC_SEND_MESSAGE = 0 + 5; 12 | 13 | public ChatManagerNetworkObject networkObject = null; 14 | 15 | public override void Initialize(NetworkObject obj) 16 | { 17 | // We have already initialized this object 18 | if (networkObject != null && networkObject.AttachedBehavior != null) 19 | return; 20 | 21 | networkObject = (ChatManagerNetworkObject)obj; 22 | networkObject.AttachedBehavior = this; 23 | 24 | base.SetupHelperRpcs(networkObject); 25 | networkObject.RegisterRpc("SendMessage", SendMessage, typeof(string), typeof(string)); 26 | 27 | networkObject.onDestroy += DestroyGameObject; 28 | 29 | if (!obj.IsOwner) 30 | { 31 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 32 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 33 | else 34 | skipAttachIds.Remove(obj.NetworkId); 35 | } 36 | 37 | if (obj.Metadata == null) 38 | return; 39 | 40 | byte transformFlags = obj.Metadata[0]; 41 | 42 | if (transformFlags == 0) 43 | return; 44 | 45 | BMSByte metadataTransform = new BMSByte(); 46 | metadataTransform.Clone(obj.Metadata); 47 | metadataTransform.MoveStartIndex(1); 48 | 49 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 50 | { 51 | MainThreadManager.Run(() => 52 | { 53 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 54 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 55 | }); 56 | } 57 | else if ((transformFlags & 0x01) != 0) 58 | { 59 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 60 | } 61 | else if ((transformFlags & 0x02) != 0) 62 | { 63 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 64 | } 65 | 66 | MainThreadManager.Run(() => 67 | { 68 | NetworkStart(); 69 | networkObject.Networker.FlushCreateActions(networkObject); 70 | }); 71 | } 72 | 73 | protected override void CompleteRegistration() 74 | { 75 | base.CompleteRegistration(); 76 | networkObject.ReleaseCreateBuffer(); 77 | } 78 | 79 | public override void Initialize(NetWorker networker, byte[] metadata = null) 80 | { 81 | Initialize(new ChatManagerNetworkObject(networker, createCode: TempAttachCode, metadata: metadata)); 82 | } 83 | 84 | private void DestroyGameObject(NetWorker sender) 85 | { 86 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 87 | networkObject.onDestroy -= DestroyGameObject; 88 | } 89 | 90 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 91 | { 92 | return new ChatManagerNetworkObject(networker, this, createCode, metadata); 93 | } 94 | 95 | protected override void InitializedTransform() 96 | { 97 | networkObject.SnapInterpolations(); 98 | } 99 | 100 | /// 101 | /// Arguments: 102 | /// string username 103 | /// string message 104 | /// 105 | public abstract void SendMessage(RpcArgs args); 106 | 107 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 108 | } 109 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ChatManagerBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 429982f7dc9f8ab438999a9bfd1df855 3 | timeCreated: 1479165061 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ChatManagerNetworkObject.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using System; 4 | using UnityEngine; 5 | 6 | namespace BeardedManStudios.Forge.Networking.Generated 7 | { 8 | [GeneratedInterpol("{\"inter\":[]")] 9 | public partial class ChatManagerNetworkObject : NetworkObject 10 | { 11 | public const int IDENTITY = 1; 12 | 13 | private byte[] _dirtyFields = new byte[0]; 14 | 15 | #pragma warning disable 0067 16 | public event FieldChangedEvent fieldAltered; 17 | #pragma warning restore 0067 18 | 19 | protected override void OwnershipChanged() 20 | { 21 | base.OwnershipChanged(); 22 | SnapInterpolations(); 23 | } 24 | 25 | public void SnapInterpolations() 26 | { 27 | } 28 | 29 | public override int UniqueIdentity { get { return IDENTITY; } } 30 | 31 | protected override BMSByte WritePayload(BMSByte data) 32 | { 33 | 34 | return data; 35 | } 36 | 37 | protected override void ReadPayload(BMSByte payload, ulong timestep) 38 | { 39 | } 40 | 41 | protected override BMSByte SerializeDirtyFields() 42 | { 43 | dirtyFieldsData.Clear(); 44 | dirtyFieldsData.Append(_dirtyFields); 45 | 46 | 47 | return dirtyFieldsData; 48 | } 49 | 50 | protected override void ReadDirtyFields(BMSByte data, ulong timestep) 51 | { 52 | if (readDirtyFlags == null) 53 | Initialize(); 54 | 55 | Buffer.BlockCopy(data.byteArr, data.StartIndex(), readDirtyFlags, 0, readDirtyFlags.Length); 56 | data.MoveStartIndex(readDirtyFlags.Length); 57 | 58 | } 59 | 60 | public override void InterpolateUpdate() 61 | { 62 | if (IsOwner) 63 | return; 64 | 65 | } 66 | 67 | private void Initialize() 68 | { 69 | if (readDirtyFlags == null) 70 | readDirtyFlags = new byte[0]; 71 | 72 | } 73 | 74 | public ChatManagerNetworkObject() : base() { Initialize(); } 75 | public ChatManagerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata) { Initialize(); } 76 | public ChatManagerNetworkObject(NetWorker networker, uint serverId, FrameStream frame) : base(networker, serverId, frame) { Initialize(); } 77 | 78 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ChatManagerNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26727a2a0c328da43b2d7e489970566f 3 | timeCreated: 1479165061 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/CubeForgeGameBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2247adf46e7c17244b6da12bc9456433 3 | timeCreated: 1464462180 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/CubeForgeGameNetworkObject.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using System; 4 | using UnityEngine; 5 | 6 | namespace BeardedManStudios.Forge.Networking.Generated 7 | { 8 | [GeneratedInterpol("{\"inter\":[]")] 9 | public partial class CubeForgeGameNetworkObject : NetworkObject 10 | { 11 | public const int IDENTITY = 2; 12 | 13 | private byte[] _dirtyFields = new byte[0]; 14 | 15 | #pragma warning disable 0067 16 | public event FieldChangedEvent fieldAltered; 17 | #pragma warning restore 0067 18 | 19 | protected override void OwnershipChanged() 20 | { 21 | base.OwnershipChanged(); 22 | SnapInterpolations(); 23 | } 24 | 25 | public void SnapInterpolations() 26 | { 27 | } 28 | 29 | public override int UniqueIdentity { get { return IDENTITY; } } 30 | 31 | protected override BMSByte WritePayload(BMSByte data) 32 | { 33 | 34 | return data; 35 | } 36 | 37 | protected override void ReadPayload(BMSByte payload, ulong timestep) 38 | { 39 | } 40 | 41 | protected override BMSByte SerializeDirtyFields() 42 | { 43 | dirtyFieldsData.Clear(); 44 | dirtyFieldsData.Append(_dirtyFields); 45 | 46 | 47 | return dirtyFieldsData; 48 | } 49 | 50 | protected override void ReadDirtyFields(BMSByte data, ulong timestep) 51 | { 52 | if (readDirtyFlags == null) 53 | Initialize(); 54 | 55 | Buffer.BlockCopy(data.byteArr, data.StartIndex(), readDirtyFlags, 0, readDirtyFlags.Length); 56 | data.MoveStartIndex(readDirtyFlags.Length); 57 | 58 | } 59 | 60 | public override void InterpolateUpdate() 61 | { 62 | if (IsOwner) 63 | return; 64 | 65 | } 66 | 67 | private void Initialize() 68 | { 69 | if (readDirtyFlags == null) 70 | readDirtyFlags = new byte[0]; 71 | 72 | } 73 | 74 | public CubeForgeGameNetworkObject() : base() { Initialize(); } 75 | public CubeForgeGameNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata) { Initialize(); } 76 | public CubeForgeGameNetworkObject(NetWorker networker, uint serverId, FrameStream frame) : base(networker, serverId, frame) { Initialize(); } 77 | 78 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/CubeForgeGameNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8232f0cdb6800af419f96a4e67eed0a7 3 | timeCreated: 1464462172 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ExampleProximityPlayerBehavior.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[[\"Color\"]]")] 8 | [GeneratedRPCVariableNames("{\"types\":[[\"color\"]]")] 9 | public abstract partial class ExampleProximityPlayerBehavior : NetworkBehavior 10 | { 11 | public const byte RPC_SEND_COLOR = 0 + 5; 12 | 13 | public ExampleProximityPlayerNetworkObject networkObject = null; 14 | 15 | public override void Initialize(NetworkObject obj) 16 | { 17 | // We have already initialized this object 18 | if (networkObject != null && networkObject.AttachedBehavior != null) 19 | return; 20 | 21 | networkObject = (ExampleProximityPlayerNetworkObject)obj; 22 | networkObject.AttachedBehavior = this; 23 | 24 | base.SetupHelperRpcs(networkObject); 25 | networkObject.RegisterRpc("SendColor", SendColor, typeof(Color)); 26 | 27 | networkObject.onDestroy += DestroyGameObject; 28 | 29 | if (!obj.IsOwner) 30 | { 31 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 32 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 33 | else 34 | skipAttachIds.Remove(obj.NetworkId); 35 | } 36 | 37 | if (obj.Metadata == null) 38 | return; 39 | 40 | byte transformFlags = obj.Metadata[0]; 41 | 42 | if (transformFlags == 0) 43 | return; 44 | 45 | BMSByte metadataTransform = new BMSByte(); 46 | metadataTransform.Clone(obj.Metadata); 47 | metadataTransform.MoveStartIndex(1); 48 | 49 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 50 | { 51 | MainThreadManager.Run(() => 52 | { 53 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 54 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 55 | }); 56 | } 57 | else if ((transformFlags & 0x01) != 0) 58 | { 59 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 60 | } 61 | else if ((transformFlags & 0x02) != 0) 62 | { 63 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 64 | } 65 | 66 | MainThreadManager.Run(() => 67 | { 68 | NetworkStart(); 69 | networkObject.Networker.FlushCreateActions(networkObject); 70 | }); 71 | } 72 | 73 | protected override void CompleteRegistration() 74 | { 75 | base.CompleteRegistration(); 76 | networkObject.ReleaseCreateBuffer(); 77 | } 78 | 79 | public override void Initialize(NetWorker networker, byte[] metadata = null) 80 | { 81 | Initialize(new ExampleProximityPlayerNetworkObject(networker, createCode: TempAttachCode, metadata: metadata)); 82 | } 83 | 84 | private void DestroyGameObject(NetWorker sender) 85 | { 86 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 87 | networkObject.onDestroy -= DestroyGameObject; 88 | } 89 | 90 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 91 | { 92 | return new ExampleProximityPlayerNetworkObject(networker, this, createCode, metadata); 93 | } 94 | 95 | protected override void InitializedTransform() 96 | { 97 | networkObject.SnapInterpolations(); 98 | } 99 | 100 | /// 101 | /// Arguments: 102 | /// Color color 103 | /// 104 | public abstract void SendColor(RpcArgs args); 105 | 106 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 107 | } 108 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ExampleProximityPlayerBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f77e5e2743036bd42ba8b133bf266df0 3 | timeCreated: 1487348808 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/ExampleProximityPlayerNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d576c2d1863b05b45a1c5a8f176409aa 3 | timeCreated: 1487348808 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/GameManagerBehavior.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[]")] 8 | [GeneratedRPCVariableNames("{\"types\":[]")] 9 | public abstract partial class GameManagerBehavior : NetworkBehavior 10 | { 11 | 12 | public GameManagerNetworkObject networkObject = null; 13 | 14 | public override void Initialize(NetworkObject obj) 15 | { 16 | // We have already initialized this object 17 | if (networkObject != null && networkObject.AttachedBehavior != null) 18 | return; 19 | 20 | networkObject = (GameManagerNetworkObject)obj; 21 | networkObject.AttachedBehavior = this; 22 | 23 | base.SetupHelperRpcs(networkObject); 24 | 25 | networkObject.onDestroy += DestroyGameObject; 26 | 27 | if (!obj.IsOwner) 28 | { 29 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 30 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 31 | else 32 | skipAttachIds.Remove(obj.NetworkId); 33 | } 34 | 35 | if (obj.Metadata == null) 36 | return; 37 | 38 | byte transformFlags = obj.Metadata[0]; 39 | 40 | if (transformFlags == 0) 41 | return; 42 | 43 | BMSByte metadataTransform = new BMSByte(); 44 | metadataTransform.Clone(obj.Metadata); 45 | metadataTransform.MoveStartIndex(1); 46 | 47 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 48 | { 49 | MainThreadManager.Run(() => 50 | { 51 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 52 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 53 | }); 54 | } 55 | else if ((transformFlags & 0x01) != 0) 56 | { 57 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 58 | } 59 | else if ((transformFlags & 0x02) != 0) 60 | { 61 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 62 | } 63 | 64 | MainThreadManager.Run(() => 65 | { 66 | NetworkStart(); 67 | networkObject.Networker.FlushCreateActions(networkObject); 68 | }); 69 | } 70 | 71 | protected override void CompleteRegistration() 72 | { 73 | base.CompleteRegistration(); 74 | networkObject.ReleaseCreateBuffer(); 75 | } 76 | 77 | public override void Initialize(NetWorker networker, byte[] metadata = null) 78 | { 79 | Initialize(new GameManagerNetworkObject(networker, createCode: TempAttachCode, metadata: metadata)); 80 | } 81 | 82 | private void DestroyGameObject(NetWorker sender) 83 | { 84 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 85 | networkObject.onDestroy -= DestroyGameObject; 86 | } 87 | 88 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 89 | { 90 | return new GameManagerNetworkObject(networker, this, createCode, metadata); 91 | } 92 | 93 | protected override void InitializedTransform() 94 | { 95 | networkObject.SnapInterpolations(); 96 | } 97 | 98 | 99 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 100 | } 101 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/GameManagerBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe56306de9a4f9c4e8edc0eefbbbda95 3 | timeCreated: 1513696837 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/GameManagerNetworkObject.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using System; 4 | using UnityEngine; 5 | 6 | namespace BeardedManStudios.Forge.Networking.Generated 7 | { 8 | [GeneratedInterpol("{\"inter\":[]")] 9 | public partial class GameManagerNetworkObject : NetworkObject 10 | { 11 | public const int IDENTITY = 4; 12 | 13 | private byte[] _dirtyFields = new byte[0]; 14 | 15 | #pragma warning disable 0067 16 | public event FieldChangedEvent fieldAltered; 17 | #pragma warning restore 0067 18 | 19 | protected override void OwnershipChanged() 20 | { 21 | base.OwnershipChanged(); 22 | SnapInterpolations(); 23 | } 24 | 25 | public void SnapInterpolations() 26 | { 27 | } 28 | 29 | public override int UniqueIdentity { get { return IDENTITY; } } 30 | 31 | protected override BMSByte WritePayload(BMSByte data) 32 | { 33 | 34 | return data; 35 | } 36 | 37 | protected override void ReadPayload(BMSByte payload, ulong timestep) 38 | { 39 | } 40 | 41 | protected override BMSByte SerializeDirtyFields() 42 | { 43 | dirtyFieldsData.Clear(); 44 | dirtyFieldsData.Append(_dirtyFields); 45 | 46 | 47 | return dirtyFieldsData; 48 | } 49 | 50 | protected override void ReadDirtyFields(BMSByte data, ulong timestep) 51 | { 52 | if (readDirtyFlags == null) 53 | Initialize(); 54 | 55 | Buffer.BlockCopy(data.byteArr, data.StartIndex(), readDirtyFlags, 0, readDirtyFlags.Length); 56 | data.MoveStartIndex(readDirtyFlags.Length); 57 | 58 | } 59 | 60 | public override void InterpolateUpdate() 61 | { 62 | if (IsOwner) 63 | return; 64 | 65 | } 66 | 67 | private void Initialize() 68 | { 69 | if (readDirtyFlags == null) 70 | readDirtyFlags = new byte[0]; 71 | 72 | } 73 | 74 | public GameManagerNetworkObject() : base() { Initialize(); } 75 | public GameManagerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata) { Initialize(); } 76 | public GameManagerNetworkObject(NetWorker networker, uint serverId, FrameStream frame) : base(networker, serverId, frame) { Initialize(); } 77 | 78 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/GameManagerNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7dfa7905cd82cf243b6b16d4b4f062b8 3 | timeCreated: 1513696837 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/InputListenerBehavior.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[[\"byte[]\"]]")] 8 | [GeneratedRPCVariableNames("{\"types\":[[\"inputs\"]]")] 9 | public abstract partial class InputListenerBehavior : NetworkBehavior 10 | { 11 | public const byte RPC_SYNC_INPUTS = 0 + 5; 12 | 13 | public InputListenerNetworkObject networkObject = null; 14 | 15 | public override void Initialize(NetworkObject obj) 16 | { 17 | // We have already initialized this object 18 | if (networkObject != null && networkObject.AttachedBehavior != null) 19 | return; 20 | 21 | networkObject = (InputListenerNetworkObject)obj; 22 | networkObject.AttachedBehavior = this; 23 | 24 | base.SetupHelperRpcs(networkObject); 25 | networkObject.RegisterRpc("SyncInputs", SyncInputs, typeof(byte[])); 26 | 27 | networkObject.onDestroy += DestroyGameObject; 28 | 29 | if (!obj.IsOwner) 30 | { 31 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 32 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 33 | else 34 | skipAttachIds.Remove(obj.NetworkId); 35 | } 36 | 37 | if (obj.Metadata == null) 38 | return; 39 | 40 | byte transformFlags = obj.Metadata[0]; 41 | 42 | if (transformFlags == 0) 43 | return; 44 | 45 | BMSByte metadataTransform = new BMSByte(); 46 | metadataTransform.Clone(obj.Metadata); 47 | metadataTransform.MoveStartIndex(1); 48 | 49 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 50 | { 51 | MainThreadManager.Run(() => 52 | { 53 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 54 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 55 | }); 56 | } 57 | else if ((transformFlags & 0x01) != 0) 58 | { 59 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 60 | } 61 | else if ((transformFlags & 0x02) != 0) 62 | { 63 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 64 | } 65 | 66 | MainThreadManager.Run(() => 67 | { 68 | NetworkStart(); 69 | networkObject.Networker.FlushCreateActions(networkObject); 70 | }); 71 | } 72 | 73 | protected override void CompleteRegistration() 74 | { 75 | base.CompleteRegistration(); 76 | networkObject.ReleaseCreateBuffer(); 77 | } 78 | 79 | public override void Initialize(NetWorker networker, byte[] metadata = null) 80 | { 81 | Initialize(new InputListenerNetworkObject(networker, createCode: TempAttachCode, metadata: metadata)); 82 | } 83 | 84 | private void DestroyGameObject(NetWorker sender) 85 | { 86 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 87 | networkObject.onDestroy -= DestroyGameObject; 88 | } 89 | 90 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 91 | { 92 | return new InputListenerNetworkObject(networker, this, createCode, metadata); 93 | } 94 | 95 | protected override void InitializedTransform() 96 | { 97 | networkObject.SnapInterpolations(); 98 | } 99 | 100 | /// 101 | /// Arguments: 102 | /// byte[] inputs 103 | /// 104 | public abstract void SyncInputs(RpcArgs args); 105 | 106 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 107 | } 108 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/InputListenerBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55e0865993d3e1b4e892f8cd0979b63b 3 | timeCreated: 1513696188 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/InputListenerNetworkObject.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using System; 4 | using UnityEngine; 5 | 6 | namespace BeardedManStudios.Forge.Networking.Generated 7 | { 8 | [GeneratedInterpol("{\"inter\":[]")] 9 | public partial class InputListenerNetworkObject : NetworkObject 10 | { 11 | public const int IDENTITY = 5; 12 | 13 | private byte[] _dirtyFields = new byte[0]; 14 | 15 | #pragma warning disable 0067 16 | public event FieldChangedEvent fieldAltered; 17 | #pragma warning restore 0067 18 | 19 | protected override void OwnershipChanged() 20 | { 21 | base.OwnershipChanged(); 22 | SnapInterpolations(); 23 | } 24 | 25 | public void SnapInterpolations() 26 | { 27 | } 28 | 29 | public override int UniqueIdentity { get { return IDENTITY; } } 30 | 31 | protected override BMSByte WritePayload(BMSByte data) 32 | { 33 | 34 | return data; 35 | } 36 | 37 | protected override void ReadPayload(BMSByte payload, ulong timestep) 38 | { 39 | } 40 | 41 | protected override BMSByte SerializeDirtyFields() 42 | { 43 | dirtyFieldsData.Clear(); 44 | dirtyFieldsData.Append(_dirtyFields); 45 | 46 | 47 | return dirtyFieldsData; 48 | } 49 | 50 | protected override void ReadDirtyFields(BMSByte data, ulong timestep) 51 | { 52 | if (readDirtyFlags == null) 53 | Initialize(); 54 | 55 | Buffer.BlockCopy(data.byteArr, data.StartIndex(), readDirtyFlags, 0, readDirtyFlags.Length); 56 | data.MoveStartIndex(readDirtyFlags.Length); 57 | 58 | } 59 | 60 | public override void InterpolateUpdate() 61 | { 62 | if (IsOwner) 63 | return; 64 | 65 | } 66 | 67 | private void Initialize() 68 | { 69 | if (readDirtyFlags == null) 70 | readDirtyFlags = new byte[0]; 71 | 72 | } 73 | 74 | public InputListenerNetworkObject() : base() { Initialize(); } 75 | public InputListenerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata) { Initialize(); } 76 | public InputListenerNetworkObject(NetWorker networker, uint serverId, FrameStream frame) : base(networker, serverId, frame) { Initialize(); } 77 | 78 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/InputListenerNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce8c8ede45dbf6a48b433fb81af2b6c8 3 | timeCreated: 1513696188 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/NetworkCameraBehavior.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[]")] 8 | [GeneratedRPCVariableNames("{\"types\":[]")] 9 | public abstract partial class NetworkCameraBehavior : NetworkBehavior 10 | { 11 | 12 | public NetworkCameraNetworkObject networkObject = null; 13 | 14 | public override void Initialize(NetworkObject obj) 15 | { 16 | // We have already initialized this object 17 | if (networkObject != null && networkObject.AttachedBehavior != null) 18 | return; 19 | 20 | networkObject = (NetworkCameraNetworkObject)obj; 21 | networkObject.AttachedBehavior = this; 22 | 23 | base.SetupHelperRpcs(networkObject); 24 | 25 | networkObject.onDestroy += DestroyGameObject; 26 | 27 | if (!obj.IsOwner) 28 | { 29 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 30 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 31 | else 32 | skipAttachIds.Remove(obj.NetworkId); 33 | } 34 | 35 | if (obj.Metadata == null) 36 | return; 37 | 38 | byte transformFlags = obj.Metadata[0]; 39 | 40 | if (transformFlags == 0) 41 | return; 42 | 43 | BMSByte metadataTransform = new BMSByte(); 44 | metadataTransform.Clone(obj.Metadata); 45 | metadataTransform.MoveStartIndex(1); 46 | 47 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 48 | { 49 | MainThreadManager.Run(() => 50 | { 51 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 52 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 53 | }); 54 | } 55 | else if ((transformFlags & 0x01) != 0) 56 | { 57 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 58 | } 59 | else if ((transformFlags & 0x02) != 0) 60 | { 61 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 62 | } 63 | 64 | MainThreadManager.Run(() => 65 | { 66 | NetworkStart(); 67 | networkObject.Networker.FlushCreateActions(networkObject); 68 | }); 69 | } 70 | 71 | protected override void CompleteRegistration() 72 | { 73 | base.CompleteRegistration(); 74 | networkObject.ReleaseCreateBuffer(); 75 | } 76 | 77 | public override void Initialize(NetWorker networker, byte[] metadata = null) 78 | { 79 | Initialize(new NetworkCameraNetworkObject(networker, createCode: TempAttachCode, metadata: metadata)); 80 | } 81 | 82 | private void DestroyGameObject(NetWorker sender) 83 | { 84 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 85 | networkObject.onDestroy -= DestroyGameObject; 86 | } 87 | 88 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 89 | { 90 | return new NetworkCameraNetworkObject(networker, this, createCode, metadata); 91 | } 92 | 93 | protected override void InitializedTransform() 94 | { 95 | networkObject.SnapInterpolations(); 96 | } 97 | 98 | 99 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 100 | } 101 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/NetworkCameraBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8220dd66ac732a4439fb317590fe6d38 3 | timeCreated: 1464417538 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/NetworkCameraNetworkObject.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using System; 4 | using UnityEngine; 5 | 6 | namespace BeardedManStudios.Forge.Networking.Generated 7 | { 8 | [GeneratedInterpol("{\"inter\":[0.15]")] 9 | public partial class NetworkCameraNetworkObject : NetworkObject 10 | { 11 | public const int IDENTITY = 6; 12 | 13 | private byte[] _dirtyFields = new byte[1]; 14 | 15 | #pragma warning disable 0067 16 | public event FieldChangedEvent fieldAltered; 17 | #pragma warning restore 0067 18 | private Vector3 _position; 19 | public event FieldEvent positionChanged; 20 | public InterpolateVector3 positionInterpolation = new InterpolateVector3() { LerpT = 0.15f, Enabled = true }; 21 | public Vector3 position 22 | { 23 | get { return _position; } 24 | set 25 | { 26 | // Don't do anything if the value is the same 27 | if (_position == value) 28 | return; 29 | 30 | // Mark the field as dirty for the network to transmit 31 | _dirtyFields[0] |= 0x1; 32 | _position = value; 33 | hasDirtyFields = true; 34 | } 35 | } 36 | 37 | public void SetpositionDirty() 38 | { 39 | _dirtyFields[0] |= 0x1; 40 | hasDirtyFields = true; 41 | } 42 | 43 | private void RunChange_position(ulong timestep) 44 | { 45 | if (positionChanged != null) positionChanged(_position, timestep); 46 | if (fieldAltered != null) fieldAltered("position", _position, timestep); 47 | } 48 | 49 | protected override void OwnershipChanged() 50 | { 51 | base.OwnershipChanged(); 52 | SnapInterpolations(); 53 | } 54 | 55 | public void SnapInterpolations() 56 | { 57 | positionInterpolation.current = positionInterpolation.target; 58 | } 59 | 60 | public override int UniqueIdentity { get { return IDENTITY; } } 61 | 62 | protected override BMSByte WritePayload(BMSByte data) 63 | { 64 | UnityObjectMapper.Instance.MapBytes(data, _position); 65 | 66 | return data; 67 | } 68 | 69 | protected override void ReadPayload(BMSByte payload, ulong timestep) 70 | { 71 | _position = UnityObjectMapper.Instance.Map(payload); 72 | positionInterpolation.current = _position; 73 | positionInterpolation.target = _position; 74 | RunChange_position(timestep); 75 | } 76 | 77 | protected override BMSByte SerializeDirtyFields() 78 | { 79 | dirtyFieldsData.Clear(); 80 | dirtyFieldsData.Append(_dirtyFields); 81 | 82 | if ((0x1 & _dirtyFields[0]) != 0) 83 | UnityObjectMapper.Instance.MapBytes(dirtyFieldsData, _position); 84 | 85 | return dirtyFieldsData; 86 | } 87 | 88 | protected override void ReadDirtyFields(BMSByte data, ulong timestep) 89 | { 90 | if (readDirtyFlags == null) 91 | Initialize(); 92 | 93 | Buffer.BlockCopy(data.byteArr, data.StartIndex(), readDirtyFlags, 0, readDirtyFlags.Length); 94 | data.MoveStartIndex(readDirtyFlags.Length); 95 | 96 | if ((0x1 & readDirtyFlags[0]) != 0) 97 | { 98 | if (positionInterpolation.Enabled) 99 | { 100 | positionInterpolation.target = UnityObjectMapper.Instance.Map(data); 101 | positionInterpolation.Timestep = timestep; 102 | } 103 | else 104 | { 105 | _position = UnityObjectMapper.Instance.Map(data); 106 | RunChange_position(timestep); 107 | } 108 | } 109 | } 110 | 111 | public override void InterpolateUpdate() 112 | { 113 | if (IsOwner) 114 | return; 115 | 116 | if (positionInterpolation.Enabled && !positionInterpolation.current.UnityNear(positionInterpolation.target, 0.0015f)) 117 | { 118 | _position = (Vector3)positionInterpolation.Interpolate(); 119 | //RunChange_position(positionInterpolation.Timestep); 120 | } 121 | } 122 | 123 | private void Initialize() 124 | { 125 | if (readDirtyFlags == null) 126 | readDirtyFlags = new byte[1]; 127 | 128 | } 129 | 130 | public NetworkCameraNetworkObject() : base() { Initialize(); } 131 | public NetworkCameraNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata) { Initialize(); } 132 | public NetworkCameraNetworkObject(NetWorker networker, uint serverId, FrameStream frame) : base(networker, serverId, frame) { Initialize(); } 133 | 134 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/NetworkCameraNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47ca1a5b12cd28f4985b1d1425770c87 3 | timeCreated: 1464417538 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/PlayerBehavior.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Generated 6 | { 7 | [GeneratedRPC("{\"types\":[]")] 8 | [GeneratedRPCVariableNames("{\"types\":[]")] 9 | public abstract partial class PlayerBehavior : NetworkBehavior 10 | { 11 | 12 | public PlayerNetworkObject networkObject = null; 13 | 14 | public override void Initialize(NetworkObject obj) 15 | { 16 | // We have already initialized this object 17 | if (networkObject != null && networkObject.AttachedBehavior != null) 18 | return; 19 | 20 | networkObject = (PlayerNetworkObject)obj; 21 | networkObject.AttachedBehavior = this; 22 | 23 | base.SetupHelperRpcs(networkObject); 24 | 25 | networkObject.onDestroy += DestroyGameObject; 26 | 27 | if (!obj.IsOwner) 28 | { 29 | if (!skipAttachIds.ContainsKey(obj.NetworkId)) 30 | ProcessOthers(gameObject.transform, obj.NetworkId + 1); 31 | else 32 | skipAttachIds.Remove(obj.NetworkId); 33 | } 34 | 35 | if (obj.Metadata == null) 36 | return; 37 | 38 | byte transformFlags = obj.Metadata[0]; 39 | 40 | if (transformFlags == 0) 41 | return; 42 | 43 | BMSByte metadataTransform = new BMSByte(); 44 | metadataTransform.Clone(obj.Metadata); 45 | metadataTransform.MoveStartIndex(1); 46 | 47 | if ((transformFlags & 0x01) != 0 && (transformFlags & 0x02) != 0) 48 | { 49 | MainThreadManager.Run(() => 50 | { 51 | transform.position = ObjectMapper.Instance.Map(metadataTransform); 52 | transform.rotation = ObjectMapper.Instance.Map(metadataTransform); 53 | }); 54 | } 55 | else if ((transformFlags & 0x01) != 0) 56 | { 57 | MainThreadManager.Run(() => { transform.position = ObjectMapper.Instance.Map(metadataTransform); }); 58 | } 59 | else if ((transformFlags & 0x02) != 0) 60 | { 61 | MainThreadManager.Run(() => { transform.rotation = ObjectMapper.Instance.Map(metadataTransform); }); 62 | } 63 | 64 | MainThreadManager.Run(() => 65 | { 66 | NetworkStart(); 67 | networkObject.Networker.FlushCreateActions(networkObject); 68 | }); 69 | } 70 | 71 | protected override void CompleteRegistration() 72 | { 73 | base.CompleteRegistration(); 74 | networkObject.ReleaseCreateBuffer(); 75 | } 76 | 77 | public override void Initialize(NetWorker networker, byte[] metadata = null) 78 | { 79 | Initialize(new PlayerNetworkObject(networker, createCode: TempAttachCode, metadata: metadata)); 80 | } 81 | 82 | private void DestroyGameObject(NetWorker sender) 83 | { 84 | MainThreadManager.Run(() => { try { Destroy(gameObject); } catch { } }); 85 | networkObject.onDestroy -= DestroyGameObject; 86 | } 87 | 88 | public override NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null) 89 | { 90 | return new PlayerNetworkObject(networker, this, createCode, metadata); 91 | } 92 | 93 | protected override void InitializedTransform() 94 | { 95 | networkObject.SnapInterpolations(); 96 | } 97 | 98 | 99 | // DO NOT TOUCH, THIS GETS GENERATED PLEASE EXTEND THIS CLASS IF YOU WISH TO HAVE CUSTOM CODE ADDITIONS 100 | } 101 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/PlayerBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6dcc6f506cf4f3d42b32383cde010efd 3 | timeCreated: 1513696287 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/PlayerNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7da595864e9c35498d63f3657b446ca 3 | timeCreated: 1513696287 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/TestBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8eada7145f3e8c240b3dc7238c47af9f 3 | timeCreated: 1492306725 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Generated/UserGenerated/TestNetworkObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e7b3995f2a376a4cb434b0c46e2ff6d 3 | timeCreated: 1492306725 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9616443f9d609af499dcf5845fc752d0 3 | folderAsset: yes 4 | timeCreated: 1477163107 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ffaa0b82864b754480b971462734f14 3 | folderAsset: yes 4 | timeCreated: 1479161228 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat/Chat Maker.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1000012382896100} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1000012382896100 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4000011697456928} 22 | - component: {fileID: 114000014112127682} 23 | m_Layer: 0 24 | m_Name: Chat Maker 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!4 &4000011697456928 31 | Transform: 32 | m_ObjectHideFlags: 1 33 | m_PrefabParentObject: {fileID: 0} 34 | m_PrefabInternal: {fileID: 100100000} 35 | m_GameObject: {fileID: 1000012382896100} 36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 37 | m_LocalPosition: {x: 0, y: 0, z: 0} 38 | m_LocalScale: {x: 1, y: 1, z: 1} 39 | m_Children: [] 40 | m_Father: {fileID: 0} 41 | m_RootOrder: 0 42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 43 | --- !u!114 &114000014112127682 44 | MonoBehaviour: 45 | m_ObjectHideFlags: 1 46 | m_PrefabParentObject: {fileID: 0} 47 | m_PrefabInternal: {fileID: 100100000} 48 | m_GameObject: {fileID: 1000012382896100} 49 | m_Enabled: 1 50 | m_EditorHideFlags: 0 51 | m_Script: {fileID: 11500000, guid: b87891c6afcc28c459e388cc6400f9dc, type: 3} 52 | m_Name: 53 | m_EditorClassIdentifier: 54 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat/Chat Maker.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e77f53b2a5e4fbe46ae85581b9b0d11d 3 | timeCreated: 1481743039 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat/ChatMaker.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Unity; 2 | using UnityEngine; 3 | using UnityEngine.SceneManagement; 4 | 5 | public class ChatMaker : MonoBehaviour 6 | { 7 | private void Awake() 8 | { 9 | SceneManager.sceneLoaded += CreateInlineChat; 10 | } 11 | 12 | private void CreateInlineChat(Scene arg0, LoadSceneMode arg1) 13 | { 14 | SceneManager.sceneLoaded -= CreateInlineChat; 15 | var chat = NetworkManager.Instance.InstantiateChatManager(); 16 | DontDestroyOnLoad(chat.gameObject); 17 | } 18 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat/ChatMaker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b87891c6afcc28c459e388cc6400f9dc 3 | timeCreated: 1481743039 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat/ChatManager.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking; 2 | using BeardedManStudios.Forge.Networking.Generated; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | public class ChatManager : ChatManagerBehavior 8 | { 9 | public Transform contentTransform; 10 | public GameObject messageLabel; 11 | public GameObject eventSystem; 12 | 13 | public InputField messageInput; 14 | 15 | private List messageLabels = new List(); 16 | public int maxMessages = 100; 17 | 18 | private void Awake() 19 | { 20 | Instantiate(eventSystem); 21 | } 22 | 23 | public override void SendMessage(RpcArgs args) 24 | { 25 | string username = args.GetNext(); 26 | string message = args.GetNext(); 27 | 28 | Text label = null; 29 | if (messageLabels.Count == maxMessages) 30 | { 31 | label = messageLabels[0]; 32 | messageLabels.RemoveAt(0); 33 | label.transform.SetAsLastSibling(); 34 | } 35 | else 36 | label = (Instantiate(messageLabel, contentTransform) as GameObject).GetComponent(); 37 | 38 | messageLabels.Add(label); 39 | label.text = username + ": " + message; 40 | } 41 | 42 | public void SendMessage() 43 | { 44 | string message = messageInput.text.Trim(); 45 | if (string.IsNullOrEmpty(message)) 46 | return; 47 | 48 | string name = networkObject.Networker.Me.Name; 49 | 50 | if (string.IsNullOrEmpty(name)) 51 | name = NetWorker.InstanceGuid.ToString().Substring(0, 5); 52 | 53 | networkObject.SendRpc(RPC_SEND_MESSAGE, Receivers.All, name, message); 54 | messageInput.text = ""; 55 | messageInput.Select(); 56 | } 57 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Chat/ChatManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aeea0c7630414114da1f96ac15c4ed49 3 | timeCreated: 1479165077 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/LobbySystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6611706ce5168724799f42abc05cdc49 3 | folderAsset: yes 4 | timeCreated: 1479718110 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/LobbySystem/LobbyManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70ee93f6c1c238d4b9989f5c3725a56a 3 | timeCreated: 1479718120 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/LobbySystem/LobbyPlayer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Unity.Lobby 6 | { 7 | public class LobbyPlayer : IClientMockPlayer 8 | { 9 | private string _name; 10 | public string Name 11 | { 12 | get 13 | { 14 | return _name; 15 | } 16 | set 17 | { 18 | _name = value; 19 | } 20 | } 21 | 22 | private uint _networkID; 23 | public uint NetworkId 24 | { 25 | get 26 | { 27 | return _networkID; 28 | } 29 | 30 | set 31 | { 32 | _networkID = value; 33 | } 34 | } 35 | 36 | private int _avatarID; 37 | public int AvatarID 38 | { 39 | get { return _avatarID; } 40 | set { _avatarID = value; } 41 | } 42 | 43 | private int _teamID; 44 | public int TeamID 45 | { 46 | get { return _teamID; } 47 | set { _teamID = value; } 48 | } 49 | 50 | private bool _created; 51 | public bool Created 52 | { 53 | get { return _created; } 54 | set { _created = value; } 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/LobbySystem/LobbyPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7ed9657d11c16f4a91af907e6e89228 3 | timeCreated: 1479719238 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/LobbySystem/LobbyPlayerItem.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Collections; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Unity.Lobby 6 | { 7 | public class LobbyPlayerItem : MonoBehaviour 8 | { 9 | public Color[] TeamColors; 10 | public Color[] AvatarColors; 11 | public GameObject KickButton; 12 | public Image AvatarBG; 13 | public Text AvatarID; 14 | public InputField PlayerName; 15 | public Text PlayerTeamID; 16 | 17 | public Button[] Buttons; 18 | 19 | [HideInInspector] 20 | public Transform ThisTransform; 21 | 22 | [HideInInspector] 23 | public GameObject ThisGameObject; 24 | 25 | public LobbyPlayer AssociatedPlayer { get; private set; } 26 | private LobbyManager _manager; 27 | 28 | public void Init(LobbyManager manager) 29 | { 30 | ThisGameObject = gameObject; 31 | ThisTransform = transform; 32 | _manager = manager; 33 | } 34 | 35 | public void Setup(LobbyPlayer associatedPlayer, bool interactableValue) 36 | { 37 | ToggleInteractables(interactableValue); 38 | AssociatedPlayer = associatedPlayer; 39 | ChangeAvatarID(associatedPlayer.AvatarID); 40 | ChangeName(associatedPlayer.Name); 41 | ChangeTeam(associatedPlayer.TeamID); 42 | } 43 | 44 | public void SetParent(Transform parent) 45 | { 46 | ThisTransform.SetParent(parent); 47 | ThisTransform.localPosition = Vector3.zero; 48 | ThisTransform.localScale = Vector3.one; 49 | } 50 | 51 | public void KickPlayer() 52 | { 53 | _manager.KickPlayer(this); 54 | } 55 | 56 | public void RequestChangeTeam() 57 | { 58 | int nextID = AssociatedPlayer.TeamID + 1; 59 | if (nextID >= TeamColors.Length) 60 | nextID = 0; 61 | 62 | _manager.ChangeTeam(this, nextID); 63 | } 64 | 65 | public void RequestChangeAvatarID() 66 | { 67 | int nextID = AssociatedPlayer.AvatarID + 1; 68 | if (nextID >= AvatarColors.Length) 69 | nextID = 0; 70 | 71 | _manager.ChangeAvatarID(this, nextID); 72 | } 73 | 74 | public void RequestChangeName() 75 | { 76 | _manager.ChangeName(this, PlayerName.text); 77 | } 78 | 79 | public void ChangeAvatarID(int id) 80 | { 81 | Color avatarColor = Color.white; 82 | 83 | //Note: This is just an example, you are free to make your own team colors and 84 | // change this to however you see fit 85 | if (TeamColors.Length > id && id >= 0) 86 | avatarColor = AvatarColors[id]; 87 | 88 | AvatarID.text = id.ToString(); 89 | AvatarBG.color = avatarColor; 90 | } 91 | 92 | public void ChangeName(string name) 93 | { 94 | PlayerName.text = name; 95 | } 96 | 97 | public void ChangeTeam(int id) 98 | { 99 | PlayerTeamID.text = string.Format("Team {0}", id); 100 | } 101 | 102 | public void ToggleInteractables(bool value) 103 | { 104 | for (int i = 0; i < Buttons.Length; ++i) 105 | Buttons[i].interactable = value; 106 | 107 | AvatarBG.raycastTarget = value; 108 | PlayerTeamID.raycastTarget = value; 109 | PlayerName.interactable = value; 110 | } 111 | 112 | public void ToggleObject(bool value) 113 | { 114 | ThisGameObject.SetActive(value); 115 | } 116 | } 117 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/LobbySystem/LobbyPlayerItem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 261d9e151bc73b947a09368f081d3191 3 | timeCreated: 1479718185 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c94454ed540147d4db86b855cea046c2 3 | folderAsset: yes 4 | timeCreated: 1479162561 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/Chat.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b454b1be0b2c3fa4fb48430867af7566 3 | timeCreated: 1479161234 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/EventSystem.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1000012828009978} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1000012828009978 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4000012507469452} 22 | - component: {fileID: 114000013548506554} 23 | - component: {fileID: 114000013613365950} 24 | m_Layer: 0 25 | m_Name: EventSystem 26 | m_TagString: Untagged 27 | m_Icon: {fileID: 0} 28 | m_NavMeshLayer: 0 29 | m_StaticEditorFlags: 0 30 | m_IsActive: 1 31 | --- !u!4 &4000012507469452 32 | Transform: 33 | m_ObjectHideFlags: 1 34 | m_PrefabParentObject: {fileID: 0} 35 | m_PrefabInternal: {fileID: 100100000} 36 | m_GameObject: {fileID: 1000012828009978} 37 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 38 | m_LocalPosition: {x: 0, y: 0, z: 0} 39 | m_LocalScale: {x: 1, y: 1, z: 1} 40 | m_Children: [] 41 | m_Father: {fileID: 0} 42 | m_RootOrder: 0 43 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 44 | --- !u!114 &114000013548506554 45 | MonoBehaviour: 46 | m_ObjectHideFlags: 1 47 | m_PrefabParentObject: {fileID: 0} 48 | m_PrefabInternal: {fileID: 100100000} 49 | m_GameObject: {fileID: 1000012828009978} 50 | m_Enabled: 1 51 | m_EditorHideFlags: 0 52 | m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 53 | m_Name: 54 | m_EditorClassIdentifier: 55 | m_FirstSelected: {fileID: 0} 56 | m_sendNavigationEvents: 1 57 | m_DragThreshold: 5 58 | --- !u!114 &114000013613365950 59 | MonoBehaviour: 60 | m_ObjectHideFlags: 1 61 | m_PrefabParentObject: {fileID: 0} 62 | m_PrefabInternal: {fileID: 100100000} 63 | m_GameObject: {fileID: 1000012828009978} 64 | m_Enabled: 1 65 | m_EditorHideFlags: 0 66 | m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 67 | m_Name: 68 | m_EditorClassIdentifier: 69 | m_HorizontalAxis: Horizontal 70 | m_VerticalAxis: Vertical 71 | m_SubmitButton: Submit 72 | m_CancelButton: Cancel 73 | m_InputActionsPerSecond: 10 74 | m_RepeatDelay: 0.5 75 | m_ForceModuleActive: 0 76 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/EventSystem.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a542afcebd359804799ebc0af3dd0ddc 3 | timeCreated: 1479167941 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/LobbyPlayerItem.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a4fdc786f65c3b6448687c9954802293 3 | timeCreated: 1489129328 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/LobbySystem.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c507e932d520af47909cb5e6a75be4e 3 | timeCreated: 1512730439 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/Message.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1000010636152146} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1000010636152146 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 224000013447513912} 22 | - component: {fileID: 222000010477135120} 23 | - component: {fileID: 114000011120757998} 24 | - component: {fileID: 114000012502041954} 25 | m_Layer: 5 26 | m_Name: Message 27 | m_TagString: Untagged 28 | m_Icon: {fileID: 0} 29 | m_NavMeshLayer: 0 30 | m_StaticEditorFlags: 0 31 | m_IsActive: 1 32 | --- !u!114 &114000011120757998 33 | MonoBehaviour: 34 | m_ObjectHideFlags: 1 35 | m_PrefabParentObject: {fileID: 0} 36 | m_PrefabInternal: {fileID: 100100000} 37 | m_GameObject: {fileID: 1000010636152146} 38 | m_Enabled: 1 39 | m_EditorHideFlags: 0 40 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 41 | m_Name: 42 | m_EditorClassIdentifier: 43 | m_Material: {fileID: 0} 44 | m_Color: {r: 0, g: 0, b: 0, a: 1} 45 | m_RaycastTarget: 1 46 | m_OnCullStateChanged: 47 | m_PersistentCalls: 48 | m_Calls: [] 49 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 50 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 51 | m_FontData: 52 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 53 | m_FontSize: 14 54 | m_FontStyle: 0 55 | m_BestFit: 0 56 | m_MinSize: 10 57 | m_MaxSize: 40 58 | m_Alignment: 0 59 | m_AlignByGeometry: 0 60 | m_RichText: 1 61 | m_HorizontalOverflow: 0 62 | m_VerticalOverflow: 1 63 | m_LineSpacing: 1 64 | m_Text: 65 | --- !u!114 &114000012502041954 66 | MonoBehaviour: 67 | m_ObjectHideFlags: 1 68 | m_PrefabParentObject: {fileID: 0} 69 | m_PrefabInternal: {fileID: 100100000} 70 | m_GameObject: {fileID: 1000010636152146} 71 | m_Enabled: 1 72 | m_EditorHideFlags: 0 73 | m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 74 | m_Name: 75 | m_EditorClassIdentifier: 76 | m_IgnoreLayout: 0 77 | m_MinWidth: 280 78 | m_MinHeight: -1 79 | m_PreferredWidth: -1 80 | m_PreferredHeight: -1 81 | m_FlexibleWidth: -1 82 | m_FlexibleHeight: -1 83 | m_LayoutPriority: 1 84 | --- !u!222 &222000010477135120 85 | CanvasRenderer: 86 | m_ObjectHideFlags: 1 87 | m_PrefabParentObject: {fileID: 0} 88 | m_PrefabInternal: {fileID: 100100000} 89 | m_GameObject: {fileID: 1000010636152146} 90 | --- !u!224 &224000013447513912 91 | RectTransform: 92 | m_ObjectHideFlags: 1 93 | m_PrefabParentObject: {fileID: 0} 94 | m_PrefabInternal: {fileID: 100100000} 95 | m_GameObject: {fileID: 1000010636152146} 96 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 97 | m_LocalPosition: {x: 0, y: 0, z: 0} 98 | m_LocalScale: {x: 1, y: 1, z: 1} 99 | m_Children: [] 100 | m_Father: {fileID: 0} 101 | m_RootOrder: 0 102 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 103 | m_AnchorMin: {x: 0, y: 0} 104 | m_AnchorMax: {x: 0, y: 0} 105 | m_AnchoredPosition: {x: 0, y: 0} 106 | m_SizeDelta: {x: 0, y: 0} 107 | m_Pivot: {x: 0.5, y: 0.5} 108 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Prefabs/Message.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d672444e84d36444bb56bcbdae70b3b 3 | timeCreated: 1479162564 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Stand Alone Chat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf21540c9828fb849aea5ceec7330e30 3 | folderAsset: yes 4 | timeCreated: 1479164973 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Stand Alone Chat/StandAloneChat.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | public class StandAloneChat : MonoBehaviour { 5 | 6 | // Use this for initialization 7 | void Start () { 8 | 9 | } 10 | 11 | // Update is called once per frame 12 | void Update () { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/Stand Alone Chat/StandAloneChat.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2622089a73d11024bb336ac4661fbdfc 3 | timeCreated: 1479165019 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/VOIP.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 194b02386381a0546a8a91abaacb837f 3 | folderAsset: yes 4 | timeCreated: 1477157132 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/VOIP/VOIP.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7abc983e7e845a54592b4b04db30c8c8 3 | timeCreated: 1477157145 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/VOIP/VOIP.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1c33731e43848243914a7dbb73db8cc 3 | timeCreated: 1477158940 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/VOIP/VoipStarter.cs: -------------------------------------------------------------------------------- 1 | #if !UNITY_WEBGL && !WINDOWS_UWP 2 | using BeardedManStudios.Forge.Networking.Unity; 3 | using BeardedManStudios.Forge.Networking.Unity.Modules; 4 | #endif 5 | 6 | using UnityEngine; 7 | 8 | public class VoipStarter : MonoBehaviour 9 | { 10 | #if !UNITY_WEBGL && !WINDOWS_UWP 11 | private VOIP voip; 12 | public string hostAddress; 13 | public ushort hostPort; 14 | public bool isLocalTesting; 15 | public VOIP.Quality MicQuality = VOIP.Quality.High; 16 | 17 | public void Start() 18 | { 19 | voip = new VOIP(0.0f, MicQuality); 20 | voip.IsLocalTesting = isLocalTesting; 21 | 22 | if (NetworkManager.Instance.IsServer) 23 | voip.StartServer(32); 24 | else 25 | voip.StartClient(hostAddress, hostPort); 26 | } 27 | 28 | public void Stop() 29 | { 30 | voip.StopSending(); 31 | } 32 | 33 | private void Update() 34 | { 35 | voip.Update(); 36 | } 37 | 38 | private void OnApplicationQuit() 39 | { 40 | Stop(); 41 | } 42 | #endif 43 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Modules/VOIP/VoipStarter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d61f7f0aaf8de2489beee413926ed2b 3 | timeCreated: 1477158724 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d92e9b43fa76284b8f4e5839b7f0e49 3 | folderAsset: yes 4 | timeCreated: 1471322683 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/BeardedManStudios.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Plugins/BeardedManStudios.dll.mdb -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/BeardedManStudios.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 584cf9905a8c2fc46abc8c3170293a82 3 | timeCreated: 1512731205 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/BeardedManStudios.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83653292150867044b5cadadf4e1c568 3 | timeCreated: 1489555224 4 | licenseType: Free 5 | PluginImporter: 6 | serializedVersion: 1 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | platformData: 11 | Any: 12 | enabled: 1 13 | settings: {} 14 | Editor: 15 | enabled: 0 16 | settings: 17 | DefaultValueInitialized: true 18 | WindowsStoreApps: 19 | enabled: 0 20 | settings: 21 | CPU: AnyCPU 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/BeardedManStudios.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 303212cacfe73954db4ec90cc768e92f 3 | timeCreated: 1489555223 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/ForgeNetworkingCommon.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/Assets/Bearded Man Studios Inc/Plugins/ForgeNetworkingCommon.dll.mdb -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/ForgeNetworkingCommon.dll.mdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 172fba4414f60924b84a925d545a8ca9 3 | timeCreated: 1512731205 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/ForgeNetworkingCommon.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a80293898ce419b49844087a8fdbd648 3 | timeCreated: 1489122602 4 | licenseType: Pro 5 | PluginImporter: 6 | serializedVersion: 1 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | platformData: 11 | Any: 12 | enabled: 1 13 | settings: {} 14 | Editor: 15 | enabled: 0 16 | settings: 17 | DefaultValueInitialized: true 18 | WindowsStoreApps: 19 | enabled: 0 20 | settings: 21 | CPU: AnyCPU 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Plugins/ForgeNetworkingCommon.pdb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffd2a0625ebfc36409ca65635a924810 3 | timeCreated: 1489122600 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a27bace96c6022498084f87751072d7 3 | folderAsset: yes 4 | timeCreated: 1464238126 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Prefabs/NetworkManager.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &186558 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 5 9 | m_Component: 10 | - component: {fileID: 471382} 11 | - component: {fileID: 11439882} 12 | m_Layer: 0 13 | m_Name: NetworkManager 14 | m_TagString: Untagged 15 | m_Icon: {fileID: 0} 16 | m_NavMeshLayer: 0 17 | m_StaticEditorFlags: 0 18 | m_IsActive: 1 19 | --- !u!4 &471382 20 | Transform: 21 | m_ObjectHideFlags: 1 22 | m_PrefabParentObject: {fileID: 0} 23 | m_PrefabInternal: {fileID: 100100000} 24 | m_GameObject: {fileID: 186558} 25 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 26 | m_LocalPosition: {x: 0, y: 0, z: 0} 27 | m_LocalScale: {x: 1, y: 1, z: 1} 28 | m_Children: [] 29 | m_Father: {fileID: 0} 30 | m_RootOrder: 0 31 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 32 | --- !u!114 &11439882 33 | MonoBehaviour: 34 | m_ObjectHideFlags: 1 35 | m_PrefabParentObject: {fileID: 0} 36 | m_PrefabInternal: {fileID: 100100000} 37 | m_GameObject: {fileID: 186558} 38 | m_Enabled: 1 39 | m_EditorHideFlags: 0 40 | m_Script: {fileID: 11500000, guid: bbe5b082a785e7641bf1a62b930a3f5a, type: 3} 41 | m_Name: 42 | m_EditorClassIdentifier: 43 | ChatManagerNetworkObject: 44 | - {fileID: 1000012032569418, guid: b454b1be0b2c3fa4fb48430867af7566, type: 2} 45 | CubeForgeGameNetworkObject: [] 46 | ExampleProximityPlayerNetworkObject: 47 | - {fileID: 1000012738253334, guid: feb25ecf90a8d8b4ab922a455249997b, type: 2} 48 | GameManagerNetworkObject: 49 | - {fileID: 1909901469931254, guid: 2d377f70144ac074287c53ff786949db, type: 2} 50 | InputListenerNetworkObject: 51 | - {fileID: 1420436103130830, guid: 3c12fefa12ce8bd4d9f3d990eb94af41, type: 2} 52 | NetworkCameraNetworkObject: 53 | - {fileID: 139536, guid: 661f29f0c0c86fa47b6015bd602d0ac6, type: 2} 54 | PlayerNetworkObject: 55 | - {fileID: 1760598452324474, guid: 6b4acefbb25517e4a8f7b0b694e11548, type: 2} 56 | TestNetworkObject: [] 57 | automaticScenes: 1 58 | --- !u!1001 &100100000 59 | Prefab: 60 | m_ObjectHideFlags: 1 61 | serializedVersion: 2 62 | m_Modification: 63 | m_TransformParent: {fileID: 0} 64 | m_Modifications: [] 65 | m_RemovedComponents: [] 66 | m_ParentPrefab: {fileID: 0} 67 | m_RootGameObject: {fileID: 186558} 68 | m_IsPrefabParent: 1 69 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Prefabs/NetworkManager.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79adc0da5b6caf74990d862696696ecd 3 | timeCreated: 1465144217 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Prefabs/Server Option.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b928ea62faaa41e43ac9457797db9561 3 | timeCreated: 1502863086 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ccc3927566e7f4a4cb28046d5bbb6367 3 | folderAsset: yes 4 | timeCreated: 1464149342 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scenes/Lobby.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9db8abf876fc1e344976439c7c81e8ab 3 | timeCreated: 1512730425 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scenes/MultiplayerMenu.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5b9e296c950dcc4d862eeda4ce5052a 3 | timeCreated: 1486024057 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scenes/ServerBrowser.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e25b87e967aec124bba7cd17d4d3a8fc 3 | timeCreated: 1464237966 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf648be06b69ce54cbcaedddf7be8e2b 3 | folderAsset: yes 4 | timeCreated: 1464149519 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/BMSUnityExtensions.cs: -------------------------------------------------------------------------------- 1 | /*-----------------------------+-------------------------------\ 2 | | | 3 | | !!!NOTICE!!! | 4 | | | 5 | | These libraries are under heavy development so they are | 6 | | subject to make many changes as development continues. | 7 | | For this reason, the libraries may not be well commented. | 8 | | THANK YOU for supporting forge with all your feedback | 9 | | suggestions, bug reports and comments! | 10 | | | 11 | | - The Forge Team | 12 | | Bearded Man Studios, Inc. | 13 | | | 14 | | This source code, project files, and associated files are | 15 | | copyrighted by Bearded Man Studios, Inc. (2012-2017) and | 16 | | may not be redistributed without written permission. | 17 | | | 18 | \------------------------------+------------------------------*/ 19 | 20 | using UnityEngine; 21 | 22 | namespace BeardedManStudios.Forge.Networking.Unity 23 | { 24 | public static class BMSUnityExtensions 25 | { 26 | public static bool UnityNear(this Vector2 target, Vector2 other, float threshold = 0.0012f) 27 | { 28 | return Vector2.Distance(target, other) <= threshold; 29 | } 30 | 31 | public static bool UnityNear(this Vector3 target, Vector3 other, float threshold = 0.0012f) 32 | { 33 | return Vector3.Distance(target, other) <= threshold; 34 | } 35 | 36 | public static bool UnityNear(this Vector4 target, Vector4 other, float threshold = 0.0012f) 37 | { 38 | return Vector4.Distance(target, other) <= threshold; 39 | } 40 | 41 | public static bool UnityNear(this Quaternion target, Quaternion other, float threshold = 0.0012f) 42 | { 43 | return Quaternion.Angle(target, other) <= threshold; 44 | } 45 | 46 | public static bool UnityNear(this T target, T other, float threshold = 0.0012f) 47 | { 48 | return target.Near(other, threshold); 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/BMSUnityExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a2901ec53d09b54b85e05d28d05d4cb 3 | timeCreated: 1480066810 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateQuaternion.cs: -------------------------------------------------------------------------------- 1 | /*-----------------------------+------------------------------\ 2 | | | 3 | | !!!NOTICE!!! | 4 | | | 5 | | These libraries are under heavy development so they are | 6 | | subject to make many changes as development continues. | 7 | | For this reason, the libraries may not be well commented. | 8 | | THANK YOU for supporting forge with all your feedback | 9 | | suggestions, bug reports and comments! | 10 | | | 11 | | - The Forge Team | 12 | | Bearded Man Studios, Inc. | 13 | | | 14 | | This source code, project files, and associated files are | 15 | | copyrighted by Bearded Man Studios, Inc. (2012-2015) and | 16 | | may not be redistributed without written permission. | 17 | | | 18 | \------------------------------+-----------------------------*/ 19 | 20 | 21 | 22 | using UnityEngine; 23 | 24 | namespace BeardedManStudios.Forge.Networking.Unity 25 | { 26 | public struct InterpolateQuaternion : IInterpolator 27 | { 28 | public Quaternion current; 29 | public Quaternion target; 30 | public float LerpT { get; set; } 31 | public bool Enabled { get; set; } 32 | public ulong Timestep { get; set; } 33 | 34 | public Quaternion Interpolate() 35 | { 36 | if (!Enabled) return target; 37 | 38 | current = Quaternion.Slerp(current, target, LerpT); 39 | return current; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateQuaternion.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf1671e30325e2342b4960bb37a133e2 3 | timeCreated: 1464310854 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateVector2.cs: -------------------------------------------------------------------------------- 1 | /*-----------------------------+------------------------------\ 2 | | | 3 | | !!!NOTICE!!! | 4 | | | 5 | | These libraries are under heavy development so they are | 6 | | subject to make many changes as development continues. | 7 | | For this reason, the libraries may not be well commented. | 8 | | THANK YOU for supporting forge with all your feedback | 9 | | suggestions, bug reports and comments! | 10 | | | 11 | | - The Forge Team | 12 | | Bearded Man Studios, Inc. | 13 | | | 14 | | This source code, project files, and associated files are | 15 | | copyrighted by Bearded Man Studios, Inc. (2012-2015) and | 16 | | may not be redistributed without written permission. | 17 | | | 18 | \------------------------------+-----------------------------*/ 19 | 20 | 21 | 22 | using UnityEngine; 23 | 24 | namespace BeardedManStudios.Forge.Networking.Unity 25 | { 26 | public struct InterpolateVector2 : IInterpolator 27 | { 28 | public Vector2 current; 29 | public Vector2 target; 30 | public float LerpT { get; set; } 31 | public bool Enabled { get; set; } 32 | public ulong Timestep { get; set; } 33 | 34 | public Vector2 Interpolate() 35 | { 36 | if (!Enabled) return target; 37 | 38 | current = Vector2.Lerp(current, target, LerpT); 39 | return current; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateVector2.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d8c9a14d13ac8346bdaffd01f8f2d00 3 | timeCreated: 1464310823 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateVector3.cs: -------------------------------------------------------------------------------- 1 | /*-----------------------------+------------------------------\ 2 | | | 3 | | !!!NOTICE!!! | 4 | | | 5 | | These libraries are under heavy development so they are | 6 | | subject to make many changes as development continues. | 7 | | For this reason, the libraries may not be well commented. | 8 | | THANK YOU for supporting forge with all your feedback | 9 | | suggestions, bug reports and comments! | 10 | | | 11 | | - The Forge Team | 12 | | Bearded Man Studios, Inc. | 13 | | | 14 | | This source code, project files, and associated files are | 15 | | copyrighted by Bearded Man Studios, Inc. (2012-2015) and | 16 | | may not be redistributed without written permission. | 17 | | | 18 | \------------------------------+-----------------------------*/ 19 | 20 | 21 | 22 | using UnityEngine; 23 | 24 | namespace BeardedManStudios.Forge.Networking.Unity 25 | { 26 | public struct InterpolateVector3 : IInterpolator 27 | { 28 | public Vector3 current; 29 | public Vector3 target; 30 | public float LerpT { get; set; } 31 | public bool Enabled { get; set; } 32 | public ulong Timestep { get; set; } 33 | 34 | public Vector3 Interpolate() 35 | { 36 | if (!Enabled) return target; 37 | 38 | current = Vector3.Lerp(current, target, LerpT); 39 | return current; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateVector3.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f4936ae1e447544096aadac407e074d 3 | timeCreated: 1464310831 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateVector4.cs: -------------------------------------------------------------------------------- 1 | /*-----------------------------+------------------------------\ 2 | | | 3 | | !!!NOTICE!!! | 4 | | | 5 | | These libraries are under heavy development so they are | 6 | | subject to make many changes as development continues. | 7 | | For this reason, the libraries may not be well commented. | 8 | | THANK YOU for supporting forge with all your feedback | 9 | | suggestions, bug reports and comments! | 10 | | | 11 | | - The Forge Team | 12 | | Bearded Man Studios, Inc. | 13 | | | 14 | | This source code, project files, and associated files are | 15 | | copyrighted by Bearded Man Studios, Inc. (2012-2015) and | 16 | | may not be redistributed without written permission. | 17 | | | 18 | \------------------------------+-----------------------------*/ 19 | 20 | 21 | 22 | using UnityEngine; 23 | 24 | namespace BeardedManStudios.Forge.Networking.Unity 25 | { 26 | public struct InterpolateVector4 : IInterpolator 27 | { 28 | public Vector4 current; 29 | public Vector4 target; 30 | public float LerpT { get; set; } 31 | public bool Enabled { get; set; } 32 | public ulong Timestep { get; set; } 33 | 34 | public Vector4 Interpolate() 35 | { 36 | if (!Enabled) return target; 37 | 38 | current = Vector3.Lerp(current, target, LerpT); 39 | return current; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/InterpolateVector4.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a7bf1c6f149dbc47b85659968595da8 3 | timeCreated: 1464310847 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Logging.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59f23152af9a5aa4582f7d664cfaa35b 3 | folderAsset: yes 4 | timeCreated: 1474960290 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Logging/BMSLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7bf1e3100934a7842856f079317bde61 3 | timeCreated: 1474960296 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Logging/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48bfa484fc0fa7844b99d700f3256f9d 3 | folderAsset: yes 4 | timeCreated: 1477166664 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Logging/Resources/BMSLogger.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1778277312314912} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1778277312314912 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4566567485005264} 22 | - component: {fileID: 114851552649247608} 23 | m_Layer: 0 24 | m_Name: BMSLogger 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!4 &4566567485005264 31 | Transform: 32 | m_ObjectHideFlags: 1 33 | m_PrefabParentObject: {fileID: 0} 34 | m_PrefabInternal: {fileID: 100100000} 35 | m_GameObject: {fileID: 1778277312314912} 36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 37 | m_LocalPosition: {x: 0, y: 0, z: 0} 38 | m_LocalScale: {x: 1, y: 1, z: 1} 39 | m_Children: [] 40 | m_Father: {fileID: 0} 41 | m_RootOrder: 0 42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 43 | --- !u!114 &114851552649247608 44 | MonoBehaviour: 45 | m_ObjectHideFlags: 1 46 | m_PrefabParentObject: {fileID: 0} 47 | m_PrefabInternal: {fileID: 100100000} 48 | m_GameObject: {fileID: 1778277312314912} 49 | m_Enabled: 1 50 | m_EditorHideFlags: 0 51 | m_Script: {fileID: 11500000, guid: 7bf1e3100934a7842856f079317bde61, type: 3} 52 | m_Name: 53 | m_EditorClassIdentifier: 54 | LoggerVisible: 1 55 | LogToFile: 0 56 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Logging/Resources/BMSLogger.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1827477e21c0c9142a70ca039d149ca4 3 | timeCreated: 1502860277 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/MainThreadManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e408d7919f6e7a4428aa3c5bee95fe0a 3 | timeCreated: 1463976669 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Multiplayer Menu.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a44fcf70f4f6e0c4b9ed6e52e02d05cc 3 | folderAsset: yes 4 | timeCreated: 1463981710 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Multiplayer Menu/MultiplayerMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a12681ffb6b62f7408139a85cc6e5bc5 3 | timeCreated: 1463981716 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkBehavior.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace BeardedManStudios.Forge.Networking.Unity 6 | { 7 | public abstract class NetworkBehavior : MonoBehaviour, INetworkBehavior 8 | { 9 | public const byte RPC_SETUP_TRANSFORM = 4; 10 | 11 | public delegate void NetworkBehaviorEvent(NetworkBehavior behavior); 12 | 13 | public static Dictionary skipAttachIds = new Dictionary(); 14 | 15 | public int TempAttachCode { get; set; } 16 | public bool Initialized { get; private set; } 17 | 18 | private NetworkObject waitingForNetworkObject; 19 | private uint waitingForNetworkObjectOffset; 20 | 21 | public event NetworkBehaviorEvent networkStarted; 22 | 23 | protected virtual void NetworkStart() 24 | { 25 | CompleteRegistration(); 26 | 27 | if (networkStarted != null) 28 | networkStarted(this); 29 | } 30 | 31 | protected virtual void CompleteRegistration() { } 32 | 33 | public abstract void Initialize(NetworkObject obj); 34 | public abstract void Initialize(NetWorker networker, byte[] metadata = null); 35 | 36 | public void AwaitNetworkBind(NetWorker networker, NetworkObject createTarget, uint idOffset) 37 | { 38 | waitingForNetworkObject = createTarget; 39 | waitingForNetworkObjectOffset = idOffset; 40 | 41 | networker.objectCreated += NetworkBind; 42 | 43 | if (createTarget.NetworkId == 0) 44 | return; 45 | 46 | NetworkObject target; 47 | if (networker.NetworkObjects.TryGetValue(createTarget.NetworkId + idOffset, out target)) 48 | NetworkBind(target); 49 | } 50 | 51 | private void NetworkBind(NetworkObject obj) 52 | { 53 | // This is always the network manager and should be ignored on late bindings 54 | if (obj.NetworkId == 0) 55 | return; 56 | 57 | if (obj.NetworkId != waitingForNetworkObject.NetworkId + waitingForNetworkObjectOffset && obj.CreateCode != TempAttachCode) 58 | return; 59 | 60 | Initialize(obj); 61 | skipAttachIds.Remove(obj.NetworkId); 62 | 63 | obj.Networker.objectCreated -= NetworkBind; 64 | } 65 | 66 | protected void SetupHelperRpcs(NetworkObject networkObject) 67 | { 68 | networkObject.RegisterRpc("SetupTransform", SetupTransform, typeof(Vector3), typeof(Quaternion)); 69 | Initialized = true; 70 | } 71 | 72 | public abstract NetworkObject CreateNetworkObject(NetWorker networker, int createCode, byte[] metadata = null); 73 | 74 | private void SetupTransform(RpcArgs args) 75 | { 76 | Action execute = () => 77 | { 78 | transform.position = args.GetNext(); 79 | transform.rotation = args.GetNext(); 80 | InitializedTransform(); 81 | }; 82 | 83 | if (Rpc.MainThreadRunner != null) 84 | execute(); 85 | else 86 | MainThreadManager.Run(execute); 87 | } 88 | 89 | protected abstract void InitializedTransform(); 90 | 91 | protected void ProcessOthers(Transform obj, uint idOffset) 92 | { 93 | int i; 94 | 95 | var components = obj.GetComponents(); 96 | 97 | // Create each network object that is available 98 | for (i = 0; i < components.Length; i++) 99 | { 100 | if (components[i] == this) 101 | continue; 102 | 103 | skipAttachIds.Add(idOffset++, components[i]); 104 | } 105 | 106 | for (i = 0; i < obj.childCount; i++) 107 | ProcessOthers(obj.GetChild(i), idOffset); 108 | } 109 | } 110 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkBehavior.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2610ba1f90ce15248aaa203f3e308b81 3 | timeCreated: 1465147032 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbe5b082a785e7641bf1a62b930a3f5a 3 | timeCreated: 1463976608 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkObjectFactory.cs: -------------------------------------------------------------------------------- 1 | using BeardedManStudios.Forge.Networking.Frame; 2 | 3 | namespace BeardedManStudios.Forge.Networking.Generated 4 | { 5 | public partial class NetworkObjectFactory 6 | { 7 | private bool ValidateCreateRequest(NetWorker networker, int identity, uint id, FrameStream frame) 8 | { 9 | // TODO: Write custom code to validate client object create requests 10 | return true; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkObjectFactory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1ab2513482442943baced150114de31 3 | timeCreated: 1483573838 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkObjectFactoryBase.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using BeardedManStudios.Forge.Networking.Frame; 4 | using System; 5 | 6 | namespace BeardedManStudios.Forge.Networking 7 | { 8 | public class NetworkObjectFactoryBase : INetworkObjectFactory 9 | { 10 | public virtual void NetworkCreateObject(NetWorker networker, int identity, uint id, FrameStream frame, Action callback) 11 | { 12 | //This is the final creation check before failing completely 13 | NetworkObject obj = null; 14 | 15 | switch (identity) 16 | { 17 | case Lobby.LobbyService.LobbyServiceNetworkObject.IDENTITY: 18 | obj = new Lobby.LobbyService.LobbyServiceNetworkObject(networker, id, frame); 19 | break; 20 | } 21 | 22 | if (callback != null) 23 | callback(obj); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/NetworkObjectFactoryBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90f8b807781bc384ca17aee42b51824d 3 | timeCreated: 1489222157 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Server Browser.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f06f68fc665e2c24d93fda38fc515c55 3 | folderAsset: yes 4 | timeCreated: 1464238180 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Server Browser/ServerBrowser.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a93ace8436dda2f46ba0a3e6bc0a3ed0 3 | timeCreated: 1464238214 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Server Browser/ServerBrowserItem.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | using UnityEngine.Events; 7 | 8 | namespace BeardedManStudios.Forge.Networking.Unity 9 | { 10 | public class ServerBrowserItem : MonoBehaviour 11 | { 12 | public Text NameText; 13 | public Button ConnectButton; 14 | 15 | public void SetData(string name, UnityAction callback) 16 | { 17 | NameText.text = name; 18 | ConnectButton.onClick.AddListener(callback); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/Server Browser/ServerBrowserItem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0a33e8ddb6f69242a11dec373c77b28 3 | timeCreated: 1502253269 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Bearded Man Studios Inc/Scripts/UnityObjectMapper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4cabd7ca933031a4687b23492ffc5192 3 | timeCreated: 1464305804 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 813f6b9150c8ffc409269dd9e9f3f00f 3 | folderAsset: yes 4 | timeCreated: 1531424273 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6dc283de48c4b444caacb8246763f139 3 | folderAsset: yes 4 | timeCreated: 1531424273 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f95a1e1239c3e4949843d4c102644038 3 | folderAsset: yes 4 | timeCreated: 1531424273 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ebb48e814494d741b49feb4687e86aa 3 | timeCreated: 1531424288 4 | licenseType: Free 5 | PluginImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | iconMap: {} 9 | executionOrder: {} 10 | isPreloaded: 0 11 | isOverridable: 0 12 | platformData: 13 | - first: 14 | Any: 15 | second: 16 | enabled: 0 17 | settings: {} 18 | - first: 19 | Editor: Editor 20 | second: 21 | enabled: 1 22 | settings: 23 | DefaultValueInitialized: true 24 | - first: 25 | Windows Store Apps: WindowsStoreApps 26 | second: 27 | enabled: 0 28 | settings: 29 | CPU: AnyCPU 30 | userData: 31 | assetBundleName: 32 | assetBundleVariant: 33 | -------------------------------------------------------------------------------- /AssetsLogs/bmslog.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Relic/AuthoritativeMovementExample/e4922771b2a7448710c724e136e0c4410082acf1/AssetsLogs/bmslog.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Trevor J. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | m_AutoSyncTransforms: 1 21 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Bearded Man Studios Inc/Scenes/MultiplayerMenu.unity 10 | guid: a5b9e296c950dcc4d862eeda4ce5052a 11 | - enabled: 1 12 | path: Assets/AuthoritativeMovementExample/scene/AuthoritativeMovementExample.unity 13 | guid: 8f7cfb602031be34c920b35dbfad5b58 14 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_DefaultBehaviorMode: 1 10 | m_SpritePackerMode: 4 11 | m_SpritePackerPaddingPower: 1 12 | m_EtcTextureCompressorBehavior: 1 13 | m_EtcTextureFastCompressor: 1 14 | m_EtcTextureNormalCompressor: 2 15 | m_EtcTextureBestCompressor: 4 16 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 17 | m_ProjectGenerationRootNamespace: 18 | m_UserGeneratedProjectSuffix: 19 | m_CollabEditorSettings: 20 | inProgressEnabled: 1 21 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 0 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2017.2.5f1 2 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.01666667 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 1 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 0 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /UnityPackageManager/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | } 4 | } 5 | --------------------------------------------------------------------------------