diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/2_ConfigureMultiplayerPlayMode.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/2_ConfigureMultiplayerPlayMode.asset new file mode 100644 index 000000000..d649b1f40 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/2_ConfigureMultiplayerPlayMode.asset @@ -0,0 +1,37 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89305aa391d1c5141bbe1628d930a2c5, type: 3} + m_Name: 2_ConfigureMultiplayerPlayMode + m_EditorClassIdentifier: + Modified: + m_PersistentCalls: + m_Calls: [] + ParentContainer: {fileID: 11400000, guid: fe1f704f40b86474886be5fd9d91996b, type: 2} + OrderInView: 2 + BackgroundImage: {fileID: 2800000, guid: 22516e77f839a40198de37712c3365d2, type: 3} + Title: + m_Untranslated: Multiplayer Workflows Configuration + Subtitle: + m_Untranslated: Learn how to enable Multiplayer workflows within your project. + Description: + m_Untranslated: + ProjectLayout: {fileID: 0} + Sections: + - OrderInView: 0 + Heading: + m_Untranslated: Multiplayer Workflows Setup Guide + Text: + m_Untranslated: Learn how to enable Multiplayer workflows. + Metadata: + Url: + Image: {fileID: 2800000, guid: 0fd6a562b697746d79629bec3fdc257f, type: 3} + Tutorial: {fileID: 11400000, guid: 3fbaca52b7aa145468af4adcdc8de777, type: 2} diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/2_ConfigureMultiplayerPlayMode.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/2_ConfigureMultiplayerPlayMode.asset.meta new file mode 100644 index 000000000..f80f6f389 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/2_ConfigureMultiplayerPlayMode.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 373672cf0fbe84b6aa0d006ed7aeaca7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/3_SampleTutorials.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/3_SampleTutorials.asset new file mode 100644 index 000000000..7ee21612e --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/3_SampleTutorials.asset @@ -0,0 +1,38 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89305aa391d1c5141bbe1628d930a2c5, type: 3} + m_Name: 3_SampleTutorials + m_EditorClassIdentifier: + Modified: + m_PersistentCalls: + m_Calls: [] + ParentContainer: {fileID: 11400000, guid: fe1f704f40b86474886be5fd9d91996b, type: 2} + OrderInView: 3 + BackgroundImage: {fileID: 2800000, guid: 4e3cf75c7adda4408ac5f9c7d0cb1dfb, type: 3} + Title: + m_Untranslated: Sample Tutorials + Subtitle: + m_Untranslated: Learn about the specific features and workflows of this sample. + Description: + m_Untranslated: + ProjectLayout: {fileID: 0} + Sections: + - OrderInView: 0 + Heading: + m_Untranslated: Content Selection + Text: + m_Untranslated: Learn how to filter gameplay content depending on Multiplayer + Roles. + Metadata: + Url: + Image: {fileID: 2800000, guid: 0fd6a562b697746d79629bec3fdc257f, type: 3} + Tutorial: {fileID: 11400000, guid: c70bd412514ea45c4b25ee87242c14a4, type: 2} diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/3_SampleTutorials.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/3_SampleTutorials.asset.meta new file mode 100644 index 000000000..03f6cb71d --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Homepage/3_SampleTutorials.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e9af0365bc004497997151633997a3c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Dedicated_Game_Server_Welcome.png.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Dedicated_Game_Server_Welcome.png.meta index 12636daa6..3bb645e72 100644 --- a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Dedicated_Game_Server_Welcome.png.meta +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Dedicated_Game_Server_Welcome.png.meta @@ -97,21 +97,21 @@ TextureImporter: serializedVersion: 2 sprites: [] outline: [] - customData: + customData: physicsShape: [] bones: [] - spriteID: + spriteID: internalID: 0 vertices: [] - indices: + indices: edges: [] weights: [] secondaryTextures: [] spriteCustomMetadata: entries: [] nameFileIdTable: {} - mipmapLimitGroupName: + mipmapLimitGroupName: pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_004.png b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_004.png new file mode 100644 index 000000000..489922b43 Binary files /dev/null and b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_004.png differ diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_004.png.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_004.png.meta new file mode 100644 index 000000000..109d86788 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_004.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 1cb97f257e8994a5c8545f0976b6c8ce +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_007.png b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_007.png new file mode 100644 index 000000000..f19361db7 Binary files /dev/null and b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_007.png differ diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_007.png.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_007.png.meta new file mode 100644 index 000000000..56efaa277 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_007.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 4e3cf75c7adda4408ac5f9c7d0cb1dfb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_009.png b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_009.png new file mode 100644 index 000000000..9e7bf47e7 Binary files /dev/null and b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_009.png differ diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_009.png.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_009.png.meta new file mode 100644 index 000000000..ac009c5b1 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Images/Feature_Image_009.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 22516e77f839a40198de37712c3365d2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode.meta new file mode 100644 index 000000000..0ab34d9c5 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 12e994f3eefca4875b8a83792c6b9768 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/1-Setup Multiplayer Play Mode.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/1-Setup Multiplayer Play Mode.asset new file mode 100644 index 000000000..ae0ccb9d3 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/1-Setup Multiplayer Play Mode.asset @@ -0,0 +1,118 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 1-Setup Multiplayer Play Mode + m_EditorClassIdentifier: + Title: + m_Untranslated: Configure Multiplayer Workflows + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: 'The Dedicated Game Server sample uses Multiplayer + Play Mode so that you can test multiplayer gameplay in multiple virtual + players. ' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: [] + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/1-Setup Multiplayer Play Mode.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/1-Setup Multiplayer Play Mode.asset.meta new file mode 100644 index 000000000..a7bfb3af3 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/1-Setup Multiplayer Play Mode.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b174deab55cf04057bcdea33e476d712 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/2-Create a Virtual Player.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/2-Create a Virtual Player.asset new file mode 100644 index 000000000..ea0c9e5c2 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/2-Create a Virtual Player.asset @@ -0,0 +1,197 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 2-Create a Virtual Player + m_EditorClassIdentifier: + Title: + m_Untranslated: Multiplayer Play Mode Window + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: + - m_SelectorType: 1 + m_ViewType: + m_TypeName: UnityEditor.Toolbar, UnityEditor.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_FocusEditorWindow: 1 + m_EditorWindowType: + m_TypeName: Unity.Multiplayer.Playmode.WorkflowUI.Editor.MultiplayerWindow, + Unity.Multiplayer.Playmode.WorkflowUI.Editor, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + m_AlternateEditorWindowTypes: + m_Items: [] + m_MaskType: 0 + m_MaskSizeModifier: 0 + m_UnmaskedControls: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: "To open the Multiplayer Play Mode window: \n\n1. Go to + Window > Multiplayer > Multiplayer Play Mode.\n\n2. + Select the checkbox for Virtual Player 2. This player opens when you enter + Play mode.\n\n3. Wait for the Player status to change from inactive to + active for Virtual Player 2.\n\nWhen active, the Virtual Player(s) appear + in Play Mode in the main Editor Player window. A separate window opens + for each enabled Player with the Player name as the window title." + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 1 + Title: + m_Untranslated: Create a Virtual Player + Text: + m_Untranslated: Press Next to continue. + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: + - Type: + m_TypeName: Unity.Tutorials.Core.Editor.ArbitraryCriterion, Unity.Tutorials.Core.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + Criterion: {fileID: 3135031496739192239} + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 1 + Showing: + m_PersistentCalls: + m_Calls: [] + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done +--- !u!114 &3135031496739192239 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7231e8df50e16c74c979c4a2affab91b, type: 3} + m_Name: + m_EditorClassIdentifier: + Completed: + m_PersistentCalls: + m_Calls: [] + Invalidated: + m_PersistentCalls: + m_Calls: [] + isTesting: 0 + m_Callback: + _target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + _methodName: IsVirtualPlayerCreated + _args: [] + _dynamic: 0 + _typeName: Unity.Tutorials.Core.Editor.ArbitraryCriterion+BoolCallback, Unity.Tutorials.Core.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + dirty: 0 + m_AutoCompleteCallback: + _target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + _methodName: IsVirtualPlayerCreated + _args: [] + _dynamic: 0 + _typeName: Unity.Tutorials.Core.Editor.ArbitraryCriterion+BoolCallback, Unity.Tutorials.Core.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + dirty: 0 diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/2-Create a Virtual Player.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/2-Create a Virtual Player.asset.meta new file mode 100644 index 000000000..b501a62fb --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/2-Create a Virtual Player.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e275b477b19b844bb914244333e5e528 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/8-Virtual Player Successfully Created.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/8-Virtual Player Successfully Created.asset new file mode 100644 index 000000000..d6d34d97b --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/8-Virtual Player Successfully Created.asset @@ -0,0 +1,182 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 8-Virtual Player Successfully Created + m_EditorClassIdentifier: + Title: + m_Untranslated: Multiplayer Workflows Setup Complete! + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: + - m_SelectorType: 1 + m_ViewType: + m_TypeName: + m_FocusEditorWindow: 0 + m_EditorWindowType: + m_TypeName: UnityEditor.ProjectSettingsWindow, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_AlternateEditorWindowTypes: + m_Items: [] + m_MaskType: 0 + m_MaskSizeModifier: 0 + m_UnmaskedControls: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: Page title + Text: + m_Untranslated: 'Your project is now ready to enter Play mode with a Virtual + Player. + + + Note: Virtual Players do not automatically deactivate + when you close the Virtual Player window. To deactivate a Virtual Player, + deselect the checkbox for the active Virtual Player. + + + Continue + to the next tutorial to learn how to use Network Scene Visualization.' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 1 + Title: + m_Untranslated: Multiplayer Virtual Player created successfully + Text: + m_Untranslated: Select Done to exit this tutorial. + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 2 + Title: + m_Untranslated: + Text: + m_Untranslated: 'Next: Content Selection tutorial' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 11400000, guid: c70bd412514ea45c4b25ee87242c14a4, type: 2} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: [] + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/8-Virtual Player Successfully Created.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/8-Virtual Player Successfully Created.asset.meta new file mode 100644 index 000000000..4fa712fa7 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/8-Virtual Player Successfully Created.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 04b1c4018189045a2b1f8eaf533915eb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/Tutorial 1 - Multiplayer Play Mode Setup.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/Tutorial 1 - Multiplayer Play Mode Setup.asset new file mode 100644 index 000000000..5409bfde8 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/Tutorial 1 - Multiplayer Play Mode Setup.asset @@ -0,0 +1,65 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f107dc6d4c984c45bdafd3bb15f98f0, type: 3} + m_Name: Tutorial 1 - Multiplayer Play Mode Setup + m_EditorClassIdentifier: + TutorialTitle: + m_Untranslated: Multiplayer Play Mode Setup + m_ProgressTrackingEnabled: 1 + m_LessonId: 72333268-209d-437a-8b9f-648f2a5de6d3 + m_Version: 1 + m_ReturnToPreviousScenes: 1 + m_SceneManagementBehavior: 1 + m_Scenes: [] + m_DefaultSceneCameraSettings: + m_CameraMode: 1 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0.8660254 + m_Pivot: {x: -0.057315156, y: 2.4025753, z: -3.1758358} + m_Rotation: {x: 0.11971389, y: 0.0000004947269, z: 0.0000045024267, w: 0.9928206} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + m_WindowLayout: {fileID: 0} + m_Pages: + m_Items: + - {fileID: 11400000, guid: b174deab55cf04057bcdea33e476d712, type: 2} + - {fileID: 11400000, guid: e275b477b19b844bb914244333e5e528, type: 2} + - {fileID: 11400000, guid: 04b1c4018189045a2b1f8eaf533915eb, type: 2} + CompletionDialog: {fileID: 0} + Modified: + m_PersistentCalls: + m_Calls: [] + Initiated: + m_PersistentCalls: + m_Calls: [] + PageInitiated: + m_PersistentCalls: + m_Calls: [] + GoingBack: + m_PersistentCalls: + m_Calls: [] + Completed: + m_PersistentCalls: + m_Calls: [] + Quit: + m_PersistentCalls: + m_Calls: [] + m_Scene: {fileID: 0} + m_TutorialTitle: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/Tutorial 1 - Multiplayer Play Mode Setup.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/Tutorial 1 - Multiplayer Play Mode Setup.asset.meta new file mode 100644 index 000000000..c964b9d18 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial1_SetupMultiplayerPlayMode/Tutorial 1 - Multiplayer Play Mode Setup.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fbaca52b7aa145468af4adcdc8de777 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection.meta new file mode 100644 index 000000000..b9785c90d --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c07da0d246f14b2c9bb239734a4840e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/1-Setup Content Selection.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/1-Setup Content Selection.asset new file mode 100644 index 000000000..668d2a1c3 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/1-Setup Content Selection.asset @@ -0,0 +1,123 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 1-Setup Content Selection + m_EditorClassIdentifier: + Title: + m_Untranslated: Configure Content Selection + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: 'The Dedicated Game Server sample leverages Content + Selection such that the Components that are present in a Server are different + to those on clients. + + + We''ll explore the manner in which Components + are segmented for each Multiplayer Role, and Prefabs and Scenes that filter + content.' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: [] + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/1-Setup Content Selection.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/1-Setup Content Selection.asset.meta new file mode 100644 index 000000000..704fceef4 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/1-Setup Content Selection.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd803241d34da43879aa1ee6ce5bec07 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/2-Check Content Selection.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/2-Check Content Selection.asset new file mode 100644 index 000000000..2f38b4576 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/2-Check Content Selection.asset @@ -0,0 +1,167 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 2-Check Content Selection + m_EditorClassIdentifier: + Title: + m_Untranslated: Multiplayer Roles Settings + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: + - m_SelectorType: 1 + m_ViewType: + m_TypeName: + m_FocusEditorWindow: 1 + m_EditorWindowType: + m_TypeName: UnityEditor.ProjectSettingsWindow, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_AlternateEditorWindowTypes: + m_Items: [] + m_MaskType: 0 + m_MaskSizeModifier: 0 + m_UnmaskedControls: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: "To inspect and modify what Components are stripped per Multiplayer + Role:\n\n1. Go to Edit and select the Project Settings window. + \n\n2. Expand the Multiplayer tab and select Multiplayer Roles.\n\n3. + Here, the Server and the Clients tabs will display the custom components + that are stripped for each Multiplayer Role." + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 1 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 1 + Showing: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + m_TargetAssemblyTypeName: Unity.DedicatedGameServerSample.Editor.Tutorials.TutorialCallbacks, + Unity.DedicatedGameServerSample.Editor.Tutorials + m_MethodName: ShowMultiplayerRolesSettings + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/2-Check Content Selection.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/2-Check Content Selection.asset.meta new file mode 100644 index 000000000..26bb25a37 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/2-Check Content Selection.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25d4e36e4b2104b6a9d0cd8a73d9108a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/3-PlayerCharacter Prefab Overview.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/3-PlayerCharacter Prefab Overview.asset new file mode 100644 index 000000000..f13b538bc --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/3-PlayerCharacter Prefab Overview.asset @@ -0,0 +1,158 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 3-PlayerCharacter Prefab Overview + m_EditorClassIdentifier: + Title: + m_Untranslated: PlayerCharacter Prefab + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: + - m_SelectorType: 1 + m_ViewType: + m_TypeName: + m_FocusEditorWindow: 0 + m_EditorWindowType: + m_TypeName: UnityEditor.InspectorWindow, UnityEditor.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_AlternateEditorWindowTypes: + m_Items: [] + m_MaskType: 0 + m_MaskSizeModifier: 0 + m_UnmaskedControls: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: 'Let''s take a look at the PlayerCharacter Prefab. + This Prefab is composed of Components that only exist on Clients, on Servers, + and on both. + + + We''ll explore the scenario where Components are + set to exist on both Clients and the Server. + + + An example of + this is the NetworkedPlayerCharacter component. + + + This + script inherits from NetworkBehaviour. It synchronizes data and sends messages + between the server and clients. This Component exists on both clients and + the server, as is reflected by the Content Selection icon selected for + this Component.' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + m_TargetAssemblyTypeName: Unity.DedicatedGameServerSample.Editor.Tutorials.TutorialCallbacks, + Unity.DedicatedGameServerSample.Editor.Tutorials + m_MethodName: OpenPrefabView + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1092933507198879514, guid: 453db16f5dbae264a8d01c33e4839e6e, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/3-PlayerCharacter Prefab Overview.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/3-PlayerCharacter Prefab Overview.asset.meta new file mode 100644 index 000000000..f49314ce7 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/3-PlayerCharacter Prefab Overview.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 778c547a6f27e4964b78979eeb4e5bab +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/4-PlayerCharacter Prefab Client Components.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/4-PlayerCharacter Prefab Client Components.asset new file mode 100644 index 000000000..9fc62a6be --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/4-PlayerCharacter Prefab Client Components.asset @@ -0,0 +1,152 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 4-PlayerCharacter Prefab Client Components + m_EditorClassIdentifier: + Title: + m_Untranslated: PlayerCharacter Prefab Client Components + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: + - m_SelectorType: 1 + m_ViewType: + m_TypeName: + m_FocusEditorWindow: 0 + m_EditorWindowType: + m_TypeName: UnityEditor.InspectorWindow, UnityEditor.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_AlternateEditorWindowTypes: + m_Items: [] + m_MaskType: 0 + m_MaskSizeModifier: 0 + m_UnmaskedControls: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: 'The PlayerCharacter Prefab contains Components that + exist only on Client instances. + + + An example of this is the ClientPlayerColor + NetworkBehaviour. It uses the OwnerClientId assigned by Netcode for GameObjects + to determine what colour to display each Player. + + + As this is + purely a cosmetic gameplay matter, it can be safely filtered out from the + Server.' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + m_TargetAssemblyTypeName: Unity.DedicatedGameServerSample.Editor.Tutorials.TutorialCallbacks, + Unity.DedicatedGameServerSample.Editor.Tutorials + m_MethodName: OpenPrefabView + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1092933507198879514, guid: 453db16f5dbae264a8d01c33e4839e6e, type: 3} + m_ObjectArgumentAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/4-PlayerCharacter Prefab Client Components.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/4-PlayerCharacter Prefab Client Components.asset.meta new file mode 100644 index 000000000..341dce4ca --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/4-PlayerCharacter Prefab Client Components.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49cf294c9406e4b7ca60b1628da84732 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/5-GameScene01 Server Filtering.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/5-GameScene01 Server Filtering.asset new file mode 100644 index 000000000..c2af0053a --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/5-GameScene01 Server Filtering.asset @@ -0,0 +1,168 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 5-GameScene01 Server Filtering + m_EditorClassIdentifier: + Title: + m_Untranslated: In-Scene GameObject Filtering + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 1 + m_UnmaskedViews: + - m_SelectorType: 1 + m_ViewType: + m_TypeName: + m_FocusEditorWindow: 0 + m_EditorWindowType: + m_TypeName: UnityEditor.InspectorWindow, UnityEditor.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_AlternateEditorWindowTypes: + m_Items: [] + m_MaskType: 0 + m_MaskSizeModifier: 0 + m_UnmaskedControls: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: 'Lastly, we''ll take a look at GameObjects filtered out in + the context of a Scene. + + + We''ll open up the GameScene01 + scene and navigate to the AICharacterSpawn GameObject. + + + The + ServerAISpawner is responsible for spawning the server-driven AI + characters. + + + This entire GameObject, and its Components are + stripped from Clients, as indicated by its Content Selection icon.' + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + m_TargetAssemblyTypeName: Unity.DedicatedGameServerSample.Editor.Tutorials.TutorialCallbacks, + Unity.DedicatedGameServerSample.Editor.Tutorials + m_MethodName: LoadGameScene + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + Shown: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + m_TargetAssemblyTypeName: Unity.DedicatedGameServerSample.Editor.Tutorials.TutorialCallbacks, + Unity.DedicatedGameServerSample.Editor.Tutorials + m_MethodName: SelectObjectInHierarchyByName + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: AICharacterSpawner + m_BoolArgument: 0 + m_CallState: 1 + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/5-GameScene01 Server Filtering.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/5-GameScene01 Server Filtering.asset.meta new file mode 100644 index 000000000..c93587fd0 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/5-GameScene01 Server Filtering.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c553cba2c8c34f9db598bbfb5616952 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/6-Content Selection Overview Complete.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/6-Content Selection Overview Complete.asset new file mode 100644 index 000000000..e651b08aa --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/6-Content Selection Overview Complete.asset @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff771ccdf4150419d9ff4d342b069aae, type: 3} + m_Name: 6-Content Selection Overview Complete + m_EditorClassIdentifier: + Title: + m_Untranslated: Content Selection Tutorial Complete + m_Paragraphs: + m_Items: + - m_Type: 6 + Title: + m_Untranslated: + Text: + m_Untranslated: + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 0 + Title: + m_Untranslated: + Text: + m_Untranslated: You have now gone through the high level overview of Content + Selection. + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + - m_Type: 1 + Title: + m_Untranslated: Content Selection Overview complete + Text: + m_Untranslated: Select Done to exit this tutorial. + m_CodeSample: + m_PostInstructionImage: {fileID: 0} + m_Tutorial: {fileID: 0} + m_Image: {fileID: 0} + m_VideoUrl: + m_Video: {fileID: 0} + m_CriteriaCompletion: 0 + m_Criteria: + m_Items: [] + m_MaskingSettings: + m_MaskingEnabled: 0 + m_UnmaskedViews: [] + m_Summary: + m_Description: + m_InstructionBoxTitle: + m_InstructionText: + m_TutorialButtonText: + m_CameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + NextButton: + m_Untranslated: Next + DoneButton: + m_Untranslated: Done + m_CompletedSound: {fileID: 0} + m_AutoAdvance: 0 + Showing: + m_PersistentCalls: + m_Calls: [] + Shown: + m_PersistentCalls: + m_Calls: [] + Staying: + m_PersistentCalls: + m_Calls: [] + CriteriaValidated: + m_PersistentCalls: + m_Calls: [] + MaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + NonMaskingSettingsChanged: + m_PersistentCalls: + m_Calls: [] + m_OnBeforePageShown: + m_PersistentCalls: + m_Calls: [] + m_OnAfterPageShown: + m_PersistentCalls: + m_Calls: [] + m_OnTutorialPageStay: + m_PersistentCalls: + m_Calls: [] + m_OnBeforeTutorialQuit: + m_PersistentCalls: + m_Calls: [] + m_NextButton: Next + m_DoneButton: Done diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/6-Content Selection Overview Complete.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/6-Content Selection Overview Complete.asset.meta new file mode 100644 index 000000000..5f566a2c8 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/6-Content Selection Overview Complete.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 073fb1cb3c2ae4519b030408ec60d861 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/Tutorial 2 - Content Selection.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/Tutorial 2 - Content Selection.asset new file mode 100644 index 000000000..c25531055 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/Tutorial 2 - Content Selection.asset @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f107dc6d4c984c45bdafd3bb15f98f0, type: 3} + m_Name: Tutorial 2 - Content Selection + m_EditorClassIdentifier: + TutorialTitle: + m_Untranslated: Content Selection Overview + m_ProgressTrackingEnabled: 1 + m_LessonId: e2d148c4-7ac3-4a47-8e5e-f7eb1df22ae8 + m_Version: 0 + m_ReturnToPreviousScenes: 1 + m_SceneManagementBehavior: 0 + m_Scenes: [] + m_DefaultSceneCameraSettings: + m_CameraMode: 0 + m_FocusMode: 0 + m_Orthographic: 0 + m_Size: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0, w: 0} + m_FrameObject: + m_SceneGuid: + m_GameObjectGuid: + m_SerializedComponentType: + m_TypeName: + m_ComponentIndex: 0 + m_AssetObject: {fileID: 0} + m_Prefab: {fileID: 0} + m_Enabled: 0 + m_WindowLayout: {fileID: 0} + m_Pages: + m_Items: + - {fileID: 11400000, guid: cd803241d34da43879aa1ee6ce5bec07, type: 2} + - {fileID: 11400000, guid: 25d4e36e4b2104b6a9d0cd8a73d9108a, type: 2} + - {fileID: 11400000, guid: 778c547a6f27e4964b78979eeb4e5bab, type: 2} + - {fileID: 11400000, guid: 49cf294c9406e4b7ca60b1628da84732, type: 2} + - {fileID: 11400000, guid: 5c553cba2c8c34f9db598bbfb5616952, type: 2} + - {fileID: 11400000, guid: 073fb1cb3c2ae4519b030408ec60d861, type: 2} + CompletionDialog: {fileID: 0} + Modified: + m_PersistentCalls: + m_Calls: [] + Initiated: + m_PersistentCalls: + m_Calls: [] + PageInitiated: + m_PersistentCalls: + m_Calls: [] + GoingBack: + m_PersistentCalls: + m_Calls: [] + Completed: + m_PersistentCalls: + m_Calls: [] + Quit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11400000, guid: af1ac43a89738ed47bc67422d798da3e, type: 2} + m_TargetAssemblyTypeName: Unity.DedicatedGameServerSample.Editor.Tutorials.TutorialCallbacks, + Unity.DedicatedGameServerSample.Editor.Tutorials + m_MethodName: ExitPrefabView + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_Scene: {fileID: 0} + m_TutorialTitle: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/Tutorial 2 - Content Selection.asset.meta b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/Tutorial 2 - Content Selection.asset.meta new file mode 100644 index 000000000..69a601086 --- /dev/null +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/Tutorial2_ContentSelection/Tutorial 2 - Content Selection.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c70bd412514ea45c4b25ee87242c14a4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.asset b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.asset index 889f3160c..3d339e15b 100644 --- a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.asset +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.asset @@ -13,3 +13,4 @@ MonoBehaviour: m_Name: TutorialCallbacks m_EditorClassIdentifier: m_BootstrapScene: {fileID: 102900000, guid: 6e5c529b4669aaf4e9530f6c3f5e45f4, type: 3} + m_GameScene: {fileID: 102900000, guid: 59b8ab2dc12914f49abb89d9bf130ec3, type: 3} diff --git a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.cs b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.cs index 6e571b7b2..c2346133f 100644 --- a/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.cs +++ b/Experimental/DedicatedGameServer/Assets/Editor/Tutorials/TutorialCallbacks.cs @@ -1,14 +1,11 @@ using System; using System.IO; -using Unity.Multiplayer.Tools.Editor.MultiplayerToolsWindow; using Newtonsoft.Json.Linq; -using Unity.Services.Authentication; -using Unity.Services.Core; using Unity.Services.Multiplayer; using UnityEngine; using UnityEditor; using Unity.Tutorials.Core.Editor; -using UnityEngine.UIElements; +using UnityEditor.SceneManagement; namespace Unity.DedicatedGameServerSample.Editor.Tutorials { @@ -18,7 +15,11 @@ namespace Unity.DedicatedGameServerSample.Editor.Tutorials [CreateAssetMenu(fileName = k_DefaultFileName, menuName = "Tutorials/" + k_DefaultFileName + " Instance")] public class TutorialCallbacks : ScriptableObject { - [SerializeField] SceneAsset m_BootstrapScene; + [SerializeField] + SceneAsset m_BootstrapScene; + + [SerializeField] + SceneAsset m_GameScene; /// /// The default file name used to create asset of this class type. @@ -29,14 +30,10 @@ public class TutorialCallbacks : ScriptableObject bool m_IsEditorWindowFocused; - const float k_QuerySessionsInterval = 5f; - bool m_IsSessionCreatedByVirtualPlayer; bool m_IsSessionJoinedByEditor; - float m_TimeSinceLastSessionUpdate; - ISession m_JoinedSession; /// @@ -68,7 +65,25 @@ public void OpenURL(string url) public void LoadBootstrapScene() { - UnityEditor.SceneManagement.EditorSceneManager.OpenScene(AssetDatabase.GetAssetPath(m_BootstrapScene)); + EditorSceneManager.OpenScene(AssetDatabase.GetAssetPath(m_BootstrapScene)); + } + + public void LoadGameScene() + { + EditorSceneManager.OpenScene(AssetDatabase.GetAssetPath(m_GameScene)); + } + + public void SelectObjectInHierarchyByName(string objecName) + { + var obj = GameObject.Find(objecName); + if (obj != null) + { + Selection.activeObject = obj; + } + else + { + Debug.LogError($"Object with name {objecName} not found in scene."); + } } public bool IsConnectedToUgs() @@ -81,10 +96,9 @@ public void ShowServicesSettings() SettingsService.OpenProjectSettings("Project/Services"); } - [ContextMenu("Show Vivox Settings")] - public void ShowVivoxSettings() + public void ShowMultiplayerRolesSettings() { - SettingsService.OpenProjectSettings("Project/Services/Vivox"); + SettingsService.OpenProjectSettings("Project/Multiplayer"); } public bool IsVirtualPlayerCreated() @@ -107,52 +121,6 @@ public bool IsVirtualPlayerCreated() return false; } - public void OnOpenMultiplayerToolsWindowTutorialStarted() - { - MultiplayerToolsWindow.Open(); - m_IsEditorWindowFocused = false; - } - - public bool IsSceneViewFocused() - { - if (EditorWindow.focusedWindow != null && EditorWindow.focusedWindow.titleContent.text == "Scene") - { - m_IsEditorWindowFocused = true; - } - - return m_IsEditorWindowFocused; - } - - VisualElement m_SceneRoot; - - public void OnEnableNetSceneVisTutorialStarted() - { - m_SceneRoot = EditorWindow.GetWindow().rootVisualElement; - while (m_SceneRoot.parent != null) - { - m_SceneRoot = m_SceneRoot.parent; - } - } - - public bool IsNetworkVisualizationOverlayDisplayed() - { - return m_SceneRoot != null && m_SceneRoot.Q("NetVisToolbarOverlay") != null; - } - - public void ForceNetworkVisualizationOverlayDisplayed() - { - if (m_SceneRoot.Q("NetVisToolbarOverlay") == null) - { - var netSceneVis = m_SceneRoot.Q("Network Visualization"); - var netSceneVisButton = netSceneVis.Q