diff --git a/Assets/Editor/Tutorials/Homepage.meta b/Assets/Editor/Tutorials/Homepage.meta
new file mode 100644
index 000000000..7a2a3d121
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ca9c27a0c42006f48a61dace60da1dae
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset
new file mode 100644
index 000000000..c5207dde3
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8548f60d916a56db3cfbef9db7f6e46a10bea6e7f4885bea060c05cf4e2b592c
+size 3310
diff --git a/Assets/Editor/Tutorials/TableOfContents.asset.meta b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset.meta
similarity index 100%
rename from Assets/Editor/Tutorials/TableOfContents.asset.meta
rename to Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset.meta
diff --git a/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset
new file mode 100644
index 000000000..e31c67c93
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c16f97958fbc897c0311d98cca161ed16d2cacb9c386127b9afbdc1c03041ad1
+size 1216
diff --git a/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset.meta b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset.meta
new file mode 100644
index 000000000..7b18318f8
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5d69a76b0f9609842aa1b9d5722fe73c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Images.meta b/Assets/Editor/Tutorials/Images.meta
new file mode 100644
index 000000000..e81a14d5e
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3ddbd96be999570489a15892f46e591b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_008.png b/Assets/Editor/Tutorials/Images/Feature_Image_008.png
new file mode 100644
index 000000000..d276f28eb
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_008.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f350b3e22fa4522e7ac217db0b810653f7d2cbf37e5a913e4229cc04efb041f2
+size 662808
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_008.png.meta b/Assets/Editor/Tutorials/Images/Feature_Image_008.png.meta
new file mode 100644
index 000000000..7a759c292
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_008.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 0e9ea27979f7a4a5bb15caa2e6729425
+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/Assets/Editor/Tutorials/TableOfContents.asset b/Assets/Editor/Tutorials/TableOfContents.asset
deleted file mode 100644
index 3064ca599..000000000
--- a/Assets/Editor/Tutorials/TableOfContents.asset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f0ac9451724cbceb81d118990dd202b7147fc162dfcc1f44e7ab07c751b26614
-size 3777
diff --git a/Assets/Editor/Tutorials/Tutorial Welcome Page.asset b/Assets/Editor/Tutorials/Tutorial Welcome Page.asset
index 72ddcfc18..92e893860 100644
--- a/Assets/Editor/Tutorials/Tutorial Welcome Page.asset
+++ b/Assets/Editor/Tutorials/Tutorial Welcome Page.asset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:31df35e528089f3ff6019906e0b5396cfeaeaee38f4fe210b199ecdf9e27bd4d
-size 2404
+oid sha256:5324a2c2df7f4983887f5f31d8a7a934b43c6e0255e2fc9821fdaa3e52eb0d25
+size 3203
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS.meta
new file mode 100644
index 000000000..b0631a0e1
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 869e9875e764edd45a8c65d132e4ac4e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset
new file mode 100644
index 000000000..7614a7807
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:906b96219e7c7d6e763a0654834197a27bb67bc3f93752c43fbbaa784a7b45a7
+size 3035
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset.meta
new file mode 100644
index 000000000..a5147ebbe
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f8f4819713a447b4d88780a1f232be55
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset
new file mode 100644
index 000000000..bf1df5d5b
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdf61b105a1e633877187ab063da4c4d6b8734eae95cc403ec05d1983f0e4d7f
+size 6585
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset.meta
new file mode 100644
index 000000000..09c94f57d
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0a25191a04226774497720a897023462
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset
new file mode 100644
index 000000000..746ad923d
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac721dec4e2a4370270b1e70b4383351ec621fab2f7f8af27bc34b89ed1e3a17
+size 3302
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset.meta
new file mode 100644
index 000000000..bded08ad1
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 20a34659981c32947b4437c2e0df9876
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset
new file mode 100644
index 000000000..b45ec29e1
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:54db6af02dc3be072fc11e511152d7d6a69b59256e114d2f566ae4c856d8b5cb
+size 1795
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset.meta
new file mode 100644
index 000000000..2187d7cbb
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a5464225c4ee62499087728e8ee0a4d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Tutorials/TutorialCallbacks.cs b/Assets/Editor/Tutorials/TutorialCallbacks.cs
index 7a33ac6e0..d360baa2c 100644
--- a/Assets/Editor/Tutorials/TutorialCallbacks.cs
+++ b/Assets/Editor/Tutorials/TutorialCallbacks.cs
@@ -4,19 +4,19 @@
namespace Unity.Netcode.Samples.BossRoom
{
-
///
/// Implement your Tutorial callbacks here.
///
- [CreateAssetMenu(fileName = DefaultFileName, menuName = "Tutorials/" + DefaultFileName + " Instance")]
+ [CreateAssetMenu(fileName = k_DefaultFileName, menuName = "Tutorials/" + k_DefaultFileName + " Instance")]
public class TutorialCallbacks : ScriptableObject
{
- [SerializeField] SceneAsset m_StartupScene;
+ [SerializeField]
+ SceneAsset m_StartupScene;
///
/// The default file name used to create asset of this class type.
///
- public const string DefaultFileName = "TutorialCallbacks";
+ const string k_DefaultFileName = "TutorialCallbacks";
///
/// Creates a TutorialCallbacks asset and shows it in the Project window.
@@ -27,7 +27,7 @@ public class TutorialCallbacks : ScriptableObject
/// The created asset
public static ScriptableObject CreateAndShowAsset(string assetPath = null)
{
- assetPath = assetPath ?? $"{TutorialEditorUtils.GetActiveFolderPath()}/{DefaultFileName}.asset";
+ assetPath = assetPath ?? $"{TutorialEditorUtils.GetActiveFolderPath()}/{k_DefaultFileName}.asset";
var asset = CreateInstance();
AssetDatabase.CreateAsset(asset, AssetDatabase.GenerateUniqueAssetPath(assetPath));
EditorUtility.FocusProjectWindow(); // needed in order to make the selection of newly created asset to really work
@@ -40,35 +40,14 @@ public void StartTutorial(Tutorial tutorial)
TutorialWindow.StartTutorial(tutorial);
}
- public void FocusGameView()
- {
- /*
- * note: this solution is a bit weak, but it's the best we can do without accessing internal APIs.
- * we'll need to check that it works for Unity 6 as well
- */
- EditorApplication.ExecuteMenuItem("Window/General/Game");
- }
-
- public void FocusSceneView()
- {
- EditorApplication.ExecuteMenuItem("Window/General/Scene");
- }
-
- public bool IsRunningAsHost()
- {
- return NetworkManager.Singleton && NetworkManager.Singleton.IsHost;
- }
-
- public bool IsRunningAsServerOnly()
+ public bool IsConnectedToUgs()
{
- return NetworkManager.Singleton && NetworkManager.Singleton.IsServer
- && !NetworkManager.Singleton.IsClient;
+ return CloudProjectSettings.projectBound;
}
- public bool IsRunningAsClientOnly()
+ public void ShowServicesSettings()
{
- return NetworkManager.Singleton && !NetworkManager.Singleton.IsServer
- && NetworkManager.Singleton.IsClient;
+ SettingsService.OpenProjectSettings("Project/Services");
}
public void OpenURL(string url)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2d9ad413d..61b885927 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ Additional documentation and release notes are available at [Multiplayer Documen
* Added a welcome dialog to guide users on their first time experience (#888)
* Added a Table of Contents with helpful resources, that can be accessed from the `Tutorials > Show Tutorials` menu
* Added the Multiplayer Play Mode package v1.3.1 to the project (#890)
+* An In-Editor Tutorial walking through the process of associating your Unity project with a Unity Cloud ID has been added (#898)
### Changed
* Upgraded editor version to 6000.0.25f1 and upgraded Boss Room to Netcode for GameObjects v2.0.0 (#890)