diff --git a/Assets/Mirage/Components/NetworkMatchChecker.cs b/Assets/Mirage/Components/NetworkMatchChecker.cs deleted file mode 100644 index f5a1ad6c1f1..00000000000 --- a/Assets/Mirage/Components/NetworkMatchChecker.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace Mirage -{ - /// - /// Component that controls visibility of networked objects based on match id. - /// Any object with this component on it will only be visible to other objects in the same match. - /// This would be used to isolate players to their respective matches within a single game server instance. - /// - [DisallowMultipleComponent] - [AddComponentMenu("Network/NetworkMatchChecker")] - [RequireComponent(typeof(NetworkIdentity))] - [HelpURL("https://miragenet.github.io/Mirage/Articles/Components/NetworkMatchChecker.html")] - public class NetworkMatchChecker : NetworkVisibility - { - static readonly Dictionary> matchPlayers = new Dictionary>(); - - Guid currentMatch = Guid.Empty; - - [Header("Diagnostics")] - [SyncVar] - public string currentMatchDebug; - - /// - /// Set this to the same value on all networked objects that belong to a given match - /// - public Guid MatchId - { - get { return currentMatch; } - set - { - if (currentMatch == value) return; - - // cache previous match so observers in that match can be rebuilt - Guid previousMatch = currentMatch; - - // Set this to the new match this object just entered ... - currentMatch = value; - // ... and copy the string for the inspector because Unity can't show Guid directly - currentMatchDebug = currentMatch.ToString(); - - if (previousMatch != Guid.Empty) - { - // Remove this object from the hashset of the match it just left - matchPlayers[previousMatch].Remove(Identity); - - // RebuildObservers of all NetworkIdentity's in the match this object just left - RebuildMatchObservers(previousMatch); - } - - if (currentMatch != Guid.Empty) - { - // Make sure this new match is in the dictionary - if (!matchPlayers.ContainsKey(currentMatch)) - matchPlayers.Add(currentMatch, new HashSet()); - - // Add this object to the hashset of the new match - matchPlayers[currentMatch].Add(Identity); - - // RebuildObservers of all NetworkIdentity's in the match this object just entered - RebuildMatchObservers(currentMatch); - } - else - { - // Not in any match now...RebuildObservers will clear and add self - Identity.RebuildObservers(false); - } - } - } - - public void Awake() - { - Identity.OnStartServer.AddListener(OnStartServer); - } - - public void OnStartServer() - { - if (currentMatch == Guid.Empty) return; - - if (!matchPlayers.ContainsKey(currentMatch)) - matchPlayers.Add(currentMatch, new HashSet()); - - matchPlayers[currentMatch].Add(Identity); - - // No need to rebuild anything here. - // identity.RebuildObservers is called right after this from NetworkServer.SpawnObject - } - - void RebuildMatchObservers(Guid specificMatch) - { - foreach (NetworkIdentity networkIdentity in matchPlayers[specificMatch]) - if (networkIdentity != null) - networkIdentity.RebuildObservers(false); - } - - #region Observers - - /// - /// Callback used by the visibility system to determine if an observer (player) can see this object. - /// If this function returns true, the network connection will be added as an observer. - /// - /// Network connection of a player. - /// True if the player can see this object. - public override bool OnCheckObserver(INetworkPlayer player) - { - // Not Visible if not in a match - if (MatchId == Guid.Empty) - return false; - - NetworkMatchChecker networkMatchChecker = player.Identity.GetComponent(); - - if (networkMatchChecker == null) - return false; - - return networkMatchChecker.MatchId == MatchId; - } - - /// - /// Callback used by the visibility system to (re)construct the set of observers that can see this object. - /// Implementations of this callback should add network connections of players that can see this object to the observers set. - /// - /// The new set of observers for this object. - /// True if the set of observers is being built for the first time. - public override void OnRebuildObservers(HashSet observers, bool initialize) - { - if (currentMatch == Guid.Empty) return; - - foreach (NetworkIdentity networkIdentity in matchPlayers[currentMatch]) - if (networkIdentity != null && networkIdentity.Owner != null) - observers.Add(networkIdentity.Owner); - } - - #endregion - } -} diff --git a/Assets/Mirage/Components/NetworkMatchChecker.cs.meta b/Assets/Mirage/Components/NetworkMatchChecker.cs.meta deleted file mode 100644 index 7c7d6cfc4f2..00000000000 --- a/Assets/Mirage/Components/NetworkMatchChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1020a74962faada4b807ac5dc053a4cf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Mirage/Components/NetworkProximityChecker.cs b/Assets/Mirage/Components/NetworkProximityChecker.cs deleted file mode 100644 index 24d0b94a6cd..00000000000 --- a/Assets/Mirage/Components/NetworkProximityChecker.cs +++ /dev/null @@ -1,102 +0,0 @@ -using System.Collections.Generic; -using Mirage.Logging; -using UnityEngine; - -namespace Mirage -{ - /// - /// Component that controls visibility of networked objects for players. - /// Any object with this component on it will not be visible to players more than a (configurable) distance away. - /// - [AddComponentMenu("Network/NetworkProximityChecker")] - [RequireComponent(typeof(NetworkIdentity))] - [HelpURL("https://miragenet.github.io/Mirage/Articles/Components/NetworkProximityChecker.html")] - public class NetworkProximityChecker : NetworkVisibility - { - static readonly ILogger logger = LogFactory.GetLogger(typeof(NetworkProximityChecker)); - - /// - /// The maximim range that objects will be visible at. - /// - [Tooltip("The maximum range that objects will be visible at.")] - public int VisibilityRange = 10; - - /// - /// How often (in seconds) that this object should update the list of observers that can see it. - /// - [Tooltip("How often (in seconds) that this object should update the list of observers that can see it.")] - public float VisibilityUpdateInterval = 1; - - /// - /// Flag to force this object to be hidden for players. - /// If this object is a player object, it will not be hidden for that player. - /// - [Tooltip("Enable to force this object to be hidden from players.")] - public bool ForceHidden; - - public void Awake() - { - Identity.OnStartServer.AddListener(() => - { - InvokeRepeating(nameof(RebuildObservers), 0, VisibilityUpdateInterval); - }); - - Identity.OnStopServer.AddListener(() => - { - CancelInvoke(nameof(RebuildObservers)); - }); - } - - void RebuildObservers() - { - Identity.RebuildObservers(false); - } - - /// - /// Callback used by the visibility system to determine if an observer (player) can see this object. - /// If this function returns true, the network connection will be added as an observer. - /// - - /// Network connection of a player. - /// True if the player can see this object. - public override bool OnCheckObserver(INetworkPlayer player) - { - if (ForceHidden) - return false; - - return Vector3.Distance(player.Identity.transform.position, transform.position) < VisibilityRange; - } - - /// - /// Callback used by the visibility system to (re)construct the set of observers that can see this object. - /// Implementations of this callback should add network connections of players that can see this object to the observers set. - /// - /// The new set of observers for this object. - /// True if the set of observers is being built for the first time. - public override void OnRebuildObservers(HashSet observers, bool initialize) - { - // if force hidden then return without adding any observers. - if (ForceHidden) - return; - - // 'transform.' calls GetComponent, only do it once - Vector3 position = transform.position; - - // brute force distance check - // -> only player connections can be observers, so it's enough if we - // go through all connections instead of all spawned identities. - // -> compared to UNET's sphere cast checking, this one is orders of - // magnitude faster. if we have 10k monsters and run a sphere - // cast 10k times, we will see a noticeable lag even with physics - // layers. but checking to every connection is fast. - foreach (INetworkPlayer player in Server.Players) - { - // check distance - if (player != null && player.HasCharacter && Vector3.Distance(player.Identity.transform.position, position) < VisibilityRange) - { - observers.Add(player); - } - } - } - } -} diff --git a/Assets/Mirage/Components/Visibility/Inspectors.meta b/Assets/Mirage/Components/Visibility/Inspectors.meta new file mode 100644 index 00000000000..0e0998334f4 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Inspectors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0159ddd9ef54c6246a25e62f18ca6a6e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Components/Visibility/Inspectors/DistanceVisibilityFactory.cs b/Assets/Mirage/Components/Visibility/Inspectors/DistanceVisibilityFactory.cs new file mode 100644 index 00000000000..4b94395b840 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Inspectors/DistanceVisibilityFactory.cs @@ -0,0 +1,20 @@ +using Mirage.InterestManagement; +using UnityEngine; + +namespace Mirage.Components +{ + [DisallowMultipleComponent] + public class DistanceVisibilityFactory : VisibilitySystemFactory + { + /// + /// How often (in seconds) that this object should update the list of observers that can see it. + /// + [Tooltip("How often (in seconds) that this object should update the list of observers that can see it.")] + public float VisibilityUpdateInterval = 1; + + protected override VisibilitySystem CreateSystem(ServerObjectManager serverObjectManager) + { + return new DistanceVisibilitySystem(serverObjectManager, VisibilityUpdateInterval); + } + } +} diff --git a/Assets/Tests/Runtime/NetworkIdentityCallbackTests.cs.meta b/Assets/Mirage/Components/Visibility/Inspectors/DistanceVisibilityFactory.cs.meta similarity index 83% rename from Assets/Tests/Runtime/NetworkIdentityCallbackTests.cs.meta rename to Assets/Mirage/Components/Visibility/Inspectors/DistanceVisibilityFactory.cs.meta index 7ecc98c8b6a..aa7c4615390 100644 --- a/Assets/Tests/Runtime/NetworkIdentityCallbackTests.cs.meta +++ b/Assets/Mirage/Components/Visibility/Inspectors/DistanceVisibilityFactory.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d30db0a07349e4eec880cda9012fbb0a +guid: 6ff90e5446e137744b6cc9e25057b31d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Mirage/Components/Visibility/Inspectors/SceneVisibilityFactory.cs b/Assets/Mirage/Components/Visibility/Inspectors/SceneVisibilityFactory.cs new file mode 100644 index 00000000000..a22e7e7cef1 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Inspectors/SceneVisibilityFactory.cs @@ -0,0 +1,14 @@ +using Mirage.InterestManagement; +using UnityEngine; + +namespace Mirage.Components +{ + [DisallowMultipleComponent] + public class SceneVisibilityFactory : VisibilitySystemFactory + { + protected override VisibilitySystem CreateSystem(ServerObjectManager serverObjectManager) + { + return new SceneVisibilitySystem(serverObjectManager); + } + } +} diff --git a/Assets/Tests/Runtime/NetworkMatchCheckerTest.cs.meta b/Assets/Mirage/Components/Visibility/Inspectors/SceneVisibilityFactory.cs.meta similarity index 83% rename from Assets/Tests/Runtime/NetworkMatchCheckerTest.cs.meta rename to Assets/Mirage/Components/Visibility/Inspectors/SceneVisibilityFactory.cs.meta index b3c51cf813f..f7480ed5bfb 100644 --- a/Assets/Tests/Runtime/NetworkMatchCheckerTest.cs.meta +++ b/Assets/Mirage/Components/Visibility/Inspectors/SceneVisibilityFactory.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2fa0a455ab9b4cf47b9eab0f2b03ce0c +guid: e4c4381337f94444284967d1ba1aa37b MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Mirage/Components/Visibility/Inspectors/VisibilitySystemFactory.cs b/Assets/Mirage/Components/Visibility/Inspectors/VisibilitySystemFactory.cs new file mode 100644 index 00000000000..cf812cc8857 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Inspectors/VisibilitySystemFactory.cs @@ -0,0 +1,26 @@ +using Mirage.InterestManagement; +using UnityEngine; + +namespace Mirage.Components +{ + public abstract class VisibilitySystemFactory : MonoBehaviour + { + public NetworkServer Server; + public VisibilitySystem System { get; private set; } + + private void Awake() + { + System = CreateSystem(Server.GetComponent()); + } + private void OnDestroy() + { + System?.ShutDown(); + System = null; + } + + /// + /// Do initialization of data inside of here. + /// + protected abstract VisibilitySystem CreateSystem(ServerObjectManager serverObjectManager); + } +} diff --git a/Assets/Mirage/Runtime/NetworkVisibility.cs.meta b/Assets/Mirage/Components/Visibility/Inspectors/VisibilitySystemFactory.cs.meta similarity index 83% rename from Assets/Mirage/Runtime/NetworkVisibility.cs.meta rename to Assets/Mirage/Components/Visibility/Inspectors/VisibilitySystemFactory.cs.meta index 1e6665899e3..309ea6ee9e5 100644 --- a/Assets/Mirage/Runtime/NetworkVisibility.cs.meta +++ b/Assets/Mirage/Components/Visibility/Inspectors/VisibilitySystemFactory.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c08f1a030234d49d391d7223a8592f15 +guid: a6268f70ff7bebb41976f3722f293e39 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Mirage/Components/Visibility/Proximity.meta b/Assets/Mirage/Components/Visibility/Proximity.meta new file mode 100644 index 00000000000..8eba6c89f60 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Proximity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7a59017d114fdd44b2496e58f2cac21 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Components/Visibility/Proximity/DistanceVisibilitySystem.cs b/Assets/Mirage/Components/Visibility/Proximity/DistanceVisibilitySystem.cs new file mode 100644 index 00000000000..e7f2c78b9b3 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Proximity/DistanceVisibilitySystem.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using Mirage.InterestManagement; +using Mirage.Logging; +using UnityEngine; + +// todo move this to sub namespace +namespace Mirage.Components +{ + [Serializable] + public struct ProximitySettings + { + /// + /// The maximum range that objects will be visible at. + /// + [Tooltip("The maximum range that objects will be visible at.")] + public float SightDistance; + + public ProximitySettings(float sightDistance) + { + SightDistance = sightDistance; + } + } + + public class DistanceVisibilitySystem : VisibilitySystem + { + static readonly ILogger Logger = LogFactory.GetLogger(typeof(DistanceVisibilitySystem)); + + private readonly float _updateInterval = 0; + private float _nextUpdate = 0; + private readonly Dictionary _proximityObjects = new Dictionary(); + + /// + /// Starts up a new instance of a network proximity visibility system. + /// + /// The reference to . + /// + public DistanceVisibilitySystem(ServerObjectManager serverObjectManager, float updateInterval) : base(serverObjectManager) + { + _updateInterval = updateInterval; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + static bool FastInDistanceXZ(Vector3 a, Vector3 b, float sqRange) + { + float dx = a.x - b.x; + float dz = a.z - b.z; + float sqDist = dx * dx + dz * dz; + return sqDist < sqRange; + } + + #region Overrides of NetworkVisibility + + /// + /// Invoked when an object is spawned in the server + /// It should show that object to all relevant players + /// + /// The object just spawned + public override void OnSpawned(NetworkIdentity identity) + { + // does object have owner? + if (identity.Owner != null) + { + RebuildForPlayer(identity.Owner); + } + } + + /// + /// When new player authenticates we need to show them objects they should see. + /// + /// The player that just authenticated and we need to show objects to. + public override void RebuildForPlayer(INetworkPlayer player) + { + // no owned object, nothing to see + if (player.Identity == null) { return; } + + Vector3 b = player.Identity.transform.position; + + foreach (KeyValuePair kvp in _proximityObjects) + { + NetworkIdentity identity = kvp.Key; + ProximitySettings setting = kvp.Value; + + Vector3 a = identity.transform.position; + + if (!FastInDistanceXZ(a, b, setting.SightDistance * setting.SightDistance)) continue; + + if (!Observers.ContainsKey(identity)) + Observers.Add(identity, new HashSet()); + else if (Observers.ContainsKey(identity) && !Observers[identity].Contains(player)) + Observers[identity].Add(player); + + InterestManager.ShowToPlayer(identity, player); + } + } + + /// + /// Checks for observers for each registered network object. + /// + public override void RebuildAll() + { + if (!(_nextUpdate < Time.time)) return; + + foreach (KeyValuePair kvp in _proximityObjects) + { + NetworkIdentity identity = kvp.Key; + ProximitySettings setting = kvp.Value; + if (!Observers.ContainsKey(identity)) continue; + + foreach (INetworkPlayer player in InterestManager.ServerObjectManager.Server.Players) + { + Observers.TryGetValue(identity, out HashSet players); + + if (player.Identity == null || identity == null) continue; + + if (FastInDistanceXZ(player.Identity.transform.position, identity.transform.position, setting.SightDistance * setting.SightDistance)) + { + if (players != null && players.Contains(player)) continue; + + Observers[identity].Add(player); + InterestManager.ShowToPlayer(identity, player); + } + else + { + if (players != null && !players.Contains(player)) continue; + + Observers[identity].Remove(player); + InterestManager.HideToPlayer(identity, player); + } + } + } + + _nextUpdate += _updateInterval; + } + + /// + /// Controls register new objects to this network visibility system + /// + /// Passing in specific settings for this network object. + public override void RegisterObject(NetworkIdentity identity, TSettings settings) + { + if (settings is ProximitySettings proximitySettings) + { + _proximityObjects.Add(identity, proximitySettings); + } + else + { + throw new ArgumentException($"Settings should be {nameof(ProximitySettings)}", nameof(settings)); + } + + if (!Observers.ContainsKey(identity)) + Observers.Add(identity, new HashSet()); + } + + /// + /// Controls un-register objects from this network visibility system + /// + public override void UnregisterObject(NetworkIdentity identity) + { + _proximityObjects.Remove(identity); + + Observers.Remove(identity); + } + + #endregion + } +} diff --git a/Assets/Mirage/Components/NetworkProximityChecker.cs.meta b/Assets/Mirage/Components/Visibility/Proximity/DistanceVisibilitySystem.cs.meta similarity index 74% rename from Assets/Mirage/Components/NetworkProximityChecker.cs.meta rename to Assets/Mirage/Components/Visibility/Proximity/DistanceVisibilitySystem.cs.meta index c5aa1123365..79e50e8ae38 100644 --- a/Assets/Mirage/Components/NetworkProximityChecker.cs.meta +++ b/Assets/Mirage/Components/Visibility/Proximity/DistanceVisibilitySystem.cs.meta @@ -5,7 +5,7 @@ MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 - icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3} + icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Mirage/Components/Visibility/Proximity/NetworkProximitySettings.cs b/Assets/Mirage/Components/Visibility/Proximity/NetworkProximitySettings.cs new file mode 100644 index 00000000000..47676f1cf8d --- /dev/null +++ b/Assets/Mirage/Components/Visibility/Proximity/NetworkProximitySettings.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +namespace Mirage.Components +{ + // todo find better name + [DisallowMultipleComponent] + public class NetworkProximitySettings : NetworkBehaviour + { + public ProximitySettings ProximitySettings = new ProximitySettings(10); + + private DistanceVisibilityFactory _networkProximityChecker; + + private void Awake() + { + Identity.OnStartServer.AddListener(OnStartServer); + Identity.OnStopServer.AddListener(OnStopServer); + } + + private void OnStartServer() + { + // todo find better way to get NetworkSceneChecker, FindObjectOfType wont work with multiple Servers + // maybe Server.GetComponent() + _networkProximityChecker = FindObjectOfType(); + Debug.Assert(_networkProximityChecker != null, "Could not found DistanceVisibilityFactory"); + _networkProximityChecker.System.RegisterObject(Identity, ProximitySettings); + } + + private void OnStopServer() + { + _networkProximityChecker.System.UnregisterObject(Identity); + } + } +} diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/NetworkSceneChecker.cs.meta b/Assets/Mirage/Components/Visibility/Proximity/NetworkProximitySettings.cs.meta similarity index 86% rename from Assets/Mirage/Components/Visibility/SceneChecking/NetworkSceneChecker.cs.meta rename to Assets/Mirage/Components/Visibility/Proximity/NetworkProximitySettings.cs.meta index b451655a379..2aa48be2a0b 100644 --- a/Assets/Mirage/Components/Visibility/SceneChecking/NetworkSceneChecker.cs.meta +++ b/Assets/Mirage/Components/Visibility/Proximity/NetworkProximitySettings.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b7fdb599e1359924bad6255660370252 +guid: f48e8760b46ce5b40b3053de7eb537a2 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/NetworkSceneChecker.cs b/Assets/Mirage/Components/Visibility/SceneChecking/NetworkSceneChecker.cs deleted file mode 100644 index 4819cfb5043..00000000000 --- a/Assets/Mirage/Components/Visibility/SceneChecking/NetworkSceneChecker.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System.Collections.Generic; -using Mirage.Logging; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace Mirage -{ - /// - /// Component that controls visibility of networked objects between scenes. - /// Any object with this component on it will only be visible to other objects in the same scene - /// This would be used when the server has multiple additive subscenes loaded to isolate players to their respective subscenes - /// - [DisallowMultipleComponent] - [AddComponentMenu("Network/NetworkSceneChecker")] - [RequireComponent(typeof(NetworkIdentity))] - [HelpURL("https://miragenet.github.io/Mirage/Articles/Components/NetworkSceneChecker.html")] - [System.Obsolete("This checker is inefficient, use SimpleSceneChecker instead")] - public class NetworkSceneChecker : NetworkVisibility - { - static readonly ILogger logger = LogFactory.GetLogger(typeof(NetworkSceneChecker)); - - /// - /// Flag to force this object to be hidden from all observers. - /// If this object is a player object, it will not be hidden for that client. - /// - [Tooltip("Enable to force this object to be hidden from all observers.")] - public bool forceHidden; - - // Use Scene instead of string scene.name because when additively loading multiples of a subscene the name won't be unique - static readonly Dictionary> sceneCheckerObjects = new Dictionary>(); - - Scene currentScene; - - void Awake() - { - Identity.OnStartServer.AddListener(OnStartServer); - } - - public void OnStartServer() - { - currentScene = gameObject.scene; - if (logger.LogEnabled()) logger.Log($"NetworkSceneChecker.OnStartServer currentScene: {currentScene}"); - - if (!sceneCheckerObjects.ContainsKey(currentScene)) - sceneCheckerObjects.Add(currentScene, new HashSet()); - - sceneCheckerObjects[currentScene].Add(Identity); - } - - [Server(error = false)] - void Update() - { - if (currentScene == gameObject.scene) - return; - - // This object is in a new scene so observers in the prior scene - // and the new scene need to rebuild their respective observers lists. - - // Remove this object from the hashset of the scene it just left - sceneCheckerObjects[currentScene].Remove(Identity); - - // RebuildObservers of all NetworkIdentity's in the scene this object just left - RebuildSceneObservers(); - - // Set this to the new scene this object just entered - currentScene = gameObject.scene; - - // Make sure this new scene is in the dictionary - if (!sceneCheckerObjects.ContainsKey(currentScene)) - sceneCheckerObjects.Add(currentScene, new HashSet()); - - // Add this object to the hashset of the new scene - sceneCheckerObjects[currentScene].Add(Identity); - - // RebuildObservers of all NetworkIdentity's in the scene this object just entered - RebuildSceneObservers(); - } - - void RebuildSceneObservers() - { - foreach (NetworkIdentity networkIdentity in sceneCheckerObjects[currentScene]) - if (networkIdentity != null) - networkIdentity.RebuildObservers(false); - } - - /// - /// Callback used by the visibility system to determine if an observer (player) can see this object. - /// If this function returns true, the network connection will be added as an observer. - /// - /// Network connection of a player. - /// True if the player can see this object. - public override bool OnCheckObserver(INetworkPlayer player) - { - if (forceHidden) - return false; - - return player.Identity.gameObject.scene == gameObject.scene; - } - - /// - /// Callback used by the visibility system to (re)construct the set of observers that can see this object. - /// Implementations of this callback should add network connections of players that can see this object to the observers set. - /// - /// The new set of observers for this object. - /// True if the set of observers is being built for the first time. - public override void OnRebuildObservers(HashSet observers, bool initialize) - { - // If forceHidden then return without adding any observers. - if (forceHidden) - return; - - // Add everything in the hashset for this object's current scene - foreach (NetworkIdentity networkIdentity in sceneCheckerObjects[currentScene]) - if (networkIdentity != null && networkIdentity.Owner != null) - observers.Add(networkIdentity.Owner); - } - } -} diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilityChecker.cs b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilityChecker.cs deleted file mode 100644 index 8601f94a37b..00000000000 --- a/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilityChecker.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System.Collections.Generic; -using Mirage.Logging; -using UnityEngine; -using UnityEngine.SceneManagement; - -namespace Mirage -{ - public class SceneVisibilityChecker : NetworkVisibility - { - static readonly ILogger logger = LogFactory.GetLogger(); - - public override bool OnCheckObserver(INetworkPlayer player) - { - NetworkIdentity character = player.Identity; - if (character == null) - { - if (logger.LogEnabled()) logger.Log($"SceneChecker: {player} had no character"); - return false; - } - - Scene playerScene = character.gameObject.scene; - if (!playerScene.IsValid()) - { - if (logger.WarnEnabled()) logger.LogWarning($"SceneChecker: Could not find scene for {player}"); - return false; - } - - Scene thisScene = gameObject.scene; - bool visible = playerScene == thisScene; - if (logger.LogEnabled()) logger.Log($"SceneChecker: {player} can see '{this}': {visible}"); - return visible; - } - - public override void OnRebuildObservers(HashSet observers, bool initialize) - { - foreach (INetworkPlayer player in Server.Players) - { - if (OnCheckObserver(player)) - { - observers.Add(player); - } - } - } - - /// - /// Call this function on an object to move it to a new scene and rebuild its observers - /// - /// - public void MoveToScene(Scene scene) - { - INetworkPlayer owner = Identity.Owner; - - // remove player from other clients - removeObservers(Identity); - - // remove other objects from player - if (owner != null) - owner.RemoveAllVisibleObjects(); - - // move player to new scene - SceneManager.MoveGameObjectToScene(Identity.gameObject, scene); - - // spawn new objects for player - if (owner != null) - ServerObjectManager.SpawnVisibleObjects(Identity.Owner); - } - - private void removeObservers(NetworkIdentity identity) - { - HashSet observers = identity.observers; - foreach (INetworkPlayer observer in observers) - { - observer.RemoveFromVisList(identity); - } - } - } -} diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySettings.cs b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySettings.cs new file mode 100644 index 00000000000..161ed323344 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySettings.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace Mirage.Components +{ + // todo find better name + public class SceneVisibilitySettings : NetworkBehaviour + { + private SceneVisibilityFactory _networkSceneChecker; + + private void Awake() + { + Identity.OnStartServer.AddListener(OnStartServer); + Identity.OnStopServer.AddListener(OnStopServer); + } + + private void OnStartServer() + { + // todo find better way to get NetworkSceneChecker, FindObjectOfType wont work with multiple Servers + // maybe Server.GetComponent() + _networkSceneChecker = FindObjectOfType(); + Debug.Assert(_networkSceneChecker != null, "Could not found SceneVisibilityFactory"); + _networkSceneChecker.System.RegisterObject(Identity, gameObject.scene); + } + + private void OnStopServer() + { + _networkSceneChecker.System.UnregisterObject(Identity); + } + } +} diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySettings.cs.meta b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySettings.cs.meta new file mode 100644 index 00000000000..6499ed70556 --- /dev/null +++ b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 292236f528856814a99281304cec6a9c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySystem.cs b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySystem.cs new file mode 100644 index 00000000000..0a77425c76c --- /dev/null +++ b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySystem.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using Mirage.InterestManagement; +using Mirage.Logging; +using UnityEngine; +using UnityEngine.SceneManagement; + +// todo move this to sub namespace +namespace Mirage +{ + public class SceneVisibilitySystem : VisibilitySystem + { + static readonly ILogger Logger = LogFactory.GetLogger(); + + #region Fields + + private readonly Dictionary _sceneObjects = new Dictionary(); + + #endregion + + /// + /// Call this function on an object to move it to a new scene and rebuild its observers + /// + /// The scene we want to move object to. + /// The object we want to move to scene. + public void MoveToScene(Scene scene, NetworkIdentity identity) + { + // Remove object from all player's + if (Observers.ContainsKey(identity)) + { + foreach (INetworkPlayer player in Observers[identity]) + { + InterestManager.HideToPlayer(identity, player); + } + + // Reset list to empty now. + Observers[identity] = new HashSet(); + } + + // move player to new scene + SceneManager.MoveGameObjectToScene(identity.gameObject, scene); + + // spawn new objects for player + foreach (INetworkPlayer player in InterestManager.ServerObjectManager.Server.Players) + { + if (player.Identity.gameObject.scene.handle != scene.handle) continue; + + InterestManager.ShowToPlayer(identity, player); + } + } + + public SceneVisibilitySystem(ServerObjectManager serverObjectManager) : base(serverObjectManager) + { + } + + #region Overrides of NetworkVisibility + + /// + /// Invoked when an object is spawned in the server + /// It should show that object to all relevant players + /// + /// The object just spawned + public override void OnSpawned(NetworkIdentity identity) + { + // does object have owner? + if (identity.Owner != null) + { + RebuildForPlayer(identity.Owner); + } + } + + /// + /// When new player authenticates we need to show them objects they should see. + /// + /// The player that just authenticated and we need to show objects to. + public override void RebuildForPlayer(INetworkPlayer player) + { + // no owned object, nothing to see + if (player.Identity == null) { return; } + + foreach (KeyValuePair kvp in _sceneObjects) + { + NetworkIdentity identity = kvp.Key; + Scene scene = kvp.Value; + if (scene != player.Identity.gameObject.scene) continue; + + if (!Observers.ContainsKey(identity)) + Observers.Add(identity, new HashSet()); + else if (Observers.ContainsKey(identity) && !Observers[identity].Contains(player)) + Observers[identity].Add(player); + + InterestManager.ShowToPlayer(identity, player); + } + + // Always show self to them. + InterestManager.ShowToPlayer(player.Identity, player); + } + + /// + /// Checks for observers for each registered network object. + /// + public override void RebuildAll() + { + //NOOP realistically this should only ever change if devs + // move game object to another scene manually. + } + + /// + /// Controls register new objects to this network visibility system + /// + public override void RegisterObject(NetworkIdentity identity, TSettings settings) + { + if (settings is Scene scene) + { + _sceneObjects.Add(identity, scene); + } + else + { + throw new ArgumentException($"Settings should be {nameof(Scene)}", nameof(settings)); + } + + if (!Observers.ContainsKey(identity)) + Observers.Add(identity, new HashSet()); + } + + /// + /// Controls un-register objects from this network visibility system + /// + public override void UnregisterObject(NetworkIdentity identity) + { + _sceneObjects.Remove(identity); + + Observers.Remove(identity); + } + + #endregion + } +} diff --git a/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilityChecker.cs.meta b/Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySystem.cs.meta similarity index 100% rename from Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilityChecker.cs.meta rename to Assets/Mirage/Components/Visibility/SceneChecking/SceneVisibilitySystem.cs.meta diff --git a/Assets/Mirage/Editor/NetworkInformationPreview.cs b/Assets/Mirage/Editor/NetworkInformationPreview.cs index 6cbfddfeccd..76a680c9d3f 100644 --- a/Assets/Mirage/Editor/NetworkInformationPreview.cs +++ b/Assets/Mirage/Editor/NetworkInformationPreview.cs @@ -172,7 +172,7 @@ float DrawNetworkBehaviors(NetworkIdentity identity, float initialX, float Y) float DrawObservers(NetworkIdentity identity, float initialX, float Y) { - if (identity.observers.Count > 0) + if (identity.ServerObjectManager?.InterestManager?.ObserverSystems.Count > 0) { var observerRect = new Rect(initialX, Y + 10, 200, 20); @@ -181,11 +181,14 @@ float DrawObservers(NetworkIdentity identity, float initialX, float Y) observerRect.x += 20; observerRect.y += observerRect.height; - foreach (INetworkPlayer player in identity.observers) + foreach (InterestManagement.VisibilitySystem system in identity.ServerObjectManager.InterestManager.ObserverSystems) { - GUI.Label(observerRect, player.Connection.EndPoint + ":" + player, styles.ComponentName); - observerRect.y += observerRect.height; - Y = observerRect.y; + foreach (INetworkPlayer player in system.Observers[identity]) + { + GUI.Label(observerRect, player.Connection.EndPoint + ":" + player, styles.ComponentName); + observerRect.y += observerRect.height; + Y = observerRect.y; + } } } diff --git a/Assets/Mirage/Mirage.asmdef b/Assets/Mirage/Mirage.asmdef index c54625edba7..70d9ce8a8ad 100644 --- a/Assets/Mirage/Mirage.asmdef +++ b/Assets/Mirage/Mirage.asmdef @@ -1,5 +1,6 @@ { "name": "Mirage", + "rootNamespace": "", "references": [ "UniTask", "UniTask.Linq", diff --git a/Assets/Mirage/Runtime/INetworkPlayer.cs b/Assets/Mirage/Runtime/INetworkPlayer.cs index d57c77f3404..3ea88b9345f 100644 --- a/Assets/Mirage/Runtime/INetworkPlayer.cs +++ b/Assets/Mirage/Runtime/INetworkPlayer.cs @@ -32,17 +32,6 @@ public interface IMessageReceiver void HandleMessage(INetworkPlayer player, ArraySegment packet); } - /// - /// An object that can observe NetworkIdentities. - /// this is useful for interest management - /// - public interface IVisibilityTracker - { - void AddToVisList(NetworkIdentity identity); - void RemoveFromVisList(NetworkIdentity identity); - void RemoveAllVisibleObjects(); - } - /// /// An object that can own networked objects /// @@ -59,7 +48,7 @@ public interface IObjectOwner /// An object owned by a player that can: send/receive messages, have network visibility, be an object owner, authenticated permissions, and load scenes. /// May be from the server to client or from client to server /// - public interface INetworkPlayer : IMessageSender, IVisibilityTracker, IObjectOwner, IAuthenticatedObject, ISceneLoader + public interface INetworkPlayer : IMessageSender, IObjectOwner, IAuthenticatedObject, ISceneLoader { SocketLayer.IConnection Connection { get; } void Disconnect(); diff --git a/Assets/Mirage/Runtime/InterestManagement.meta b/Assets/Mirage/Runtime/InterestManagement.meta new file mode 100644 index 00000000000..76c867efb11 --- /dev/null +++ b/Assets/Mirage/Runtime/InterestManagement.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ede2c13ec0f9ec4785dfab1a5d21c2b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Runtime/InterestManagement/InterestManager.cs b/Assets/Mirage/Runtime/InterestManagement/InterestManager.cs new file mode 100644 index 00000000000..0510f04ae92 --- /dev/null +++ b/Assets/Mirage/Runtime/InterestManagement/InterestManager.cs @@ -0,0 +1,282 @@ +using System.Collections.Generic; +using System.Linq; +using Mirage.Logging; +using Unity.Profiling; +using UnityEngine; + +namespace Mirage.InterestManagement +{ + public class InterestManager + { + static readonly ILogger Logger = LogFactory.GetLogger(typeof(InterestManager)); + + #region Fields + + public readonly ServerObjectManager ServerObjectManager; + private readonly HashSet _visibilitySystems = new HashSet(); + private HashSet _observers = new HashSet(); + + private static readonly ProfilerMarker ObserverProfilerMarker = new ProfilerMarker(nameof(Observers)); + private static readonly ProfilerMarker OnAuthenticatedProfilerMarker = new ProfilerMarker(nameof(RebuildForPlayer)); + private static readonly ProfilerMarker OnSpawnInWorldProfilerMarker = new ProfilerMarker(nameof(OnSpawn)); + private static readonly ProfilerMarker OnUpdateProfilerMarker = new ProfilerMarker(nameof(Update)); + private static readonly ProfilerMarker OnSendProfilerMarker = new ProfilerMarker(nameof(Send)); + + #endregion + + #region Properties + + public IReadOnlyCollection ObserverSystems => _visibilitySystems; + + #endregion + + #region Callback Listener's + + /// + /// When server stops we will un-register and clean up stuff. + /// + private void OnServerStopped() + { + ServerObjectManager.Server.Authenticated.RemoveListener(RebuildForPlayer); + + _visibilitySystems.Clear(); + _observers.Clear(); + } + + /// + /// When server starts up we will register our event listener's. + /// + private void OnServerStarted() + { + ServerObjectManager.Server.Authenticated.AddListener(RebuildForPlayer); + } + + /// + /// When player's finally authenticate to server we will check for visibility systems + /// and if any we will use that otherwise we will default to global system. + /// + /// The player we want to show or hide objects to. + public void RebuildForPlayer(INetworkPlayer player) + { + OnAuthenticatedProfilerMarker.Begin(); + + bool found = false; + + foreach (VisibilitySystem system in _visibilitySystems) + { + found = system.Observers.Any(x => x.Value.Contains(player)); + + system.RebuildForPlayer(player); + } + + if (!found) + { + foreach (NetworkIdentity identity in ServerObjectManager.Server.World.SpawnedIdentities) + { + ShowToPlayer(identity, player); + } + } + + OnAuthenticatedProfilerMarker.End(); + } + + /// + /// Object has spawned in. We should now notify all systems with the intended info so + /// each system can do what they need or want with the info. + /// + /// The newly spawned object. + internal void OnSpawn(NetworkIdentity identity) + { + OnSpawnInWorldProfilerMarker.Begin(); + + bool found = false; + + foreach (VisibilitySystem system in _visibilitySystems) + { + if (system.Observers.ContainsKey(identity)) + found = true; + + system.OnSpawned(identity); + } + + if (!found) + { + foreach (INetworkPlayer player in ServerObjectManager.Server.Players) + { + ShowToPlayer(identity, player); + } + } + + OnSpawnInWorldProfilerMarker.End(); + } + + internal void OnDestroy(NetworkIdentity identity) + { + Send(identity, new ObjectDestroyMessage { netId = identity.NetId }); + + // todo do we need to do anything else when an object is destoryed? (like remove it from systems) + } + + #endregion + + #region Class Specific + + /// + /// Central system to control and maintain checking for data for all observer visibility systems. + /// + /// The server object manager so we can pull info from it or send info from it. + public InterestManager(ServerObjectManager serverObjectManager) + { + ServerObjectManager = serverObjectManager; + + ServerObjectManager.Server?.Started.AddListener(OnServerStarted); + ServerObjectManager.Server?.Stopped.AddListener(OnServerStopped); + } + + /// + /// Sends spawn message to player if it is not loading a scene + /// + /// + /// + public void ShowToPlayer(NetworkIdentity identity, INetworkPlayer player) + { + // dont send if loading scene + if (player.SceneIsReady) + ServerObjectManager.SendSpawnMessage(identity, player); + } + + public void HideToPlayer(NetworkIdentity identity, INetworkPlayer player) + { + player.Send(new ObjectHideMessage { netId = identity.NetId }); + } + + internal void Update() + { + OnUpdateProfilerMarker.Begin(); + + foreach (VisibilitySystem system in _visibilitySystems) + { + system.RebuildAll(); + } + + OnUpdateProfilerMarker.End(); + } + + /// + /// Send a message to all observers of an identity + /// + /// + /// + /// + /// + protected internal void Send(NetworkIdentity identity, T msg, int channelId = Channel.Reliable, INetworkPlayer skip = null) + { + OnSendProfilerMarker.Begin(); + + Observers(identity); + + // remove skipped player. No need to send to them. + _observers.Remove(skip); + + if (_observers.Count == 0) + { + OnSendProfilerMarker.End(); + + return; + } + + NetworkServer.SendToMany(_observers, msg, channelId); + + OnSendProfilerMarker.End(); + } + + /// + /// Register a specific interest management system to the interest manager. + /// + /// The system we want to register in the interest manager. + internal bool RegisterSystem(VisibilitySystem system) + { + bool wasAdded = _visibilitySystems.Add(system); + + if (wasAdded) + { + if (Logger.logEnabled) Logger.Log($"[Interest Manager] - Registering system {system} to our manager."); + } + else + { + Logger.LogWarning("[InterestManager] - System already register to interest manager. Please check if this was correct."); + } + + return wasAdded; + } + + /// + /// Un-register a specific interest management system from the interest manager. + /// + /// The system we want to un-register from the interest manager. + internal bool UnregisterSystem(VisibilitySystem system) + { + bool wasRemoved = _visibilitySystems.Remove(system); + + if (wasRemoved) + { + if (Logger.logEnabled) Logger.Log($"[Interest Manager] - Un-Registering system {system} from our manager."); + } + else + { + Logger.LogWarning("[InterestManager] - Cannot find system in interest manager. Please check make sure it was registered."); + } + + return wasRemoved; + } + + + /// + /// Find out all the players that can see an object + /// + /// The identity of the object we want to check if player's can see it or not. + /// + private void Observers(NetworkIdentity identity) + { + ObserverProfilerMarker.Begin(); + + _observers.Clear(); + + switch (_visibilitySystems.Count == 0) + { + case true: + _observers = new HashSet(ServerObjectManager.Server.Players); + break; + default: + int inSystemsCount = 0; + + foreach (VisibilitySystem system in _visibilitySystems) + { + if (!system.Observers.ContainsKey(identity)) continue; + + inSystemsCount++; + + _observers.UnionWith(system.Observers[identity]); + } + + if (inSystemsCount <= 0) + { + _observers = new HashSet(ServerObjectManager.Server.Players); + } + else + { + // Multiple systems have been registered. We need to make sure the object is in all system observers + // to know that it is actually should be sending data. Always -1 because global is default. + if (inSystemsCount != _visibilitySystems.Count) + _observers.Clear(); + } + + break; + } + + ObserverProfilerMarker.End(); + } + + #endregion + } +} diff --git a/Assets/Mirage/Runtime/InterestManagement/InterestManager.cs.meta b/Assets/Mirage/Runtime/InterestManagement/InterestManager.cs.meta new file mode 100644 index 00000000000..2aed170981b --- /dev/null +++ b/Assets/Mirage/Runtime/InterestManagement/InterestManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ea8d3e6cc6bfc2240b7e9585a590bd85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Runtime/InterestManagement/VisibilitySystem.cs b/Assets/Mirage/Runtime/InterestManagement/VisibilitySystem.cs new file mode 100644 index 00000000000..f38c9f5135e --- /dev/null +++ b/Assets/Mirage/Runtime/InterestManagement/VisibilitySystem.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using Mirage.Logging; +using UnityEngine; + +namespace Mirage.InterestManagement +{ + public abstract class VisibilitySystem + { + private static readonly ILogger logger = LogFactory.GetLogger(); + protected readonly ServerObjectManager ServerObjectManager; + protected readonly InterestManager InterestManager; + + public readonly Dictionary> Observers = new Dictionary>(); + + protected VisibilitySystem(ServerObjectManager serverObjectManager) + { + ServerObjectManager = serverObjectManager ?? throw new ArgumentNullException(nameof(serverObjectManager)); + InterestManager = serverObjectManager.InterestManager; + InterestManager.RegisterSystem(this); + } + + public void ShutDown() + { + InterestManager.UnregisterSystem(this); + } + + /// + /// Invoked when an object is spawned in the server + /// It should show that object to all relevant players + /// + /// The object just spawned + public abstract void OnSpawned(NetworkIdentity identity); + + /// + /// When new player authenticates we need to show them objects they should see. + /// + /// The player that just authenticated and we need to show objects to. + public abstract void RebuildForPlayer(INetworkPlayer player); + + /// + /// Checks for observers for each registered network object. + /// + public abstract void RebuildAll(); + + /// + /// Controls register new objects to this network visibility system + /// + /// Passing in specific settings for this network object. + public abstract void RegisterObject(NetworkIdentity identity, TSettings settings); + + /// + /// Controls un-register objects from this network visibility system + /// + public abstract void UnregisterObject(NetworkIdentity identity); + } +} diff --git a/Assets/Mirage/Runtime/InterestManagement/VisibilitySystem.cs.meta b/Assets/Mirage/Runtime/InterestManagement/VisibilitySystem.cs.meta new file mode 100644 index 00000000000..51fdb414b98 --- /dev/null +++ b/Assets/Mirage/Runtime/InterestManagement/VisibilitySystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a49103f0b8572f4985531c7ce4f7b02 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Runtime/NetworkBehaviour.cs b/Assets/Mirage/Runtime/NetworkBehaviour.cs index 1f00f632eeb..50aa42087fe 100644 --- a/Assets/Mirage/Runtime/NetworkBehaviour.cs +++ b/Assets/Mirage/Runtime/NetworkBehaviour.cs @@ -316,10 +316,7 @@ protected internal void SendRpcInternal(Type invokeClass, string rpcName, Networ payload = writer.ToArraySegment() }; - // The public facing parameter is excludeOwner in [ClientRpc] - // so we negate it here to logically align with SendToReady. - bool includeOwner = !excludeOwner; - Identity.SendToRemoteObservers(message, includeOwner, channelId); + ServerObjectManager.InterestManager.Send(Identity, message, channelId, excludeOwner ? Owner : null); } protected internal void SendTargetRpcInternal(INetworkPlayer player, Type invokeClass, string rpcName, NetworkWriter writer, int channelId) diff --git a/Assets/Mirage/Runtime/NetworkIdentity.cs b/Assets/Mirage/Runtime/NetworkIdentity.cs index cb97512522d..5cc92f78895 100644 --- a/Assets/Mirage/Runtime/NetworkIdentity.cs +++ b/Assets/Mirage/Runtime/NetworkIdentity.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using Mirage.Events; using Mirage.Logging; using Mirage.RemoteCalls; @@ -138,11 +137,6 @@ public sealed class NetworkIdentity : MonoBehaviour /// public bool HasAuthority { get; internal set; } - /// - /// The set of network connections (players) that can see this object. - /// - public readonly HashSet observers = new HashSet(); - /// /// Unique identifier for this particular object instance, used for tracking objects between networked clients and the server. /// This is a unique identifier for this particular GameObject instance. Use it to track GameObjects between networked clients and the server. @@ -252,19 +246,6 @@ public NetworkBehaviour[] NetworkBehaviours } } - NetworkVisibility _visibility; - public NetworkVisibility Visibility - { - get - { - if (_visibility is null) - { - _visibility = GetComponent(); - } - return _visibility; - } - } - [SerializeField, HideInInspector] private int _prefabHash; public int PrefabHash @@ -384,15 +365,6 @@ internal void SetClientOwner(INetworkPlayer player) Owner = player; } - /// - /// this is used when a connection is destroyed, since the "observers" property is read-only - /// - /// - internal void RemoveObserverInternal(INetworkPlayer player) - { - observers.Remove(player); - } - /// /// hasSpawned should always be false before runtime /// @@ -491,28 +463,6 @@ internal void StopAuthority() _onAuthorityChanged.Invoke(false); } - /// - /// check if observer can be seen by connection. - /// - /// - /// returns visibility.OnCheckObserver - /// - /// - /// returns true if we have no NetworkVisibility, default objects are visible - /// - /// - /// - /// - /// - internal bool OnCheckObserver(INetworkPlayer player) - { - if (Visibility != null) - { - return Visibility.OnCheckObserver(player); - } - return true; - } - internal void StopClient() { _onStopClient.Invoke(); @@ -713,170 +663,6 @@ internal void SetClientValues(ClientObjectManager clientObjectManager, SpawnMess World = Client.World; } - /// - /// Called when NetworkIdentity is destroyed - /// - internal void ClearObservers() - { - foreach (INetworkPlayer player in observers) - { - player.RemoveFromVisList(this); - } - observers.Clear(); - } - - internal void AddObserver(INetworkPlayer player) - { - if (observers.Contains(player)) - { - // if we try to add a connectionId that was already added, then - // we may have generated one that was already in use. - return; - } - - if (logger.LogEnabled()) logger.Log($"Adding [{player.Connection.EndPoint}] as observer for {gameObject}"); - observers.Add(player); - player.AddToVisList(this); - - // spawn identity for this conn - ServerObjectManager.ShowToPlayer(this, player); - } - - /// - /// Helper function to call OnRebuildObservers in all components - /// HashSet is passed in so we can cache it! - /// Returns true if we have a NetworkVisibility, false otherwise - /// Initialize is true on first rebuild, false on consecutive rebuilds - /// - /// - /// - /// - internal bool GetNewObservers(HashSet observersSet, bool initialize) - { - observersSet.Clear(); - - if (Visibility != null) - { - Visibility.OnRebuildObservers(observersSet, initialize); - return true; - } - - // we have no NetworkVisibility. return false to indicate that we - // should use the default implementation. - return false; - } - - /// - /// Helper function to add all server connections as observers. - /// This is used if none of the components provides their own - /// OnRebuildObservers function. - /// - internal void AddAllReadyServerConnectionsToObservers() - { - // add all server connections - foreach (INetworkPlayer player in Server.Players) - { - if (player.SceneIsReady) - AddObserver(player); - } - - // add local host connection (if any) - if (Server.LocalPlayer != null && Server.LocalPlayer.SceneIsReady) - { - AddObserver(Server.LocalPlayer); - } - } - - static readonly HashSet newObservers = new HashSet(); - - /// - /// This causes the set of players that can see this object to be rebuild. - /// The OnRebuildObservers callback function will be invoked on each NetworkBehaviour. - /// - /// True if this is the first time. - public void RebuildObservers(bool initialize) - { - bool changed = false; - - // call OnRebuildObservers function - bool rebuildOverwritten = GetNewObservers(newObservers, initialize); - - // if player connection: ensure player always see himself no matter what. - // -> fixes https://github.com/vis2k/Mirror/issues/692 where a - // player might teleport out of the ProximityChecker's cast, - // losing the own connection as observer. - if (Owner != null && Owner.SceneIsReady) - { - newObservers.Add(Owner); - } - - // if no NetworkVisibility component, then add all server connections. - if (!rebuildOverwritten) - { - // only add all connections when rebuilding the first time. - // second time we just keep them without rebuilding anything. - if (initialize) - { - AddAllReadyServerConnectionsToObservers(); - } - return; - } - - changed = AddNewObservers(initialize, changed); - - changed = RemoveOldObservers(changed); - - if (changed) - { - observers.Clear(); - foreach (INetworkPlayer player in newObservers) - { - if (player != null && player.SceneIsReady) - observers.Add(player); - } - } - } - - // remove all old .observers that aren't in newObservers anymore - bool RemoveOldObservers(bool changed) - { - foreach (INetworkPlayer player in observers) - { - if (!newObservers.Contains(player)) - { - // removed observer - player.RemoveFromVisList(this); - ServerObjectManager.HideToPlayer(this, player); - - if (logger.LogEnabled()) logger.Log("Removed Observer for " + gameObject + " " + player); - changed = true; - } - } - - return changed; - } - - // add all newObservers that aren't in .observers yet - bool AddNewObservers(bool initialize, bool changed) - { - foreach (INetworkPlayer player in newObservers) - { - // only add ready connections. - // otherwise the player might not be in the world yet or anymore - if (player != null && player.SceneIsReady && (initialize || !observers.Contains(player))) - { - // new observer - player.AddToVisList(this); - // spawn identity for this conn - ServerObjectManager.ShowToPlayer(this, player); - if (logger.LogEnabled()) logger.Log("New Observer for " + gameObject + " " + player); - changed = true; - } - } - - return changed; - } - /// /// Assign control of an object to a client via the client's NetworkConnection. /// This causes hasAuthority to be set on the client that owns the object, and NetworkBehaviour.OnStartAuthority will be called on that client. This object then will be in the NetworkConnection.clientOwnedObjects list for the connection. @@ -958,7 +744,6 @@ internal void NetworkReset() Owner = null; networkBehavioursCache = null; - ClearObservers(); ResetEvents(); } @@ -975,16 +760,7 @@ private void ResetEvents() internal void UpdateVars() { - if (observers.Count > 0) - { - SendUpdateVarsMessage(); - } - else - { - // clear all component's dirty bits. - // it would be spawned on new observers anyway. - ClearAllComponentsDirtyBits(); - } + SendUpdateVarsMessage(); } void SendUpdateVarsMessage() @@ -1018,7 +794,8 @@ void SendUpdateVarsMessage() if (observersWritten > 0) { varsMessage.payload = observersWriter.ToArraySegment(); - SendToRemoteObservers(varsMessage, false); + + ServerObjectManager.InterestManager.Send(this, varsMessage, Channel.Reliable, Server.LocalPlayer); } // clear dirty bits only for the components that we serialized @@ -1033,49 +810,6 @@ void SendUpdateVarsMessage() } } - static readonly List connectionsExcludeSelf = new List(100); - - /// - /// Send a message to all the remote observers - /// - /// The message type - /// the message to deliver to to clients - /// Wether the owner should receive this message too - /// the transport channel that should be used to deliver the message - internal void SendToRemoteObservers(T msg, bool includeOwner = true, int channelId = Channel.Reliable) - { - if (logger.LogEnabled()) logger.Log("Server.SendToObservers id:" + typeof(T)); - - if (observers.Count == 0) - return; - - connectionsExcludeSelf.Clear(); - foreach (INetworkPlayer player in observers) - { - if (player == Server.LocalPlayer) - continue; - - if (includeOwner || Owner != player) - { - connectionsExcludeSelf.Add(player); - } - } - - if (connectionsExcludeSelf.Count > 0) - NetworkServer.SendToMany(connectionsExcludeSelf, msg, channelId); - } - - /// - /// clear all component's dirty bits no matter what - /// - internal void ClearAllComponentsDirtyBits() - { - foreach (NetworkBehaviour comp in NetworkBehaviours) - { - comp.ClearAllDirtyBits(); - } - } - /// /// Clear only dirty component's dirty bits. ignores components which /// may be dirty but not ready to be synced yet (because of syncInterval) diff --git a/Assets/Mirage/Runtime/NetworkIdentityIdGenerator.cs b/Assets/Mirage/Runtime/NetworkIdentityIdGenerator.cs index 65ff9300012..aebe89c3ab1 100644 --- a/Assets/Mirage/Runtime/NetworkIdentityIdGenerator.cs +++ b/Assets/Mirage/Runtime/NetworkIdentityIdGenerator.cs @@ -4,9 +4,6 @@ using System.Security.Cryptography; using UnityEngine; using Mirage.Logging; - - - using UnityEditor; #if UNITY_2021_2_OR_NEWER diff --git a/Assets/Mirage/Runtime/NetworkPlayer.cs b/Assets/Mirage/Runtime/NetworkPlayer.cs index d5a0b7beb63..0d5e05ebc0c 100644 --- a/Assets/Mirage/Runtime/NetworkPlayer.cs +++ b/Assets/Mirage/Runtime/NetworkPlayer.cs @@ -22,8 +22,6 @@ public sealed class NetworkPlayer : INetworkPlayer, IMessageSender { static readonly ILogger logger = LogFactory.GetLogger(typeof(NetworkPlayer)); - private readonly HashSet visList = new HashSet(); - /// /// Transport level connection /// @@ -165,29 +163,6 @@ public override string ToString() return $"connection({Address})"; } - public void AddToVisList(NetworkIdentity identity) - { - visList.Add(identity); - } - - public void RemoveFromVisList(NetworkIdentity identity) - { - visList.Remove(identity); - } - - /// - /// Removes all objects that this player can see - /// This is called when loading a new scene - /// - public void RemoveAllVisibleObjects() - { - foreach (NetworkIdentity identity in visList) - { - identity.RemoveObserverInternal(this); - } - visList.Clear(); - } - public void AddOwnedObject(NetworkIdentity networkIdentity) { clientOwnedObjects.Add(networkIdentity); diff --git a/Assets/Mirage/Runtime/NetworkSceneManager.cs b/Assets/Mirage/Runtime/NetworkSceneManager.cs index 3cb4ae6df5b..6bc159027e7 100644 --- a/Assets/Mirage/Runtime/NetworkSceneManager.cs +++ b/Assets/Mirage/Runtime/NetworkSceneManager.cs @@ -551,8 +551,8 @@ public void SetClientNotReady(INetworkPlayer player) if (player.SceneIsReady) { if (logger.LogEnabled()) logger.Log("PlayerNotReady " + player); + player.SceneIsReady = false; - player.RemoveAllVisibleObjects(); player.Send(new SceneNotReadyMessage()); } diff --git a/Assets/Mirage/Runtime/NetworkVisibility.cs b/Assets/Mirage/Runtime/NetworkVisibility.cs deleted file mode 100644 index 1e007569e2d..00000000000 --- a/Assets/Mirage/Runtime/NetworkVisibility.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Mirage -{ - // the name NetworkProximityCheck implies that it's only about objects in - // proximity to the player. But we might have room based, guild based, - // instanced based checks too, so NetworkVisibility is more fitting. - // - // note: we inherit from NetworkBehaviour so we can reuse .Identity, etc. - // note: unlike UNET, we only allow 1 proximity checker per NetworkIdentity. - [DisallowMultipleComponent] - public abstract class NetworkVisibility : NetworkBehaviour - { - /// - /// Callback used by the visibility system to determine if an observer (player) can see this object. - /// If this function returns true, the network connection will be added as an observer. - /// - /// Network connection of a player. - /// True if the player can see this object. - public abstract bool OnCheckObserver(INetworkPlayer player); - - /// - /// Callback used by the visibility system to (re)construct the set of observers that can see this object. - /// Implementations of this callback should add network connections of players that can see this object to the observers set. - /// - /// NOTE: override this function if you want to optimize this loop in your visibility, - /// for example if you need to call GetComponent on this object you can call it once at the start of the loop - /// - /// - /// The new set of observers for this object. - /// True if the set of observers is being built for the first time. - public virtual void OnRebuildObservers(HashSet observers, bool initialize) - { - foreach (INetworkPlayer player in Server.Players) - { - if (OnCheckObserver(player)) - { - observers.Add(player); - } - } - } - } -} diff --git a/Assets/Mirage/Runtime/ServerObjectManager.cs b/Assets/Mirage/Runtime/ServerObjectManager.cs index 92b90226a59..459f218e622 100644 --- a/Assets/Mirage/Runtime/ServerObjectManager.cs +++ b/Assets/Mirage/Runtime/ServerObjectManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Mirage.InterestManagement; using Mirage.Logging; using Mirage.RemoteCalls; using Mirage.Serialization; @@ -46,6 +47,17 @@ public class ServerObjectManager : MonoBehaviour, IServerObjectManager [FormerlySerializedAs("networkSceneManager")] public NetworkSceneManager NetworkSceneManager; + private InterestManager _interestManager; + public InterestManager InterestManager + { + get + { + if (_interestManager is null) + _interestManager = new InterestManager(this); + return _interestManager; + } + } + uint nextNetworkId = 1; uint GetNextNetworkId() => checked(nextNetworkId++); @@ -60,11 +72,18 @@ public void Start() if (NetworkSceneManager != null) { NetworkSceneManager.OnServerFinishedSceneChange.AddListener(OnFinishedSceneChange); - NetworkSceneManager.OnPlayerSceneReady.AddListener(SpawnVisibleObjects); } } } + public void Update() + { + // todo move this to NetworkServer + // NetworkServer should decide when things get rebuild not unity + // this'll be more important when we add tick stuff + InterestManager?.Update(); + } + internal void RegisterMessageHandlers() { Server.MessageHandler.RegisterHandler(OnServerRpcMessage); @@ -205,7 +224,7 @@ public void ReplaceCharacter(INetworkPlayer player, NetworkIdentity identity, bo player.Identity = identity; - // Set the connection on the NetworkIdentity on the server, NetworkIdentity.SetLocalPlayer is not called on the server (it is on clients) + // Set the player on the NetworkIdentity on the server identity.SetClientOwner(player); // special case, we are in host mode, set hasAuthority to true so that all overrides see it @@ -215,9 +234,7 @@ public void ReplaceCharacter(INetworkPlayer player, NetworkIdentity identity, bo Server.LocalClient.Player.Identity = identity; } - // add connection to observers AFTER the playerController was set. - // by definition, there is nothing to observe if there is no player - // controller. + // add player to observers AFTER the character is set. // // IMPORTANT: do this in AddCharacter & ReplaceCharacter! SpawnVisibleObjectForPlayer(player); @@ -241,22 +258,7 @@ void SpawnVisibleObjectForPlayer(INetworkPlayer player) return; } - // add connection to each nearby NetworkIdentity's observers, which - // internally sends a spawn message for each one to the connection. - foreach (NetworkIdentity identity in Server.World.SpawnedIdentities) - { - // todo, do we only need to spawn active objects here? or all objects? - if (identity.gameObject.activeSelf) - { - if (logger.LogEnabled()) logger.Log($"Checking Observers on server objects name='{identity.name}' netId={identity.NetId} sceneId={identity.SceneId:X}"); - - bool visible = identity.OnCheckObserver(player); - if (visible) - { - identity.AddObserver(player); - } - } - } + InterestManager.RebuildForPlayer(player); } /// @@ -332,9 +334,6 @@ public void AddCharacter(INetworkPlayer player, NetworkIdentity identity) Server.LocalClient.Player.Identity = identity; } - // spawn any new visible scene objects - SpawnVisibleObjects(player); - if (logger.LogEnabled()) logger.Log($"Adding new playerGameObject object netId: {identity.NetId} asset ID {identity.PrefabHash:X}"); Respawn(identity); @@ -354,23 +353,6 @@ void Respawn(NetworkIdentity identity) } } - /// - /// Sends spawn message to player if it is not loading a scene - /// - /// - /// - internal void ShowToPlayer(NetworkIdentity identity, INetworkPlayer player) - { - // dont send if loading scene - if (player.SceneIsReady) - SendSpawnMessage(identity, player); - } - - internal void HideToPlayer(NetworkIdentity identity, INetworkPlayer player) - { - player.Send(new ObjectHideMessage { netId = identity.NetId }); - } - /// /// Removes the character from a player, with the option to keep the player as the owner of the object /// @@ -539,7 +521,7 @@ public void Spawn(NetworkIdentity identity, INetworkPlayer owner) if (logger.LogEnabled()) logger.Log($"SpawnObject instance ID {identity.NetId} asset ID {identity.PrefabHash:X}"); - identity.RebuildObservers(true); + InterestManager.OnSpawn(identity); } internal void SendSpawnMessage(NetworkIdentity identity, INetworkPlayer player) @@ -661,9 +643,8 @@ void DestroyObject(NetworkIdentity identity, bool destroyServerObject) Server.World.RemoveIdentity(identity); identity.Owner?.RemoveOwnedObject(identity); - identity.SendToRemoteObservers(new ObjectDestroyMessage { netId = identity.NetId }); + InterestManager.OnDestroy(identity); - identity.ClearObservers(); if (Server.LocalClientActive) { identity.StopClient(); @@ -747,7 +728,7 @@ public void SpawnObjects() // note: can't use optional param here because we need just NetworkPlayer version for event public void SpawnVisibleObjects(INetworkPlayer player, bool ignoreHasCharacter) { - if (logger.LogEnabled()) logger.Log("SetClientReadyInternal for conn:" + player); + if (logger.LogEnabled()) logger.Log("SpawnVisibleObjects for conn:" + player); // client is ready to start spawning objects if (ignoreHasCharacter || player.HasCharacter) diff --git a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Capsule.prefab b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Capsule.prefab index 301aef4e972..bda5569767f 100644 --- a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Capsule.prefab +++ b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Capsule.prefab @@ -28,6 +28,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1076878374699499735} m_RootOrder: 0 @@ -51,9 +52,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -65,6 +69,7 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -77,6 +82,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1076878374699499732 GameObject: m_ObjectHideFlags: 0 @@ -87,8 +93,8 @@ GameObject: m_Component: - component: {fileID: 1076878374699499735} - component: {fileID: 2648107611936813301} - - component: {fileID: 5697694911122891659} - component: {fileID: 1076878374699499734} + - component: {fileID: 2959594909569015476} m_Layer: 0 m_Name: Capsule m_TagString: Untagged @@ -106,6 +112,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 20, y: 1, z: -20} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6907979021268419569} m_Father: {fileID: 0} @@ -123,30 +130,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: ---- !u!114 &5697694911122891659 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1076878374699499732} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - visRange: 5 - visUpdateInterval: 0.1 - checkMethod: 0 - forceHidden: 0 - castLayers: - serializedVersion: 2 - m_Bits: 256 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -1958819984 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 --- !u!136 &1076878374699499734 CapsuleCollider: m_ObjectHideFlags: 0 @@ -161,3 +177,17 @@ CapsuleCollider: m_Height: 2 m_Direction: 1 m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &2959594909569015476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1076878374699499732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} + m_Name: + m_EditorClassIdentifier: + VisibilityRange: 10 + VisibilityUpdateInterval: 1 diff --git a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cube.prefab b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cube.prefab index 83433afb696..a845e80a212 100644 --- a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cube.prefab +++ b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cube.prefab @@ -28,6 +28,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5623359707189648426} m_RootOrder: 0 @@ -51,9 +52,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -65,6 +69,7 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -77,6 +82,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &5623359707189648430 GameObject: m_ObjectHideFlags: 0 @@ -87,8 +93,8 @@ GameObject: m_Component: - component: {fileID: 5623359707189648426} - component: {fileID: 5623359707189648404} - - component: {fileID: 5623359707189648405} - component: {fileID: 963943828455949898} + - component: {fileID: 3723715294374423086} m_Layer: 0 m_Name: Cube m_TagString: Untagged @@ -106,6 +112,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: 2} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 375242947413242802} m_Father: {fileID: 0} @@ -123,30 +130,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: ---- !u!114 &5623359707189648405 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5623359707189648430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - visRange: 5 - visUpdateInterval: 0.1 - checkMethod: 0 - forceHidden: 0 - castLayers: - serializedVersion: 2 - m_Bits: 256 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 488411698 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 --- !u!65 &963943828455949898 BoxCollider: m_ObjectHideFlags: 0 @@ -160,3 +176,17 @@ BoxCollider: serializedVersion: 2 m_Size: {x: 2, y: 2, z: 2} m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &3723715294374423086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5623359707189648430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} + m_Name: + m_EditorClassIdentifier: + VisibilityRange: 10 + VisibilityUpdateInterval: 1 diff --git a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cylinder.prefab b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cylinder.prefab index 57a3e412620..93aff12a26a 100644 --- a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cylinder.prefab +++ b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Cylinder.prefab @@ -10,8 +10,8 @@ GameObject: m_Component: - component: {fileID: 6852530814182375316} - component: {fileID: 6852530814182375318} - - component: {fileID: 6852530814182375317} - component: {fileID: 6852530814182375313} + - component: {fileID: 541663471942586951} m_Layer: 0 m_Name: Cylinder m_TagString: Untagged @@ -29,6 +29,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -2, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5318406868242510088} m_Father: {fileID: 0} @@ -46,30 +47,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: ---- !u!114 &6852530814182375317 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6852530814182375312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - visRange: 5 - visUpdateInterval: 0.1 - checkMethod: 0 - forceHidden: 0 - castLayers: - serializedVersion: 2 - m_Bits: 256 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 1067308273 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 --- !u!136 &6852530814182375313 CapsuleCollider: m_ObjectHideFlags: 0 @@ -84,6 +94,20 @@ CapsuleCollider: m_Height: 2 m_Direction: 1 m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &541663471942586951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6852530814182375312} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} + m_Name: + m_EditorClassIdentifier: + VisibilityRange: 10 + VisibilityUpdateInterval: 1 --- !u!1 &7516264595703881855 GameObject: m_ObjectHideFlags: 0 @@ -112,6 +136,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6852530814182375316} m_RootOrder: 0 @@ -135,9 +160,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -149,6 +177,7 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -161,3 +190,4 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Sphere.prefab b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Sphere.prefab index 0384f0dc2d0..738c1a638bf 100644 --- a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Sphere.prefab +++ b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Sphere.prefab @@ -10,8 +10,8 @@ GameObject: m_Component: - component: {fileID: 855244094988030909} - component: {fileID: 855244094988030911} - - component: {fileID: 855244094988030908} - component: {fileID: 855244094988030904} + - component: {fileID: 4659413346028980877} m_Layer: 0 m_Name: Sphere m_TagString: Untagged @@ -29,6 +29,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 2, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1367021456138387611} m_Father: {fileID: 0} @@ -46,30 +47,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: ---- !u!114 &855244094988030908 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 855244094988030905} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - visRange: 5 - visUpdateInterval: 0.1 - checkMethod: 0 - forceHidden: 0 - castLayers: - serializedVersion: 2 - m_Bits: 256 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 2032030298 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 --- !u!135 &855244094988030904 SphereCollider: m_ObjectHideFlags: 0 @@ -83,6 +93,20 @@ SphereCollider: serializedVersion: 2 m_Radius: 1 m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4659413346028980877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855244094988030905} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} + m_Name: + m_EditorClassIdentifier: + VisibilityRange: 10 + VisibilityUpdateInterval: 1 --- !u!1 &1963619543076261731 GameObject: m_ObjectHideFlags: 0 @@ -111,6 +135,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 855244094988030909} m_RootOrder: 0 @@ -134,9 +159,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -148,6 +176,7 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -160,3 +189,4 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Tank.prefab b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Tank.prefab index 0d092846868..6b66accc217 100644 --- a/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Tank.prefab +++ b/Assets/Mirage/Samples~/AdditiveScenes/Prefabs/Tank.prefab @@ -10,10 +10,10 @@ GameObject: m_Component: - component: {fileID: 160176456} - component: {fileID: 160176459} - - component: {fileID: 160176458} - component: {fileID: 160176461} - component: {fileID: 160176460} - component: {fileID: 160176462} + - component: {fileID: 1727811249473591998} m_Layer: 0 m_Name: Tank m_TagString: Untagged @@ -31,6 +31,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -20, y: 0, z: -20} m_LocalScale: {x: 5, y: 5, z: 5} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3234001708628876000} - {fileID: 1042389410631263445} @@ -49,30 +50,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: ---- !u!114 &160176458 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 160176457} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - VisibilityRange: 10 - VisibilityUpdateInterval: 1 - ActualCheckMethod: 0 - ForceHidden: 0 - CastLayers: - serializedVersion: 2 - m_Bits: 4294967295 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 1292622813 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 --- !u!114 &160176461 MonoBehaviour: m_ObjectHideFlags: 0 @@ -91,7 +101,7 @@ MonoBehaviour: Animator: {fileID: 160176460} --- !u!95 &160176460 Animator: - serializedVersion: 3 + serializedVersion: 4 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -104,6 +114,7 @@ Animator: m_UpdateMode: 0 m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 @@ -124,6 +135,20 @@ MonoBehaviour: syncInterval: 0.1 rotation: {x: 0, y: 0, z: 0, w: 0} turnSpeed: 0.1 +--- !u!114 &1727811249473591998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160176457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} + m_Name: + m_EditorClassIdentifier: + VisibilityRange: 10 + VisibilityUpdateInterval: 1 --- !u!1 &489699669850839237 GameObject: m_ObjectHideFlags: 0 @@ -150,6 +175,7 @@ Transform: m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.0021921142, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5371032128924763904} m_RootOrder: 0 @@ -180,6 +206,7 @@ Transform: m_LocalRotation: {x: -0.5, y: 0.5, z: 0.49999994, w: 0.50000006} m_LocalPosition: {x: -0, y: 0.0011627917, z: 0.0000000010728836} m_LocalScale: {x: 1, y: 0.99999994, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 9163197381092130014} m_Father: {fileID: 847897825935598517} @@ -211,6 +238,7 @@ Transform: m_LocalRotation: {x: 0, y: -0.000000119209275, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.0010293524, z: 0} m_LocalScale: {x: 1, y: 0.99999994, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1517159280684637724} m_Father: {fileID: 1703734463393124925} @@ -242,6 +270,7 @@ Transform: m_LocalRotation: {x: -0.5, y: 0.5, z: 0.49999994, w: 0.50000006} m_LocalPosition: {x: -0, y: 0.0011627917, z: -0.0026999994} m_LocalScale: {x: 1, y: 0.99999994, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6048638457609172120} m_Father: {fileID: 847897825935598517} @@ -273,6 +302,7 @@ Transform: m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.0063666296, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1517159280684637724} m_RootOrder: 0 @@ -305,6 +335,7 @@ Transform: m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 160176456} m_RootOrder: 0 @@ -320,9 +351,12 @@ SkinnedMeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 3 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -376,9 +410,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 4300000, guid: 38b49695fc0a4418bbc350f2366660c5, type: 3} --- !u!1 &4728827432125738153 GameObject: @@ -406,6 +440,7 @@ Transform: m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1703734463393124925} - {fileID: 7124543900430328667} @@ -440,6 +475,7 @@ Transform: m_LocalRotation: {x: -0.5, y: 0.5, z: 0.49999994, w: 0.50000006} m_LocalPosition: {x: -0, y: 0.0011627917, z: 0.0027000008} m_LocalScale: {x: 1, y: 0.99999994, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5752532462053122769} m_Father: {fileID: 847897825935598517} @@ -471,6 +507,7 @@ Transform: m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.0015, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7755980514232685276} m_Father: {fileID: 847897825935598517} @@ -502,6 +539,7 @@ Transform: m_LocalRotation: {x: 0.00000017845065, y: 0.7071068, z: 0.7071067, w: 0.000000009863265} m_LocalPosition: {x: 5.6542865e-10, y: 0.0015793034, z: 0.00237158} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7509984371715941402} m_Father: {fileID: 7755980514232685276} @@ -533,6 +571,7 @@ Transform: m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 100, y: 100, z: 100} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 847897825935598517} m_Father: {fileID: 160176456} @@ -564,6 +603,7 @@ Transform: m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.0021921142, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7124543900430328667} m_RootOrder: 0 @@ -594,6 +634,7 @@ Transform: m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.0021921142, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1766344861363284577} m_RootOrder: 0 diff --git a/Assets/Mirage/Samples~/AdditiveScenes/Scripts/ShootingTankBehaviour.cs b/Assets/Mirage/Samples~/AdditiveScenes/Scripts/ShootingTankBehaviour.cs index 8b41aca06a6..1af18346640 100644 --- a/Assets/Mirage/Samples~/AdditiveScenes/Scripts/ShootingTankBehaviour.cs +++ b/Assets/Mirage/Samples~/AdditiveScenes/Scripts/ShootingTankBehaviour.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using UnityEngine; namespace Mirage.Examples.Additive @@ -23,7 +24,7 @@ void Start() void Update() { - if (IsServer && Identity.observers.Count > 0) + if (IsServer && Identity.ServerObjectManager.InterestManager.ObserverSystems.Count > 0) ShootNearestPlayer(); if (IsClient) @@ -36,15 +37,21 @@ void ShootNearestPlayer() GameObject target = null; float distance = 100f; - foreach (INetworkPlayer networkConnection in Identity.observers) + foreach (Mirage.InterestManagement.VisibilitySystem observerData in Identity.ServerObjectManager.InterestManager.ObserverSystems) { - GameObject tempTarget = networkConnection.Identity.gameObject; - float tempDistance = Vector3.Distance(tempTarget.transform.position, transform.position); - - if (target == null || distance > tempDistance) + foreach (KeyValuePair> observer in observerData.Observers) { - target = tempTarget; - distance = tempDistance; + foreach (INetworkPlayer player in observer.Value) + { + GameObject tempTarget = player.Identity.gameObject; + float tempDistance = Vector3.Distance(tempTarget.transform.position, transform.position); + + if (target == null || distance > tempDistance) + { + target = tempTarget; + distance = tempDistance; + } + } } } diff --git a/Assets/Mirage/Samples~/ChangeScene/Prefabs/ServerOnlySceneObject Variant.prefab b/Assets/Mirage/Samples~/ChangeScene/Prefabs/ServerOnlySceneObject Variant.prefab index 49dc4c4c931..2016b1f758f 100644 --- a/Assets/Mirage/Samples~/ChangeScene/Prefabs/ServerOnlySceneObject Variant.prefab +++ b/Assets/Mirage/Samples~/ChangeScene/Prefabs/ServerOnlySceneObject Variant.prefab @@ -7,95 +7,81 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344369, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344370, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} - propertyPath: m_Color.r - value: 1 + - target: {fileID: 1818873914431344370, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} + propertyPath: m_Color.b + value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344370, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344370, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_Color.g value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344370, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} - propertyPath: m_Color.b - value: 0 + - target: {fileID: 1818873914431344370, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} + propertyPath: m_Color.r + value: 1 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: sceneId value: 0 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} + propertyPath: m_AssetId + value: + objectReference: {fileID: 0} + - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: serverOnly value: 1 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} - propertyPath: m_AssetId - value: + - target: {fileID: 1818873914431344371, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} + propertyPath: _prefabHash + value: -192834059 objectReference: {fileID: 0} - - target: {fileID: 1818873914431344372, guid: 685b07ee95b6b6b4db30b2440e670157, - type: 3} + - target: {fileID: 1818873914431344372, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} propertyPath: m_Name - value: ServerOnlySceneObject + value: ServerOnlySceneObject Variant objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 685b07ee95b6b6b4db30b2440e670157, type: 3} diff --git a/Assets/Mirage/Samples~/InterestManagement/Prefabs/Loot.prefab b/Assets/Mirage/Samples~/InterestManagement/Prefabs/Loot.prefab index fece55f83f7..2280e2d9669 100644 --- a/Assets/Mirage/Samples~/InterestManagement/Prefabs/Loot.prefab +++ b/Assets/Mirage/Samples~/InterestManagement/Prefabs/Loot.prefab @@ -12,7 +12,6 @@ GameObject: - component: {fileID: 8166229233224018893} - component: {fileID: 5745257042001409199} - component: {fileID: 6411109812051327673} - - component: {fileID: 8918006532685550525} m_Layer: 0 m_Name: Loot m_TagString: Untagged @@ -30,6 +29,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 4.5784225, y: 0.113, z: 0.19971979} m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -53,6 +53,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -95,46 +96,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 ServerObjectManager: {fileID: 0} ClientObjectManager: {fileID: 0} - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: [] - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + _prefabHash: -366957159 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 ---- !u!114 &8918006532685550525 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1902385843019246699} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - VisibilityRange: 3 - VisibilityUpdateInterval: 1 - ForceHidden: 0 diff --git a/Assets/Mirage/Samples~/InterestManagement/Prefabs/Npc.prefab b/Assets/Mirage/Samples~/InterestManagement/Prefabs/Npc.prefab index e0342482461..8cb6f3adf6b 100644 --- a/Assets/Mirage/Samples~/InterestManagement/Prefabs/Npc.prefab +++ b/Assets/Mirage/Samples~/InterestManagement/Prefabs/Npc.prefab @@ -12,10 +12,10 @@ GameObject: - component: {fileID: 8166229233224018893} - component: {fileID: 5745257042001409199} - component: {fileID: 6411109812051327673} - - component: {fileID: 8918006532685550525} - component: {fileID: -5847114806862335758} - component: {fileID: -5831635982431117221} - component: {fileID: 1157770445662775453} + - component: {fileID: -8343591372941816837} m_Layer: 0 m_Name: Npc m_TagString: Untagged @@ -33,6 +33,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 4.5784225, y: 0.113, z: 0.19971979} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -56,6 +57,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -98,73 +100,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 ServerObjectManager: {fileID: 0} ClientObjectManager: {fileID: 0} - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1157770445662775453} - m_TargetAssemblyTypeName: Mirage.Examples.InterestManagement.Wander, Mirage.Examples - m_MethodName: StartMoving - 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_Target: {fileID: -5847114806862335758} - m_TargetAssemblyTypeName: UnityEngine.Behaviour, UnityEngine - m_MethodName: set_enabled - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + _prefabHash: -1894484670 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 ---- !u!114 &8918006532685550525 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1902385843019246699} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} - m_Name: - m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - VisibilityRange: 3 - VisibilityUpdateInterval: 1 - ForceHidden: 0 --- !u!195 &-5847114806862335758 NavMeshAgent: m_ObjectHideFlags: 0 @@ -221,3 +189,20 @@ MonoBehaviour: bounds: m_Center: {x: 0, y: 0.1, z: 0} m_Extent: {x: 4.5, y: 0, z: 4.5} +--- !u!114 &-8343591372941816837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902385843019246699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f48e8760b46ce5b40b3053de7eb537a2, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0.1 + ProximitySettings: + Identity: {fileID: 0} + SightDistance: 10 diff --git a/Assets/Mirage/Samples~/InterestManagement/Prefabs/Tank.prefab b/Assets/Mirage/Samples~/InterestManagement/Prefabs/Tank.prefab index 8c2a216f821..3d52963ddc1 100644 --- a/Assets/Mirage/Samples~/InterestManagement/Prefabs/Tank.prefab +++ b/Assets/Mirage/Samples~/InterestManagement/Prefabs/Tank.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 6900008319038825817} - component: {fileID: 5194388907919410155} - component: {fileID: 114654712548978148} - - component: {fileID: -5216695118302212130} + - component: {fileID: -7578597324707459363} m_Layer: 0 m_Name: Tank m_TagString: Player @@ -33,6 +33,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7831918942946891954} - {fileID: 6564220120147636086} @@ -53,47 +54,42 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 ServerObjectManager: {fileID: 0} ClientObjectManager: {fileID: 0} - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 114654712548978148} - m_TargetAssemblyTypeName: Mirage.Examples.InterestManagement.Tank, Mirage.Examples - m_MethodName: SetRandomName - 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 - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + _prefabHash: -99413737 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!95 &2240606817507776182 Animator: - serializedVersion: 3 + serializedVersion: 4 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -106,6 +102,7 @@ Animator: m_UpdateMode: 0 m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 @@ -182,7 +179,7 @@ MonoBehaviour: rotationSpeed: 80 playerName: nameText: {fileID: 6763574687443798610} ---- !u!114 &-5216695118302212130 +--- !u!114 &-7578597324707459363 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -191,14 +188,14 @@ MonoBehaviour: m_GameObject: {fileID: 1916082411674582} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} + m_Script: {fileID: 11500000, guid: f48e8760b46ce5b40b3053de7eb537a2, type: 3} m_Name: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 - VisibilityRange: 2 - VisibilityUpdateInterval: 1 - ForceHidden: 0 + ProximitySettings: + Identity: {fileID: 0} + SightDistance: 10 --- !u!1 &1794225417093723422 GameObject: m_ObjectHideFlags: 0 @@ -227,6 +224,7 @@ Transform: m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} m_LocalPosition: {x: 0, y: 1, z: 0} m_LocalScale: {x: 0.25, y: 0.25, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4492442352427800} m_RootOrder: 3 @@ -242,6 +240,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -321,6 +320,7 @@ Transform: m_LocalRotation: {x: 0.02281505, y: -0, z: -0, w: 0.9997397} m_LocalPosition: {x: 0.07, y: 0.46, z: 0.126} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4492442352427800} m_RootOrder: 1 @@ -384,6 +384,7 @@ Light: m_UseColorTemperature: 0 m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!1 &4730779867780281009 @@ -412,6 +413,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0.412, z: 0.936} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4492442352427800} m_RootOrder: 2 diff --git a/Assets/Mirage/Samples~/InterestManagement/Scenes/Scene.unity b/Assets/Mirage/Samples~/InterestManagement/Scenes/Scene.unity index 60cd60c3eae..c6468caf882 100644 --- a/Assets/Mirage/Samples~/InterestManagement/Scenes/Scene.unity +++ b/Assets/Mirage/Samples~/InterestManagement/Scenes/Scene.unity @@ -43,7 +43,7 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 11 + serializedVersion: 12 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -98,7 +98,7 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 + m_LightingSettings: {fileID: 4890085278179872738, guid: ea1f64b5619d4a245b5b4326de548ecf, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -118,6 +118,8 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 23800000, guid: 0bc607fa2e315482ebe98797e844e11f, type: 2} @@ -149,6 +151,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 721760295} m_RootOrder: 0 @@ -173,6 +176,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -287,6 +291,7 @@ Transform: m_LocalRotation: {x: 0, y: 0.92387956, z: -0.38268343, w: 0} m_LocalPosition: {x: 0, y: 6.5, z: 8} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -317,6 +322,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 3, y: 0, z: 3} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 6 @@ -349,6 +355,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1986496790} m_RootOrder: 0 @@ -373,6 +380,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -425,6 +433,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 3, y: 0, z: -3} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 4 @@ -456,6 +465,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 10 @@ -506,6 +516,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 607305578} m_RootOrder: 0 @@ -530,6 +541,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -584,6 +596,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 597109995} m_Father: {fileID: 1966128035} @@ -609,6 +622,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -663,6 +677,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1162041874} m_Father: {fileID: 1273045296} @@ -688,6 +703,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -742,6 +758,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1278248529} m_Father: {fileID: 1273045296} @@ -767,6 +784,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -822,6 +840,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 20677887} m_Father: {fileID: 944343261} @@ -846,6 +865,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -876,6 +896,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1273045292} + m_TargetAssemblyTypeName: m_MethodName: ReadyButtonHandler m_Mode: 1 m_Arguments: @@ -901,6 +922,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -951,6 +973,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1986496790} m_RootOrder: 1 @@ -975,6 +998,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1028,6 +1052,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1117608593} - {fileID: 1986496790} @@ -1079,10 +1104,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -1107,6 +1134,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!64 &1107091654 MeshCollider: m_ObjectHideFlags: 0 @@ -1139,6 +1167,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 @@ -1189,6 +1218,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 944343261} m_RootOrder: 0 @@ -1221,6 +1251,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1267,6 +1298,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 637114754} m_RootOrder: 0 @@ -1291,6 +1323,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1402,6 +1435,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 --- !u!223 &1273045295 Canvas: m_ObjectHideFlags: 0 @@ -1433,6 +1467,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 944343261} - {fileID: 721152071} @@ -1475,6 +1510,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 721152071} m_RootOrder: 0 @@ -1499,6 +1535,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1542,6 +1579,7 @@ GameObject: - component: {fileID: 1282001522} - component: {fileID: 1282001524} - component: {fileID: 1282001519} + - component: {fileID: 1282001527} m_Layer: 0 m_Name: NetworkManager m_TagString: Untagged @@ -1559,6 +1597,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 3 @@ -1613,8 +1652,7 @@ MonoBehaviour: SceneManager: {fileID: 1282001526} ClientObjectManager: {fileID: 1282001522} ServerObjectManager: {fileID: 1282001524} - PlayerPrefab: {fileID: 114118589361100106, guid: 80382f4d3904f4926bff940b8cb6311a, - type: 3} + PlayerPrefab: {fileID: 114118589361100106, guid: 80382f4d3904f4926bff940b8cb6311a, type: 3} AutoSpawn: 1 startPositionIndex: 0 startPositions: @@ -1669,7 +1707,19 @@ MonoBehaviour: m_Calls: [] _authenticated: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 1107091657} + m_TargetAssemblyTypeName: Mirage.Examples.InterestManagement.Spawner, Mirage.Examples + m_MethodName: SpawnPrefab + 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 _disconnected: m_PersistentCalls: m_Calls: [] @@ -1762,6 +1812,19 @@ MonoBehaviour: _onPlayerSceneReady: m_PersistentCalls: m_Calls: [] +--- !u!114 &1282001527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282001517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} + m_Name: + m_EditorClassIdentifier: + VisibilityUpdateInterval: 1 --- !u!1 &1458789072 GameObject: m_ObjectHideFlags: 0 @@ -1788,6 +1851,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -3, y: 0, z: 3} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 7 @@ -1818,6 +1882,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -3, y: 0, z: -3} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 5 @@ -1884,6 +1949,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 9 @@ -1916,6 +1982,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 607305578} m_Father: {fileID: 1273045296} @@ -1941,6 +2008,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -1992,6 +2060,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 472317787} - {fileID: 754665787} @@ -2017,6 +2086,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -2053,7 +2123,10 @@ MonoBehaviour: m_HideMobileInput: 0 m_CharacterValidation: 0 m_CharacterLimit: 0 - m_OnEndEdit: + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnDidEndEdit: m_PersistentCalls: m_Calls: [] m_OnValueChanged: @@ -2066,6 +2139,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &1986496792 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2081,6 +2155,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2179,6 +2254,7 @@ Light: m_UseColorTemperature: 0 m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &2054208276 @@ -2191,6 +2267,7 @@ Transform: m_LocalRotation: {x: 0.10938167, y: 0.8754261, z: -0.40821788, w: 0.23456976} m_LocalPosition: {x: 0, y: 10, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 2 @@ -2229,6 +2306,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2283,6 +2361,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922469884916180} m_RootOrder: 0 @@ -2302,6 +2381,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922471034320686} - {fileID: 7413922471169038003} @@ -2347,6 +2427,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.078431375} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2397,6 +2478,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922470766294195} m_RootOrder: 0 @@ -2421,6 +2503,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2465,6 +2548,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922470195793858} m_RootOrder: 0 @@ -2489,6 +2573,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2540,6 +2625,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2572,6 +2658,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922469238954925} m_Father: {fileID: 7413922471169038003} @@ -2596,6 +2683,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -2626,6 +2714,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 695766753322977103} + m_TargetAssemblyTypeName: m_MethodName: StopButtonHandler m_Mode: 1 m_Arguments: @@ -2670,6 +2759,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2702,6 +2792,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922469802125740} m_Father: {fileID: 7413922471034320686} @@ -2726,6 +2817,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -2756,6 +2848,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 695766753322977103} + m_TargetAssemblyTypeName: m_MethodName: StartClientButtonHandler m_Mode: 1 m_Arguments: @@ -2800,6 +2893,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2854,6 +2948,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922470584677030} m_RootOrder: 0 @@ -2896,6 +2991,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -2924,6 +3020,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922470766294195} m_RootOrder: 1 @@ -2975,6 +3072,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3007,6 +3105,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922470402318327} m_Father: {fileID: 7413922471034320686} @@ -3031,6 +3130,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3061,6 +3161,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 695766753322977103} + m_TargetAssemblyTypeName: m_MethodName: StartServerOnlyButtonHandler m_Mode: 1 m_Arguments: @@ -3086,6 +3187,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3122,6 +3224,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3158,13 +3261,17 @@ MonoBehaviour: m_HideMobileInput: 0 m_CharacterValidation: 0 m_CharacterLimit: 0 - m_OnEndEdit: + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnDidEndEdit: m_PersistentCalls: m_Calls: [] m_OnValueChanged: m_PersistentCalls: m_Calls: - m_Target: {fileID: 695766753322977103} + m_TargetAssemblyTypeName: m_MethodName: OnNetworkAddressInputUpdate m_Mode: 1 m_Arguments: @@ -3182,6 +3289,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!224 &7413922470766294195 RectTransform: m_ObjectHideFlags: 0 @@ -3192,6 +3300,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922469798861380} - {fileID: 7413922470484982542} @@ -3232,6 +3341,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922470911255789} m_Father: {fileID: 7413922471034320686} @@ -3256,6 +3366,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} @@ -3286,6 +3397,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 695766753322977103} + m_TargetAssemblyTypeName: m_MethodName: StartHostButtonHandler m_Mode: 1 m_Arguments: @@ -3330,6 +3442,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3367,6 +3480,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -3421,6 +3535,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922470771695600} m_RootOrder: 0 @@ -3456,6 +3571,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922470771695600} - {fileID: 7413922470584677030} @@ -3495,6 +3611,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7413922471197805025} - {fileID: 7413922469884916180} @@ -3534,6 +3651,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7413922471169038003} m_RootOrder: 0 @@ -3558,6 +3676,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: diff --git a/Assets/Mirage/Samples~/InterestManagement/Scenes/SceneSettings.lighting b/Assets/Mirage/Samples~/InterestManagement/Scenes/SceneSettings.lighting new file mode 100644 index 00000000000..2d689892b13 --- /dev/null +++ b/Assets/Mirage/Samples~/InterestManagement/Scenes/SceneSettings.lighting @@ -0,0 +1,64 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!850595691 &4890085278179872738 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SceneSettings + serializedVersion: 4 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_PVRTiledBaking: 0 diff --git a/Assets/Mirage/Samples~/InterestManagement/Scenes/SceneSettings.lighting.meta b/Assets/Mirage/Samples~/InterestManagement/Scenes/SceneSettings.lighting.meta new file mode 100644 index 00000000000..7b61b2e60f3 --- /dev/null +++ b/Assets/Mirage/Samples~/InterestManagement/Scenes/SceneSettings.lighting.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea1f64b5619d4a245b5b4326de548ecf +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4890085278179872738 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Materials/Render/PlayArea.mat b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Materials/Render/PlayArea.mat index f39520d1020..60554835784 100644 --- a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Materials/Render/PlayArea.mat +++ b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Materials/Render/PlayArea.mat @@ -9,7 +9,7 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: PlayArea m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _NORMALMAP _SPECULARHIGHLIGHTS_OFF + m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -55,6 +55,7 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 @@ -75,3 +76,4 @@ Material: m_Colors: - _Color: {r: 0.8867924, g: 0.84346247, b: 0.7654859, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Icosphere.prefab b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Icosphere.prefab index 24e9e50db8b..3e4d730c8ca 100644 --- a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Icosphere.prefab +++ b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Icosphere.prefab @@ -29,6 +29,7 @@ Transform: m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5513112217680897778} m_RootOrder: 0 @@ -52,9 +53,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -79,6 +83,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!64 &456454062324168415 MeshCollider: m_ObjectHideFlags: 0 @@ -89,9 +94,9 @@ MeshCollider: m_Material: {fileID: 13400000, guid: 47163bc0301c1a146bbaa4d539a6ac36, type: 2} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 1 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 4300000, guid: eea2ee63e29c7fb47b752b62fb1f7be2, type: 3} --- !u!1 &5513112217680870098 GameObject: @@ -125,6 +130,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -0, y: 0, z: 0} m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5513112217680897776} m_Father: {fileID: 0} @@ -142,9 +148,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -619500693 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &-5073764247860119520 MonoBehaviour: @@ -160,10 +195,10 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0 - clientAuthority: 0 - localPositionSensitivity: 0.01 - localRotationSensitivity: 0.01 - localScaleSensitivity: 0.01 + ClientAuthority: 0 + LocalPositionSensitivity: 0.01 + LocalRotationSensitivity: 0.01 + LocalScaleSensitivity: 0.01 --- !u!114 &-8786580539857106334 MonoBehaviour: m_ObjectHideFlags: 0 @@ -173,12 +208,9 @@ MonoBehaviour: m_GameObject: {fileID: 5513112217680870098} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7fdb599e1359924bad6255660370252, type: 3} + m_Script: {fileID: 11500000, guid: cb48cb44e806a2e49901c190a0181e08, type: 3} m_Name: m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - forceHidden: 0 --- !u!114 &8774992865005872063 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Player.prefab b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Player.prefab index 2c725be4df6..018a217e4e1 100644 --- a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Player.prefab +++ b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Player.prefab @@ -28,6 +28,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.39999998, z: 0.5} m_LocalScale: {x: 0.5, y: 0.1, z: 0.2} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3138541494209382947} m_RootOrder: 0 @@ -51,9 +52,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 4294967295 m_RendererPriority: 0 m_Materials: @@ -78,6 +82,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1480027675339556 GameObject: m_ObjectHideFlags: 0 @@ -113,6 +118,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3138541494209382947} m_Father: {fileID: 0} @@ -130,9 +136,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 527061494 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &114720308987319626 MonoBehaviour: @@ -143,12 +178,9 @@ MonoBehaviour: m_GameObject: {fileID: 1480027675339556} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7fdb599e1359924bad6255660370252, type: 3} + m_Script: {fileID: 11500000, guid: cb48cb44e806a2e49901c190a0181e08, type: 3} m_Name: m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - forceHidden: 0 --- !u!114 &114265392388239132 MonoBehaviour: m_ObjectHideFlags: 0 @@ -163,10 +195,10 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0 - clientAuthority: 1 - localPositionSensitivity: 0.01 - localRotationSensitivity: 0.01 - localScaleSensitivity: 0.01 + ClientAuthority: 0 + LocalPositionSensitivity: 0.01 + LocalRotationSensitivity: 0.01 + LocalScaleSensitivity: 0.01 --- !u!143 &143011667059871024 CharacterController: m_ObjectHideFlags: 0 @@ -238,7 +270,6 @@ MonoBehaviour: vertical: 0 turn: 0 jumpSpeed: 0 - jumpTime: 0 isGrounded: 1 isFalling: 0 velocity: {x: 0, y: 0, z: 0} @@ -306,6 +337,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4216737524944602} m_Father: {fileID: 4822224316094678} @@ -330,9 +362,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -357,3 +392,4 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Prize.prefab b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Prize.prefab index c09f4aa79f9..04cd6c7862f 100644 --- a/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Prize.prefab +++ b/Assets/Mirage/Samples~/MultipleAdditiveScenes/Prefabs/Prize.prefab @@ -32,6 +32,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7524893234998283593} m_Father: {fileID: 0} @@ -78,9 +79,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -143279749 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &114426876133629542 MonoBehaviour: @@ -91,12 +121,9 @@ MonoBehaviour: m_GameObject: {fileID: 1139254171913846} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7fdb599e1359924bad6255660370252, type: 3} + m_Script: {fileID: 11500000, guid: cb48cb44e806a2e49901c190a0181e08, type: 3} m_Name: m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - forceHidden: 0 --- !u!114 &114048121767222990 MonoBehaviour: m_ObjectHideFlags: 0 @@ -159,6 +186,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4362442735993418} m_RootOrder: 0 @@ -182,9 +210,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -209,3 +240,4 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Tests/Editor/NetworkIdentityCallbackTests.cs b/Assets/Tests/Editor/NetworkIdentityCallbackTests.cs index 6d23c6fd372..442ec529d5b 100644 --- a/Assets/Tests/Editor/NetworkIdentityCallbackTests.cs +++ b/Assets/Tests/Editor/NetworkIdentityCallbackTests.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using Mirage.Serialization; using NSubstitute; using NUnit.Framework; @@ -14,49 +13,16 @@ public class NetworkIdentityCallbackTests { #region test components - class CheckObserverExceptionNetworkBehaviour : NetworkVisibility - { - public int called; - public INetworkPlayer valuePassed; - public override void OnRebuildObservers(HashSet observers, bool initialize) { } - public override bool OnCheckObserver(INetworkPlayer player) - { - ++called; - valuePassed = player; - throw new Exception("some exception"); - } - } - - class CheckObserverTrueNetworkBehaviour : NetworkVisibility - { - public int called; - public override void OnRebuildObservers(HashSet observers, bool initialize) { } - public override bool OnCheckObserver(INetworkPlayer player) - { - ++called; - return true; - } - } - - class CheckObserverFalseNetworkBehaviour : NetworkVisibility - { - public int called; - public override void OnRebuildObservers(HashSet observers, bool initialize) { } - public override bool OnCheckObserver(INetworkPlayer player) - { - ++called; - return false; - } - } - class SerializeTest1NetworkBehaviour : NetworkBehaviour { public int value; + public override bool OnSerialize(NetworkWriter writer, bool initialState) { writer.WriteInt32(value); return true; } + public override void OnDeserialize(NetworkReader reader, bool initialState) { value = reader.ReadInt32(); @@ -66,11 +32,13 @@ public override void OnDeserialize(NetworkReader reader, bool initialState) class SerializeTest2NetworkBehaviour : NetworkBehaviour { public string value; + public override bool OnSerialize(NetworkWriter writer, bool initialState) { writer.WriteString(value); return true; } + public override void OnDeserialize(NetworkReader reader, bool initialState) { value = reader.ReadString(); @@ -83,6 +51,7 @@ public override bool OnSerialize(NetworkWriter writer, bool initialState) { throw new Exception("some exception"); } + public override void OnDeserialize(NetworkReader reader, bool initialState) { throw new Exception("some exception"); @@ -92,6 +61,7 @@ public override void OnDeserialize(NetworkReader reader, bool initialState) class SerializeMismatchNetworkBehaviour : NetworkBehaviour { public int value; + public override bool OnSerialize(NetworkWriter writer, bool initialState) { writer.WriteInt32(value); @@ -99,28 +69,13 @@ public override bool OnSerialize(NetworkWriter writer, bool initialState) writer.WriteInt32(value); return true; } + public override void OnDeserialize(NetworkReader reader, bool initialState) { value = reader.ReadInt32(); } } - class RebuildObserversNetworkBehaviour : NetworkVisibility - { - public INetworkPlayer observer; - public override bool OnCheckObserver(INetworkPlayer player) { return true; } - public override void OnRebuildObservers(HashSet observers, bool initialize) - { - observers.Add(observer); - } - } - - class RebuildEmptyObserversNetworkBehaviour : NetworkVisibility - { - public override bool OnCheckObserver(INetworkPlayer player) { return true; } - public override void OnRebuildObservers(HashSet observers, bool initialize) { } - } - #endregion GameObject gameObject; @@ -262,26 +217,6 @@ public void SetOverrideClientOwner() Assert.That(identity.Owner, Is.EqualTo(original)); } - [Test] - public void RemoveObserverInternal() - { - // call OnStartServer so that observers dict is created - identity.StartServer(); - - // add an observer connection - INetworkPlayer player = Substitute.For(); - identity.observers.Add(player); - - INetworkPlayer player2 = Substitute.For(); - // RemoveObserverInternal with invalid connection should do nothing - identity.RemoveObserverInternal(player2); - Assert.That(identity.observers, Is.EquivalentTo(new[] { player })); - - // RemoveObserverInternal with existing connection should remove it - identity.RemoveObserverInternal(player); - Assert.That(identity.observers, Is.Empty); - } - [Test] public void AssignSceneID() { @@ -451,44 +386,6 @@ public void NotifyAuthorityCallsOnStartStopAuthority() Assert.That(stopAuth, Is.EqualTo(1)); } - [Test] - public void OnCheckObserverCatchesException() - { - // add component - gameObject.AddComponent(); - - // should catch the exception internally and not throw it - Assert.Throws(() => - { - identity.OnCheckObserver(player1); - }); - } - - [Test] - public void OnCheckObserverTrue() - { - // create a networkidentity with a component that returns true - // result should still be true. - var gameObjectTrue = new GameObject(); - NetworkIdentity identityTrue = gameObjectTrue.AddComponent(); - CheckObserverTrueNetworkBehaviour compTrue = gameObjectTrue.AddComponent(); - Assert.That(identityTrue.OnCheckObserver(player1), Is.True); - Assert.That(compTrue.called, Is.EqualTo(1)); - } - - [Test] - public void OnCheckObserverFalse() - { - // create a networkidentity with a component that returns true and - // one component that returns false. - // result should still be false if any one returns false. - var gameObjectFalse = new GameObject(); - NetworkIdentity identityFalse = gameObjectFalse.AddComponent(); - CheckObserverFalseNetworkBehaviour compFalse = gameObjectFalse.AddComponent(); - Assert.That(identityFalse.OnCheckObserver(player1), Is.False); - Assert.That(compFalse.called, Is.EqualTo(1)); - } - [Test] public void OnSerializeAllSafely() { @@ -643,163 +540,5 @@ public void OnStopServerEx() identity.StopServer(); }); } - - [Test] - public void AddObserver() - { - identity.Server = server; - - // call OnStartServer so that observers dict is created - identity.StartServer(); - - // call AddObservers - identity.AddObserver(player1); - identity.AddObserver(player2); - Assert.That(identity.observers, Is.EquivalentTo(new[] { player1, player2 })); - - // adding a duplicate connectionId shouldn't overwrite the original - identity.AddObserver(player1); - Assert.That(identity.observers, Is.EquivalentTo(new[] { player1, player2 })); - } - - [Test] - public void ClearObservers() - { - // call OnStartServer so that observers dict is created - identity.StartServer(); - - // add some observers - identity.observers.Add(player1); - identity.observers.Add(player2); - - // call ClearObservers - identity.ClearObservers(); - Assert.That(identity.observers.Count, Is.EqualTo(0)); - } - - - [Test] - public void Reset() - { - // creates .observers and generates a netId - identity.StartServer(); - identity.Owner = player1; - identity.observers.Add(player1); - - // mark for reset and reset - identity.NetworkReset(); - Assert.That(identity.NetId, Is.EqualTo(0)); - Assert.That(identity.Owner, Is.Null); - } - - [Test] - public void GetNewObservers() - { - // add components - RebuildObserversNetworkBehaviour comp = gameObject.AddComponent(); - comp.observer = player1; - - // get new observers - var observers = new HashSet(); - bool result = identity.GetNewObservers(observers, true); - Assert.That(result, Is.True); - Assert.That(observers.Count, Is.EqualTo(1)); - Assert.That(observers.Contains(comp.observer), Is.True); - } - - [Test] - public void GetNewObserversClearsHashSet() - { - // get new observers. no observer components so it should just clear - // it and not do anything else - var observers = new HashSet - { - player1 - }; - identity.GetNewObservers(observers, true); - Assert.That(observers.Count, Is.EqualTo(0)); - } - - [Test] - public void GetNewObserversFalseIfNoComponents() - { - // get new observers. no observer components so it should be false - var observers = new HashSet(); - bool result = identity.GetNewObservers(observers, true); - Assert.That(result, Is.False); - } - - // RebuildObservers should always add the own ready connection - // (if any). fixes https://github.com/vis2k/Mirror/issues/692 - [Test] - public void RebuildObserversDoesNotAddPlayerIfNotReady() - { - // add at least one observers component, otherwise it will just add - // all server connections - gameObject.AddComponent(); - - // add own player connection that isn't ready - (_, NetworkPlayer connection) = PipedConnections(Substitute.For(), Substitute.For()); - // set not ready (ready is default true now) - connection.SceneIsReady = false; - - identity.Owner = connection; - - // call OnStartServer so that observers dict is created - identity.StartServer(); - - // rebuild shouldn't add own player because conn wasn't set ready - identity.RebuildObservers(true); - Assert.That(identity.observers, Does.Not.Contains(identity.Owner)); - } - - [Test] - public void RebuildObserversAddsReadyConnectionsIfImplemented() - { - - // add a proximity checker - // one with a ready connection, one with no ready connection, one with null connection - RebuildObserversNetworkBehaviour comp = gameObject.AddComponent(); - comp.observer = Substitute.For(); - comp.observer.SceneIsReady.Returns(true); - - // rebuild observers should add all component's ready observers - identity.RebuildObservers(true); - Assert.That(identity.observers, Is.EquivalentTo(new[] { comp.observer })); - } - - - [Test] - public void RebuildObserversDoesntAddNotReadyConnectionsIfImplemented() - { - // add a proximity checker - // one with a ready connection, one with no ready connection, one with null connection - RebuildObserversNetworkBehaviour comp = gameObject.AddComponent(); - comp.observer = Substitute.For(); - comp.observer.SceneIsReady.Returns(false); - - // rebuild observers should add all component's ready observers - identity.RebuildObservers(true); - Assert.That(identity.observers, Is.Empty); - } - - [Test] - public void RebuildObserversAddsReadyServerConnectionsIfNotImplemented() - { - INetworkPlayer readyConnection = Substitute.For(); - readyConnection.SceneIsReady.Returns(true); - INetworkPlayer notReadyConnection = Substitute.For(); - notReadyConnection.SceneIsReady.Returns(false); - - // add some server connections - server.Players.Add(readyConnection); - server.Players.Add(notReadyConnection); - - // rebuild observers should add all ready server connections - // because no component implements OnRebuildObservers - identity.RebuildObservers(true); - Assert.That(identity.observers, Is.EquivalentTo(new[] { readyConnection })); - } - } } diff --git a/Assets/Tests/Editor/TestPrefabs/PrefabWithChildrenForClientScene.prefab b/Assets/Tests/Editor/TestPrefabs/PrefabWithChildrenForClientScene.prefab index b445e738921..fdf72003bf6 100644 --- a/Assets/Tests/Editor/TestPrefabs/PrefabWithChildrenForClientScene.prefab +++ b/Assets/Tests/Editor/TestPrefabs/PrefabWithChildrenForClientScene.prefab @@ -27,6 +27,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6537489145038351880} m_Father: {fileID: 0} @@ -44,9 +45,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 4227710719 - serverOnly: 0 - m_AssetId: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 651241632 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!1 &3264653828050749140 GameObject: @@ -75,6 +105,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 51440471024079650} m_RootOrder: 0 @@ -91,7 +122,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 1033643234 - serverOnly: 0 - m_AssetId: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 651241632 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 diff --git a/Assets/Tests/Editor/TestPrefabs/ValidPrefabForClientScene.prefab b/Assets/Tests/Editor/TestPrefabs/ValidPrefabForClientScene.prefab index 38f91abdd2a..2b845a43f0f 100644 --- a/Assets/Tests/Editor/TestPrefabs/ValidPrefabForClientScene.prefab +++ b/Assets/Tests/Editor/TestPrefabs/ValidPrefabForClientScene.prefab @@ -27,6 +27,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -43,7 +44,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 1350197626 - serverOnly: 0 - m_AssetId: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 265297643 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 diff --git a/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Monster.prefab b/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Monster.prefab index bf89f24643a..8b6a30c5bb0 100644 --- a/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Monster.prefab +++ b/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Monster.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 1078519278818213949} - component: {fileID: 3679374677650722848} - component: {fileID: 8309506939003697769} - - component: {fileID: 7488211268558861764} + - component: {fileID: 7785239981505270908} m_Layer: 0 m_Name: Monster m_TagString: Untagged @@ -32,6 +32,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -55,10 +56,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -83,6 +86,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!114 &1078519278818213949 MonoBehaviour: m_ObjectHideFlags: 0 @@ -95,41 +99,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 8309506939003697769} - m_MethodName: OnStartServer - 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 - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -1655520525 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &3679374677650722848 MonoBehaviour: @@ -166,7 +167,7 @@ MonoBehaviour: speed: 1 movementProbability: 0.5 movementDistance: 20 ---- !u!114 &7488211268558861764 +--- !u!114 &7785239981505270908 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -175,11 +176,8 @@ MonoBehaviour: m_GameObject: {fileID: 449802645721213856} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} m_Name: m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 - VisibilityRange: 15 + VisibilityRange: 10 VisibilityUpdateInterval: 1 - ForceHidden: 0 diff --git a/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Player.prefab b/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Player.prefab index 02bf2b506a3..445f2d7b06e 100644 --- a/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Player.prefab +++ b/Assets/Tests/Manual/2k NetworkTransforms/Prefabs/Player.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 1078519278818213949} - component: {fileID: 644305951047116972} - component: {fileID: 3679374677650722848} - - component: {fileID: 5430786619612738921} + - component: {fileID: 8639503432816219370} m_Layer: 0 m_Name: Player m_TagString: Untagged @@ -32,6 +32,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -55,10 +56,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -83,6 +86,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!114 &1078519278818213949 MonoBehaviour: m_ObjectHideFlags: 0 @@ -95,30 +99,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: [] - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 1501366518 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &644305951047116972 MonoBehaviour: @@ -153,7 +165,7 @@ MonoBehaviour: LocalPositionSensitivity: 0.01 LocalRotationSensitivity: 0.01 LocalScaleSensitivity: 0.01 ---- !u!114 &5430786619612738921 +--- !u!114 &8639503432816219370 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -162,11 +174,8 @@ MonoBehaviour: m_GameObject: {fileID: 449802645721213856} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1731d8de2d0c84333b08ebe1e79f4118, type: 3} + m_Script: {fileID: 11500000, guid: 00e628f7a5fc9bd4fad78744c34d8147, type: 3} m_Name: m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 VisibilityRange: 10 VisibilityUpdateInterval: 1 - ForceHidden: 0 diff --git a/Assets/Tests/Performance/Runtime/10K/Prefabs/Monster.prefab b/Assets/Tests/Performance/Runtime/10K/Prefabs/Monster.prefab index 886e529d723..25d3b77ef04 100644 --- a/Assets/Tests/Performance/Runtime/10K/Prefabs/Monster.prefab +++ b/Assets/Tests/Performance/Runtime/10K/Prefabs/Monster.prefab @@ -29,6 +29,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.514, y: 0.974, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -44,9 +45,12 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -58,6 +62,7 @@ SpriteRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -93,9 +98,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: 02f33789c3e48486a96fb1923c81be06 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 1175662004 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 --- !u!114 &2278920908044998071 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Tests/Performance/Runtime/10K/Prefabs/Player.prefab b/Assets/Tests/Performance/Runtime/10K/Prefabs/Player.prefab index 6aa58737ae4..696cabb453d 100644 --- a/Assets/Tests/Performance/Runtime/10K/Prefabs/Player.prefab +++ b/Assets/Tests/Performance/Runtime/10K/Prefabs/Player.prefab @@ -28,6 +28,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -43,9 +44,12 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -57,6 +61,7 @@ SpriteRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -92,6 +97,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: 82ea0e1a4f3c84ef197e19b44c096865 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -208420331 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 diff --git a/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored.png.meta b/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored.png.meta index 38d5088ce50..7957fbaaf32 100644 --- a/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored.png.meta +++ b/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored.png.meta @@ -3095,6 +3095,8 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -3104,11 +3106,11 @@ TextureImporter: textureSettings: serializedVersion: 2 filterMode: 0 - aniso: -1 - mipBias: -100 + aniso: 1 + mipBias: 0 wrapU: 1 wrapV: 1 - wrapW: -1 + wrapW: 0 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -3126,9 +3128,12 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 applyGammaDecoding: 1 platformSettings: - serializedVersion: 3 @@ -24696,6 +24701,1031 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: + colored_75: 21300150 + colored_691: 21301382 + colored_934: 21301868 + colored_936: 21301872 + colored_867: 21301734 + colored_85: 21300170 + colored_221: 21300442 + colored_1004: 21302008 + colored_217: 21300434 + colored_663: 21301326 + colored_671: 21301342 + colored_946: 21301892 + colored_329: 21300658 + colored_571: 21301142 + colored_644: 21301288 + colored_888: 21301776 + colored_339: 21300678 + colored_941: 21301882 + colored_997: 21301994 + colored_206: 21300412 + colored_407: 21300814 + colored_966: 21301932 + colored_489: 21300978 + colored_552: 21301104 + colored_999: 21301998 + colored_277: 21300554 + colored_404: 21300808 + colored_834: 21301668 + colored_41: 21300082 + colored_234: 21300468 + colored_462: 21300924 + colored_886: 21301772 + colored_645: 21301290 + colored_174: 21300348 + colored_265: 21300530 + colored_833: 21301666 + colored_558: 21301116 + colored_1002: 21302004 + monster_shield_sword: 21300062 + colored_110: 21300220 + colored_408: 21300816 + colored_228: 21300456 + colored_224: 21300448 + colored_471: 21300942 + colored_445: 21300890 + colored_711: 21301422 + colored_635: 21301270 + colored_650: 21301300 + colored_693: 21301386 + colored_862: 21301724 + colored_793: 21301586 + colored_774: 21301548 + colored_887: 21301774 + colored_83: 21300166 + colored_51: 21300102 + colored_517: 21301034 + colored_594: 21301188 + colored_381: 21300762 + colored_500: 21301000 + colored_892: 21301784 + colored_881: 21301762 + colored_968: 21301936 + colored_505: 21301010 + colored_981: 21301962 + colored_474: 21300948 + colored_146: 21300292 + colored_761: 21301522 + colored_988: 21301976 + colored_893: 21301786 + colored_181: 21300362 + colored_256: 21300512 + colored_89: 21300178 + colored_849: 21301698 + colored_512: 21301024 + colored_243: 21300486 + colored_303: 21300606 + colored_925: 21301850 + colored_963: 21301926 + colored_590: 21301180 + colored_42: 21300084 + colored_907: 21301814 + colored_330: 21300660 + colored_800: 21301600 + colored_854: 21301708 + colored_972: 21301944 + colored_459: 21300918 + colored_768: 21301536 + colored_113: 21300226 + colored_434: 21300868 + colored_543: 21301086 + colored_890: 21301780 + colored_537: 21301074 + colored_450: 21300900 + colored_973: 21301946 + colored_943: 21301886 + colored_260: 21300520 + colored_737: 21301474 + colored_993: 21301986 + colored_433: 21300866 + colored_684: 21301368 + colored_96: 21300192 + colored_167: 21300334 + colored_1011: 21302022 + colored_751: 21301502 + colored_301: 21300602 + colored_734: 21301468 + colored_612: 21301224 + colored_695: 21301390 + colored_352: 21300704 + colored_98: 21300196 + colored_71: 21300142 + colored_781: 21301562 + colored_204: 21300408 + colored_576: 21301152 + colored_608: 21301216 + colored_740: 21301480 + colored_195: 21300390 + colored_54: 21300108 + colored_29: 21300058 + colored_340: 21300680 + colored_477: 21300954 + colored_978: 21301956 + colored_991: 21301982 + colored_279: 21300558 + colored_722: 21301444 + colored_22: 21300044 + colored_653: 21301306 + colored_738: 21301476 + colored_680: 21301360 + colored_413: 21300826 + colored_746: 21301492 + colored_326: 21300652 + colored_122: 21300244 + colored_169: 21300338 + colored_660: 21301320 + colored_971: 21301942 + colored_545: 21301090 + colored_709: 21301418 + colored_607: 21301214 + colored_701: 21301402 + colored_100: 21300200 + colored_803: 21301606 + colored_311: 21300622 + colored_188: 21300376 + colored_655: 21301310 + colored_1021: 21302042 + colored_116: 21300232 + colored_114: 21300228 + colored_807: 21301614 + colored_432: 21300864 + colored_350: 21300700 + colored_288: 21300576 + colored_284: 21300568 + colored_766: 21301532 + colored_424: 21300848 + colored_171: 21300342 + colored_921: 21301842 + colored_713: 21301426 + colored_358: 21300716 + colored_494: 21300988 + colored_912: 21301824 + colored_168: 21300336 + colored_382: 21300764 + colored_605: 21301210 + colored_1006: 21302012 + colored_870: 21301740 + colored_91: 21300182 + colored_134: 21300268 + colored_426: 21300852 + colored_231: 21300462 + colored_955: 21301910 + colored_331: 21300662 + colored_661: 21301322 + colored_435: 21300870 + colored_718: 21301436 + colored_1018: 21302036 + colored_145: 21300290 + colored_667: 21301334 + colored_1022: 21302044 + colored_383: 21300766 + colored_983: 21301966 + colored_700: 21301400 + colored_237: 21300474 + colored_200: 21300400 + colored_307: 21300614 + colored_422: 21300844 + colored_370: 21300740 + colored_559: 21301118 + colored_581: 21301162 + colored_632: 21301264 + colored_681: 21301362 + colored_16: 21300032 + colored_220: 21300440 + colored_321: 21300642 + colored_274: 21300548 + colored_165: 21300330 + colored_980: 21301960 + colored_439: 21300878 + colored_402: 21300804 + colored_482: 21300964 + colored_924: 21301848 + colored_437: 21300874 + colored_385: 21300770 + colored_99: 21300198 + colored_269: 21300538 + colored_1: 21300002 + colored_775: 21301550 + colored_821: 21301642 + colored_354: 21300708 + colored_917: 21301834 + colored_465: 21300930 + colored_501: 21301002 + colored_101: 21300202 + colored_458: 21300916 + colored_68: 21300136 + colored_414: 21300828 + colored_668: 21301336 + colored_647: 21301294 + colored_74: 21300148 + colored_842: 21301684 + colored_299: 21300598 + colored_990: 21301980 + colored_281: 21300562 + colored_651: 21301302 + colored_964: 21301928 + colored_337: 21300674 + colored_133: 21300266 + colored_703: 21301406 + colored_363: 21300726 + colored_826: 21301652 + colored_470: 21300940 + colored_838: 21301676 + colored_360: 21300720 + colored_97: 21300194 + colored_566: 21301132 + colored_429: 21300858 + colored_255: 21300510 + colored_524: 21301048 + colored_707: 21301414 + colored_745: 21301490 + colored_509: 21301018 + colored_342: 21300684 + colored_76: 21300152 + colored_662: 21301324 + colored_219: 21300438 + colored_550: 21301100 + colored_250: 21300500 + colored_150: 21300300 + colored_574: 21301148 + colored_160: 21300320 + colored_507: 21301014 + colored_105: 21300210 + colored_348: 21300696 + colored_365: 21300730 + colored_483: 21300966 + colored_690: 21301380 + colored_61: 21300122 + colored_795: 21301590 + colored_723: 21301446 + colored_95: 21300190 + colored_361: 21300722 + colored_754: 21301508 + colored_129: 21300258 + colored_406: 21300812 + colored_977: 21301954 + colored_996: 21301992 + colored_994: 21301988 + colored_575: 21301150 + colored_582: 21301164 + colored_830: 21301660 + colored_395: 21300790 + colored_902: 21301804 + colored_757: 21301514 + colored_733: 21301466 + colored_727: 21301454 + colored_958: 21301916 + colored_598: 21301196 + colored_173: 21300346 + colored_918: 21301836 + colored_469: 21300938 + colored_565: 21301130 + colored_801: 21301602 + colored_140: 21300280 + colored_947: 21301894 + colored_603: 21301206 + colored_73: 21300146 + colored_965: 21301930 + colored_199: 21300398 + colored_683: 21301366 + colored_1009: 21302018 + colored_806: 21301612 + colored_154: 21300308 + colored_118: 21300236 + colored_913: 21301826 + colored_23: 21300046 + colored_322: 21300644 + colored_84: 21300168 + colored_372: 21300744 + colored_811: 21301622 + colored_908: 21301816 + colored_364: 21300728 + colored_141: 21300282 + colored_763: 21301526 + colored_253: 21300506 + colored_239: 21300478 + colored_64: 21300128 + colored_666: 21301332 + colored_636: 21301272 + colored_317: 21300634 + colored_528: 21301056 + colored_19: 21300038 + colored_732: 21301464 + colored_8: 21300016 + colored_530: 21301060 + colored_557: 21301114 + colored_451: 21300902 + colored_5: 21300010 + colored_899: 21301798 + colored_226: 21300452 + colored_164: 21300328 + colored_44: 21300088 + colored_520: 21301040 + colored_416: 21300832 + colored_848: 21301696 + colored_549: 21301098 + colored_438: 21300876 + colored_825: 21301650 + colored_928: 21301856 + colored_323: 21300646 + colored_515: 21301030 + colored_50: 21300100 + colored_536: 21301072 + colored_542: 21301084 + colored_104: 21300208 + colored_962: 21301924 + colored_272: 21300544 + colored_386: 21300772 + colored_151: 21300302 + colored_620: 21301240 + colored_218: 21300436 + colored_420: 21300840 + colored_923: 21301846 + colored_770: 21301540 + colored_203: 21300406 + colored_555: 21301110 + colored_444: 21300888 + colored_638: 21301276 + colored_155: 21300310 + colored_225: 21300450 + colored_824: 21301648 + colored_601: 21301202 + colored_427: 21300854 + colored_455: 21300910 + colored_813: 21301626 + colored_148: 21300296 + colored_187: 21300374 + colored_378: 21300756 + colored_490: 21300980 + colored_246: 21300492 + colored_567: 21301134 + colored_45: 21300090 + colored_798: 21301596 + colored_28: 21300056 + colored_72: 21300144 + colored_929: 21301858 + colored_4: 21300008 + colored_748: 21301496 + colored_125: 21300250 + colored_593: 21301186 + colored_856: 21301712 + colored_544: 21301088 + colored_864: 21301728 + colored_443: 21300886 + colored_13: 21300026 + colored_111: 21300222 + colored_717: 21301434 + colored_449: 21300898 + colored_103: 21300206 + colored_264: 21300528 + colored_38: 21300076 + colored_369: 21300738 + colored_919: 21301838 + colored_213: 21300426 + colored_610: 21301220 + colored_939: 21301878 + colored_616: 21301232 + colored_831: 21301662 + colored_743: 21301486 + colored_822: 21301644 + colored_935: 21301870 + colored_726: 21301452 + colored_699: 21301398 + colored_721: 21301442 + colored_137: 21300274 + colored_222: 21300444 + colored_583: 21301166 + colored_398: 21300796 + colored_640: 21301280 + colored_163: 21300326 + colored_36: 21300072 + colored_241: 21300482 + colored_675: 21301350 + colored_215: 21300430 + colored_47: 21300094 + colored_82: 21300164 + colored_513: 21301026 + colored_837: 21301674 + colored_776: 21301552 + colored_135: 21300270 + colored_55: 21300110 + colored_630: 21301260 + colored_1019: 21302038 + colored_609: 21301218 + colored_24: 21300048 + colored_804: 21301608 + colored_735: 21301470 + colored_606: 21301212 + colored_179: 21300358 + colored_232: 21300464 + colored_33: 21300066 + colored_521: 21301042 + colored_529: 21301058 + colored_914: 21301828 + colored_48: 21300096 + colored_1001: 21302002 + colored_553: 21301106 + colored_749: 21301498 + colored_233: 21300466 + colored_78: 21300156 + colored_702: 21301404 + colored_875: 21301750 + colored_532: 21301064 + colored_87: 21300174 + colored_622: 21301244 + colored_659: 21301318 + colored_889: 21301778 + colored_245: 21300490 + colored_1015: 21302030 + colored_698: 21301396 + colored_344: 21300688 + colored_249: 21300498 + colored_1008: 21302016 + colored_207: 21300414 + colored_293: 21300586 + colored_539: 21301078 + colored_915: 21301830 + colored_248: 21300496 + colored_785: 21301570 + colored_473: 21300946 + colored_669: 21301338 + colored_878: 21301756 + colored_802: 21301604 + colored_366: 21300732 + colored_812: 21301624 + colored_153: 21300306 + colored_855: 21301710 + colored_519: 21301038 + colored_254: 21300508 + colored_569: 21301138 + colored_596: 21301192 + colored_65: 21300130 + colored_819: 21301638 + colored_338: 21300676 + colored_584: 21301168 + colored_138: 21300276 + colored_298: 21300596 + colored_90: 21300180 + colored_658: 21301316 + colored_874: 21301748 + colored_397: 21300794 + colored_180: 21300360 + colored_792: 21301584 + colored_262: 21300524 + colored_15: 21300030 + colored_572: 21301144 + colored_419: 21300838 + colored_626: 21301252 + colored_502: 21301004 + colored_901: 21301802 + colored_410: 21300820 + colored_396: 21300792 + colored_37: 21300074 + colored_392: 21300784 + colored_335: 21300670 + colored_756: 21301512 + colored_119: 21300238 + colored_548: 21301096 + colored_615: 21301230 + colored_570: 21301140 + colored_656: 21301312 + colored_664: 21301328 + colored_121: 21300242 + colored_362: 21300724 + colored_986: 21301972 + colored_836: 21301672 + colored_560: 21301120 + colored_762: 21301524 + colored_906: 21301812 + colored_353: 21300706 + colored_865: 21301730 + colored_911: 21301822 + colored_316: 21300632 + empty: 21300000 + colored_11: 21300022 + colored_624: 21301248 + colored_786: 21301572 + colored_885: 21301770 + colored_866: 21301732 + colored_909: 21301818 + colored_759: 21301518 + colored_394: 21300788 + colored_7: 21300014 + colored_283: 21300566 + colored_573: 21301146 + colored_633: 21301266 + colored_823: 21301646 + colored_843: 21301686 + colored_481: 21300962 + colored_380: 21300760 + colored_318: 21300636 + colored_969: 21301938 + colored_927: 21301854 + colored_9: 21300018 + colored_506: 21301012 + colored_325: 21300650 + colored_495: 21300990 + colored_599: 21301198 + colored_175: 21300350 + colored_30: 21300060 + colored_629: 21301258 + colored_933: 21301866 + colored_147: 21300294 + colored_1023: 21302046 + colored_478: 21300956 + colored_561: 21301122 + colored_285: 21300570 + colored_466: 21300932 + colored_611: 21301222 + colored_767: 21301534 + colored_183: 21300366 + colored_227: 21300454 + colored_945: 21301890 + colored_170: 21300340 + colored_126: 21300252 + colored_391: 21300782 + colored_879: 21301758 + colored_3: 21300006 + colored_349: 21300698 + colored_579: 21301158 + colored_109: 21300218 + colored_850: 21301700 + colored_538: 21301076 + colored_400: 21300800 + colored_21: 21300042 + colored_696: 21301392 + colored_898: 21301796 + colored_14: 21300028 + colored_236: 21300472 + colored_189: 21300378 + colored_880: 21301760 + colored_178: 21300356 + colored_286: 21300572 + colored_894: 21301788 + colored_472: 21300944 + colored_790: 21301580 + tree1: 21300064 + colored_859: 21301718 + colored_343: 21300686 + colored_903: 21301806 + colored_266: 21300532 + colored_926: 21301852 + colored_341: 21300682 + colored_814: 21301628 + colored_535: 21301070 + colored_788: 21301576 + colored_27: 21300054 + colored_387: 21300774 + colored_829: 21301658 + colored_304: 21300608 + colored_641: 21301282 + colored_115: 21300230 + colored_586: 21301172 + colored_309: 21300618 + colored_314: 21300628 + colored_720: 21301440 + colored_132: 21300264 + colored_716: 21301432 + colored_268: 21300536 + colored_799: 21301598 + colored_944: 21301888 + colored_948: 21301896 + colored_697: 21301394 + colored_498: 21300996 + colored_827: 21301654 + colored_127: 21300254 + colored_346: 21300692 + colored_787: 21301574 + colored_563: 21301126 + colored_613: 21301226 + colored_592: 21301184 + colored_546: 21301092 + colored_108: 21300216 + colored_782: 21301564 + colored_17: 21300034 + colored_430: 21300860 + colored_979: 21301958 + colored_1003: 21302006 + colored_152: 21300304 + colored_202: 21300404 + colored_185: 21300370 + colored_764: 21301528 + colored_158: 21300316 + colored_967: 21301934 + colored_454: 21300908 + colored_294: 21300588 + colored_496: 21300992 + colored_242: 21300484 + colored_623: 21301246 + colored_271: 21300542 + colored_604: 21301208 + colored_725: 21301450 + colored_210: 21300420 + colored_828: 21301656 + colored_39: 21300078 + colored_214: 21300428 + colored_405: 21300810 + colored_976: 21301952 + colored_846: 21301692 + colored_393: 21300786 + colored_637: 21301274 + colored_211: 21300422 + colored_526: 21301052 + colored_597: 21301194 + colored_930: 21301860 + colored_379: 21300758 + colored_197: 21300394 + colored_672: 21301344 + colored_739: 21301478 + colored_851: 21301702 + colored_1000: 21302000 + colored_562: 21301124 + colored_94: 21300188 + colored_356: 21300712 + colored_319: 21300638 + colored_480: 21300960 + colored_715: 21301430 + colored_791: 21301582 + colored_873: 21301746 + colored_534: 21301068 + colored_618: 21301236 + colored_810: 21301620 + colored_240: 21300480 + colored_69: 21300138 + colored_60: 21300120 + colored_367: 21300734 + colored_306: 21300612 + colored_332: 21300664 + colored_860: 21301720 + colored_985: 21301970 + colored_20: 21300040 + colored_1010: 21302020 + colored_1014: 21302028 + colored_292: 21300584 + colored_315: 21300630 + colored_950: 21301900 + colored_205: 21300410 + colored_580: 21301160 + colored_247: 21300494 + colored_144: 21300288 + colored_258: 21300516 + colored_261: 21300522 + colored_201: 21300402 + colored_136: 21300272 + colored_674: 21301348 + colored_989: 21301978 + colored_995: 21301990 + colored_287: 21300574 + colored_794: 21301588 + colored_639: 21301278 + colored_92: 21300184 + colored_374: 21300748 + colored_940: 21301880 + colored_184: 21300368 + colored_556: 21301112 + colored_708: 21301416 + colored_692: 21301384 + colored_492: 21300984 + colored_487: 21300974 + colored_882: 21301764 + colored_621: 21301242 + colored_589: 21301178 + colored_777: 21301554 + colored_373: 21300746 + colored_522: 21301044 + colored_750: 21301500 + colored_961: 21301922 + colored_670: 21301340 + colored_276: 21300552 + colored_81: 21300162 + colored_172: 21300344 + colored_840: 21301680 + colored_333: 21300666 + colored_308: 21300616 + colored_263: 21300526 + colored_270: 21300540 + colored_305: 21300610 + colored_752: 21301504 + colored_779: 21301558 + colored_442: 21300884 + colored_953: 21301906 + colored_86: 21300172 + colored_313: 21300626 + colored_649: 21301298 + colored_688: 21301376 + colored_808: 21301616 + colored_324: 21300648 + colored_177: 21300354 + colored_193: 21300386 + colored_267: 21300534 + colored_295: 21300590 + colored_468: 21300936 + colored_282: 21300564 + colored_554: 21301108 + colored_371: 21300742 + colored_403: 21300806 + colored_182: 21300364 + colored_460: 21300920 + colored_347: 21300694 + colored_685: 21301370 + colored_741: 21301482 + colored_161: 21300322 + colored_345: 21300690 + colored_49: 21300098 + colored_817: 21301634 + colored_190: 21300380 + colored_705: 21301410 + colored_974: 21301948 + colored_25: 21300050 + colored_327: 21300654 + colored_905: 21301810 + colored_421: 21300842 + colored_376: 21300752 + colored_223: 21300446 + colored_954: 21301908 + colored_120: 21300240 + colored_192: 21300384 + colored_278: 21300556 + colored_464: 21300928 + colored_357: 21300714 + colored_578: 21301156 + colored_728: 21301456 + colored_463: 21300926 + colored_853: 21301706 + colored_10: 21300020 + colored_816: 21301632 + colored_130: 21300260 + colored_297: 21300594 + colored_59: 21300118 + colored_296: 21300592 + colored_619: 21301238 + colored_916: 21301832 + colored_676: 21301352 + colored_932: 21301864 + colored_452: 21300904 + colored_634: 21301268 + colored_780: 21301560 + colored_334: 21300668 + colored_485: 21300970 + colored_80: 21300160 + colored_1020: 21302040 + colored_504: 21301008 + colored_883: 21301766 + colored_731: 21301462 + colored_1012: 21302024 + colored_952: 21301904 + colored_772: 21301544 + colored_58: 21300116 + colored_682: 21301364 + colored_508: 21301016 + colored_257: 21300514 + colored_290: 21300580 + colored_729: 21301458 + colored_736: 21301472 + colored_719: 21301438 + colored_778: 21301556 + colored_744: 21301488 + colored_527: 21301054 + colored_783: 21301566 + colored_1005: 21302010 + colored_1007: 21302014 + colored_230: 21300460 + colored_525: 21301050 + colored_280: 21300560 + colored_176: 21300352 + colored_547: 21301094 + colored_57: 21300114 + colored_625: 21301250 + colored_742: 21301484 + colored_673: 21301346 + colored_657: 21301314 + colored_847: 21301694 + colored_368: 21300736 + colored_975: 21301950 + colored_409: 21300818 + colored_461: 21300922 + colored_998: 21301996 + colored_891: 21301782 + colored_600: 21301200 + colored_514: 21301028 + colored_252: 21300504 + colored_411: 21300822 + colored_712: 21301424 + colored_412: 21300824 + colored_300: 21300600 + colored_479: 21300958 + colored_2: 21300004 + colored_488: 21300976 + colored_591: 21301182 + colored_796: 21301592 + colored_896: 21301792 + colored_112: 21300224 + colored_66: 21300132 + colored_162: 21300324 + colored_139: 21300278 + colored_714: 21301428 + colored_67: 21300134 + colored_235: 21300470 + colored_784: 21301568 + colored_475: 21300950 + colored_805: 21301610 + colored_26: 21300052 + colored_212: 21300424 + colored_1013: 21302026 + colored_869: 21301738 + colored_359: 21300718 + colored_428: 21300856 + colored_686: 21301372 + colored_861: 21301722 + colored_63: 21300126 + colored_845: 21301690 + colored_747: 21301494 + colored_244: 21300488 + colored_273: 21300546 + colored_43: 21300086 + colored_523: 21301046 + colored_238: 21300476 + colored_56: 21300112 + colored_648: 21301296 + colored_533: 21301066 + colored_131: 21300262 + colored_654: 21301308 + colored_588: 21301176 + colored_694: 21301388 + colored_835: 21301670 + colored_724: 21301448 + colored_156: 21300312 + colored_52: 21300104 + colored_627: 21301254 + colored_704: 21301408 + colored_457: 21300914 + colored_970: 21301940 + colored_423: 21300846 + colored_493: 21300986 + colored_568: 21301136 + colored_628: 21301256 + colored_518: 21301036 + colored_375: 21300750 + colored_275: 21300550 + colored_186: 21300372 + colored_595: 21301190 + colored_149: 21300298 + colored_809: 21301618 + colored_142: 21300284 + colored_541: 21301082 + colored_957: 21301914 + colored_388: 21300776 + colored_820: 21301640 + colored_758: 21301516 + colored_312: 21300624 + colored_425: 21300850 + colored_196: 21300392 + colored_166: 21300332 + colored_208: 21300416 + colored_922: 21301844 + colored_760: 21301520 + colored_40: 21300080 + colored_355: 21300710 + colored_289: 21300578 + colored_431: 21300862 + colored_390: 21300780 + colored_1017: 21302034 + colored_448: 21300896 + colored_503: 21301006 + colored_70: 21300140 + colored_491: 21300982 + colored_895: 21301790 + colored_679: 21301358 + colored_706: 21301412 + colored_617: 21301234 + colored_876: 21301752 + colored_291: 21300582 + colored_79: 21300158 + colored_453: 21300906 + colored_689: 21301378 + colored_710: 21301420 + colored_143: 21300286 + colored_302: 21300604 + colored_328: 21300656 + colored_984: 21301968 + colored_389: 21300778 + colored_587: 21301174 + colored_531: 21301062 + colored_602: 21301204 + colored_839: 21301678 + colored_34: 21300068 + colored_687: 21301374 + colored_511: 21301022 + colored_577: 21301154 + colored_665: 21301330 + colored_652: 21301304 + colored_198: 21300396 + colored_872: 21301744 + colored_107: 21300214 + colored_753: 21301506 + colored_987: 21301974 + colored_931: 21301862 + colored_102: 21300204 + colored_765: 21301530 + colored_486: 21300972 + colored_755: 21301510 + colored_320: 21300640 + colored_336: 21300672 + colored_900: 21301800 + colored_938: 21301876 + colored_910: 21301820 + colored_18: 21300036 + colored_194: 21300388 + colored_159: 21300318 + colored_310: 21300620 + colored_229: 21300458 + colored_897: 21301794 + colored_441: 21300882 + colored_46: 21300092 + colored_642: 21301284 + colored_564: 21301128 + colored_440: 21300880 + colored_959: 21301918 + colored_643: 21301286 + colored_937: 21301874 + colored_467: 21300934 + colored_877: 21301754 + colored_904: 21301808 + colored_53: 21300106 + colored_351: 21300702 + colored_960: 21301920 + colored_841: 21301682 + colored_818: 21301636 + colored_6: 21300012 + colored_992: 21301984 + colored_585: 21301170 + colored_868: 21301736 + colored_216: 21300432 + colored_949: 21301898 + colored_510: 21301020 + colored_499: 21300998 + colored_678: 21301356 + colored_191: 21300382 + colored_789: 21301578 + colored_884: 21301768 + colored_259: 21300518 + colored_377: 21300754 + colored_614: 21301228 + colored_251: 21300502 + colored_124: 21300248 + colored_12: 21300024 + colored_106: 21300212 + colored_384: 21300768 + colored_677: 21301354 + colored_551: 21301102 + colored_128: 21300256 + colored_797: 21301594 + colored_844: 21301688 + colored_447: 21300894 + colored_769: 21301538 + colored_93: 21300186 + colored_773: 21301546 + colored_852: 21301704 + colored_77: 21300154 + colored_858: 21301716 + colored_832: 21301664 + colored_920: 21301840 + colored_1016: 21302032 + colored_456: 21300912 + colored_88: 21300176 + colored_415: 21300830 + colored_476: 21300952 + colored_417: 21300834 + colored_418: 21300836 + colored_815: 21301630 + colored_942: 21301884 + colored_871: 21301742 + colored_516: 21301032 + colored_956: 21301912 + colored_209: 21300418 + colored_401: 21300802 + colored_497: 21300994 + colored_982: 21301964 + colored_35: 21300070 + colored_646: 21301292 + colored_730: 21301460 + colored_117: 21300234 + colored_123: 21300246 + colored_631: 21301262 + colored_157: 21300314 + colored_399: 21300798 + colored_484: 21300968 + colored_771: 21301542 + colored_951: 21301902 + colored_446: 21300892 + colored_863: 21301726 + colored_857: 21301714 + colored_436: 21300872 + colored_540: 21301080 + colored_62: 21300124 spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored_transparent.png.meta b/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored_transparent.png.meta index e7c158b3edf..eb9c5dd5a80 100644 --- a/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored_transparent.png.meta +++ b/Assets/Tests/Performance/Runtime/10K/Textures/1bitpack_kenney/colored_transparent.png.meta @@ -3095,6 +3095,8 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -3104,11 +3106,11 @@ TextureImporter: textureSettings: serializedVersion: 2 filterMode: 0 - aniso: -1 - mipBias: -100 + aniso: 1 + mipBias: 0 wrapU: 1 wrapV: 1 - wrapW: -1 + wrapW: 0 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -3126,9 +3128,12 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 applyGammaDecoding: 1 platformSettings: - serializedVersion: 3 @@ -24696,6 +24701,1031 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: + colored_75: 21300150 + colored_691: 21301382 + colored_934: 21301868 + colored_936: 21301872 + colored_867: 21301734 + colored_85: 21300170 + colored_221: 21300442 + colored_1004: 21302008 + colored_217: 21300434 + colored_663: 21301326 + colored_671: 21301342 + colored_946: 21301892 + colored_329: 21300658 + colored_571: 21301142 + colored_644: 21301288 + colored_888: 21301776 + colored_339: 21300678 + colored_941: 21301882 + colored_997: 21301994 + colored_206: 21300412 + colored_407: 21300814 + colored_966: 21301932 + colored_489: 21300978 + colored_552: 21301104 + colored_999: 21301998 + colored_277: 21300554 + colored_404: 21300808 + colored_834: 21301668 + colored_41: 21300082 + colored_234: 21300468 + colored_462: 21300924 + colored_886: 21301772 + colored_645: 21301290 + colored_174: 21300348 + colored_265: 21300530 + colored_833: 21301666 + colored_558: 21301116 + colored_1002: 21302004 + monster_shield_sword: 21300062 + colored_110: 21300220 + colored_408: 21300816 + colored_228: 21300456 + colored_224: 21300448 + colored_471: 21300942 + colored_445: 21300890 + colored_711: 21301422 + colored_635: 21301270 + colored_650: 21301300 + colored_693: 21301386 + colored_862: 21301724 + colored_793: 21301586 + colored_774: 21301548 + colored_887: 21301774 + colored_83: 21300166 + colored_51: 21300102 + colored_517: 21301034 + colored_594: 21301188 + colored_381: 21300762 + colored_500: 21301000 + colored_892: 21301784 + colored_881: 21301762 + colored_968: 21301936 + colored_505: 21301010 + colored_981: 21301962 + colored_474: 21300948 + colored_146: 21300292 + colored_761: 21301522 + colored_988: 21301976 + colored_893: 21301786 + colored_181: 21300362 + colored_256: 21300512 + colored_89: 21300178 + colored_849: 21301698 + colored_512: 21301024 + colored_243: 21300486 + colored_303: 21300606 + colored_925: 21301850 + colored_963: 21301926 + colored_590: 21301180 + colored_42: 21300084 + colored_907: 21301814 + colored_330: 21300660 + colored_800: 21301600 + colored_854: 21301708 + colored_972: 21301944 + colored_459: 21300918 + colored_768: 21301536 + colored_113: 21300226 + colored_434: 21300868 + colored_543: 21301086 + colored_890: 21301780 + colored_537: 21301074 + colored_450: 21300900 + colored_973: 21301946 + colored_943: 21301886 + colored_260: 21300520 + colored_737: 21301474 + colored_993: 21301986 + colored_433: 21300866 + colored_684: 21301368 + colored_96: 21300192 + colored_167: 21300334 + colored_1011: 21302022 + colored_751: 21301502 + colored_301: 21300602 + colored_734: 21301468 + colored_612: 21301224 + colored_695: 21301390 + colored_352: 21300704 + colored_98: 21300196 + colored_71: 21300142 + colored_781: 21301562 + colored_204: 21300408 + colored_576: 21301152 + colored_608: 21301216 + colored_740: 21301480 + colored_195: 21300390 + colored_54: 21300108 + colored_29: 21300058 + colored_340: 21300680 + colored_477: 21300954 + colored_978: 21301956 + colored_991: 21301982 + colored_279: 21300558 + colored_722: 21301444 + colored_22: 21300044 + colored_653: 21301306 + colored_738: 21301476 + colored_680: 21301360 + colored_413: 21300826 + colored_746: 21301492 + colored_326: 21300652 + colored_122: 21300244 + colored_169: 21300338 + colored_660: 21301320 + colored_971: 21301942 + colored_545: 21301090 + colored_709: 21301418 + colored_607: 21301214 + colored_701: 21301402 + colored_100: 21300200 + colored_803: 21301606 + colored_311: 21300622 + colored_188: 21300376 + colored_655: 21301310 + colored_1021: 21302042 + colored_116: 21300232 + colored_114: 21300228 + colored_807: 21301614 + colored_432: 21300864 + colored_350: 21300700 + colored_288: 21300576 + colored_284: 21300568 + colored_766: 21301532 + colored_424: 21300848 + colored_171: 21300342 + colored_921: 21301842 + colored_713: 21301426 + colored_358: 21300716 + colored_494: 21300988 + colored_912: 21301824 + colored_168: 21300336 + colored_382: 21300764 + colored_605: 21301210 + colored_1006: 21302012 + colored_870: 21301740 + colored_91: 21300182 + colored_134: 21300268 + colored_426: 21300852 + colored_231: 21300462 + colored_955: 21301910 + colored_331: 21300662 + colored_661: 21301322 + colored_435: 21300870 + colored_718: 21301436 + colored_1018: 21302036 + colored_145: 21300290 + colored_667: 21301334 + colored_1022: 21302044 + colored_383: 21300766 + colored_983: 21301966 + colored_700: 21301400 + colored_237: 21300474 + colored_200: 21300400 + colored_307: 21300614 + colored_422: 21300844 + colored_370: 21300740 + colored_559: 21301118 + colored_581: 21301162 + colored_632: 21301264 + colored_681: 21301362 + colored_16: 21300032 + colored_220: 21300440 + colored_321: 21300642 + colored_274: 21300548 + colored_165: 21300330 + colored_980: 21301960 + colored_439: 21300878 + colored_402: 21300804 + colored_482: 21300964 + colored_924: 21301848 + colored_437: 21300874 + colored_385: 21300770 + colored_99: 21300198 + colored_269: 21300538 + colored_1: 21300002 + colored_775: 21301550 + colored_821: 21301642 + colored_354: 21300708 + colored_917: 21301834 + colored_465: 21300930 + colored_501: 21301002 + colored_101: 21300202 + colored_458: 21300916 + colored_68: 21300136 + colored_414: 21300828 + colored_668: 21301336 + colored_647: 21301294 + colored_74: 21300148 + colored_842: 21301684 + colored_299: 21300598 + colored_990: 21301980 + colored_281: 21300562 + colored_651: 21301302 + colored_964: 21301928 + colored_337: 21300674 + colored_133: 21300266 + colored_703: 21301406 + colored_363: 21300726 + colored_826: 21301652 + colored_470: 21300940 + colored_838: 21301676 + colored_360: 21300720 + colored_97: 21300194 + colored_566: 21301132 + colored_429: 21300858 + colored_255: 21300510 + colored_524: 21301048 + colored_707: 21301414 + colored_745: 21301490 + colored_509: 21301018 + colored_342: 21300684 + colored_76: 21300152 + colored_662: 21301324 + colored_219: 21300438 + colored_550: 21301100 + colored_250: 21300500 + colored_150: 21300300 + colored_574: 21301148 + colored_160: 21300320 + colored_507: 21301014 + colored_105: 21300210 + colored_348: 21300696 + colored_365: 21300730 + colored_483: 21300966 + colored_690: 21301380 + colored_61: 21300122 + colored_795: 21301590 + colored_723: 21301446 + colored_95: 21300190 + colored_361: 21300722 + colored_754: 21301508 + colored_129: 21300258 + colored_406: 21300812 + colored_977: 21301954 + colored_996: 21301992 + colored_994: 21301988 + colored_575: 21301150 + colored_582: 21301164 + colored_830: 21301660 + colored_395: 21300790 + colored_902: 21301804 + colored_757: 21301514 + colored_733: 21301466 + colored_727: 21301454 + colored_958: 21301916 + colored_598: 21301196 + colored_173: 21300346 + colored_918: 21301836 + colored_469: 21300938 + colored_565: 21301130 + colored_801: 21301602 + colored_140: 21300280 + colored_947: 21301894 + colored_603: 21301206 + colored_73: 21300146 + colored_965: 21301930 + colored_199: 21300398 + colored_683: 21301366 + colored_1009: 21302018 + colored_806: 21301612 + colored_154: 21300308 + colored_118: 21300236 + colored_913: 21301826 + colored_23: 21300046 + colored_322: 21300644 + colored_84: 21300168 + colored_372: 21300744 + colored_811: 21301622 + colored_908: 21301816 + colored_364: 21300728 + colored_141: 21300282 + colored_763: 21301526 + colored_253: 21300506 + colored_239: 21300478 + colored_64: 21300128 + colored_666: 21301332 + colored_636: 21301272 + colored_317: 21300634 + colored_528: 21301056 + colored_19: 21300038 + colored_732: 21301464 + colored_8: 21300016 + colored_530: 21301060 + colored_557: 21301114 + colored_451: 21300902 + colored_5: 21300010 + colored_899: 21301798 + colored_226: 21300452 + colored_164: 21300328 + colored_44: 21300088 + colored_520: 21301040 + colored_416: 21300832 + colored_848: 21301696 + colored_549: 21301098 + colored_438: 21300876 + colored_825: 21301650 + colored_928: 21301856 + colored_323: 21300646 + colored_515: 21301030 + colored_50: 21300100 + colored_536: 21301072 + colored_542: 21301084 + colored_104: 21300208 + colored_962: 21301924 + colored_272: 21300544 + colored_386: 21300772 + colored_151: 21300302 + colored_620: 21301240 + colored_218: 21300436 + colored_420: 21300840 + colored_923: 21301846 + colored_770: 21301540 + colored_203: 21300406 + colored_555: 21301110 + colored_444: 21300888 + colored_638: 21301276 + colored_155: 21300310 + colored_225: 21300450 + colored_824: 21301648 + colored_601: 21301202 + colored_427: 21300854 + colored_455: 21300910 + colored_813: 21301626 + colored_148: 21300296 + colored_187: 21300374 + colored_378: 21300756 + colored_490: 21300980 + colored_246: 21300492 + colored_567: 21301134 + colored_45: 21300090 + colored_798: 21301596 + colored_28: 21300056 + colored_72: 21300144 + colored_929: 21301858 + colored_4: 21300008 + colored_748: 21301496 + colored_125: 21300250 + colored_593: 21301186 + colored_856: 21301712 + colored_544: 21301088 + colored_864: 21301728 + colored_443: 21300886 + colored_13: 21300026 + colored_111: 21300222 + colored_717: 21301434 + colored_449: 21300898 + colored_103: 21300206 + colored_264: 21300528 + colored_38: 21300076 + colored_369: 21300738 + colored_919: 21301838 + colored_213: 21300426 + colored_610: 21301220 + colored_939: 21301878 + colored_616: 21301232 + colored_831: 21301662 + colored_743: 21301486 + colored_822: 21301644 + colored_935: 21301870 + colored_726: 21301452 + colored_699: 21301398 + colored_721: 21301442 + colored_137: 21300274 + colored_222: 21300444 + colored_583: 21301166 + colored_398: 21300796 + colored_640: 21301280 + colored_163: 21300326 + colored_36: 21300072 + colored_241: 21300482 + colored_675: 21301350 + colored_215: 21300430 + colored_47: 21300094 + colored_82: 21300164 + colored_513: 21301026 + colored_837: 21301674 + colored_776: 21301552 + colored_135: 21300270 + colored_55: 21300110 + colored_630: 21301260 + colored_1019: 21302038 + colored_609: 21301218 + colored_24: 21300048 + colored_804: 21301608 + colored_735: 21301470 + colored_606: 21301212 + colored_179: 21300358 + colored_232: 21300464 + colored_33: 21300066 + colored_521: 21301042 + colored_529: 21301058 + colored_914: 21301828 + colored_48: 21300096 + colored_1001: 21302002 + colored_553: 21301106 + colored_749: 21301498 + colored_233: 21300466 + colored_78: 21300156 + colored_702: 21301404 + colored_875: 21301750 + colored_532: 21301064 + colored_87: 21300174 + colored_622: 21301244 + colored_659: 21301318 + colored_889: 21301778 + colored_245: 21300490 + colored_1015: 21302030 + colored_698: 21301396 + colored_344: 21300688 + colored_249: 21300498 + colored_1008: 21302016 + colored_207: 21300414 + colored_293: 21300586 + colored_539: 21301078 + colored_915: 21301830 + colored_248: 21300496 + colored_785: 21301570 + colored_473: 21300946 + colored_669: 21301338 + colored_878: 21301756 + colored_802: 21301604 + colored_366: 21300732 + colored_812: 21301624 + colored_153: 21300306 + colored_855: 21301710 + colored_519: 21301038 + colored_254: 21300508 + colored_569: 21301138 + colored_596: 21301192 + colored_65: 21300130 + colored_819: 21301638 + colored_338: 21300676 + colored_584: 21301168 + colored_138: 21300276 + colored_298: 21300596 + colored_90: 21300180 + colored_658: 21301316 + colored_874: 21301748 + colored_397: 21300794 + colored_180: 21300360 + colored_792: 21301584 + colored_262: 21300524 + colored_15: 21300030 + colored_572: 21301144 + colored_419: 21300838 + colored_626: 21301252 + colored_502: 21301004 + colored_901: 21301802 + colored_410: 21300820 + colored_396: 21300792 + colored_37: 21300074 + colored_392: 21300784 + colored_335: 21300670 + colored_756: 21301512 + colored_119: 21300238 + colored_548: 21301096 + colored_615: 21301230 + colored_570: 21301140 + colored_656: 21301312 + colored_664: 21301328 + colored_121: 21300242 + colored_362: 21300724 + colored_986: 21301972 + colored_836: 21301672 + colored_560: 21301120 + colored_762: 21301524 + colored_906: 21301812 + colored_353: 21300706 + colored_865: 21301730 + colored_911: 21301822 + colored_316: 21300632 + empty: 21300000 + colored_11: 21300022 + colored_624: 21301248 + colored_786: 21301572 + colored_885: 21301770 + colored_866: 21301732 + colored_909: 21301818 + colored_759: 21301518 + colored_394: 21300788 + colored_7: 21300014 + colored_283: 21300566 + colored_573: 21301146 + colored_633: 21301266 + colored_823: 21301646 + colored_843: 21301686 + colored_481: 21300962 + colored_380: 21300760 + colored_318: 21300636 + colored_969: 21301938 + colored_927: 21301854 + colored_9: 21300018 + colored_506: 21301012 + colored_325: 21300650 + colored_495: 21300990 + colored_599: 21301198 + colored_175: 21300350 + colored_30: 21300060 + colored_629: 21301258 + colored_933: 21301866 + colored_147: 21300294 + colored_1023: 21302046 + colored_478: 21300956 + colored_561: 21301122 + colored_285: 21300570 + colored_466: 21300932 + colored_611: 21301222 + colored_767: 21301534 + colored_183: 21300366 + colored_227: 21300454 + colored_945: 21301890 + colored_170: 21300340 + colored_126: 21300252 + colored_391: 21300782 + colored_879: 21301758 + colored_3: 21300006 + colored_349: 21300698 + colored_579: 21301158 + colored_109: 21300218 + colored_850: 21301700 + colored_538: 21301076 + colored_400: 21300800 + colored_21: 21300042 + colored_696: 21301392 + colored_898: 21301796 + colored_14: 21300028 + colored_236: 21300472 + colored_189: 21300378 + colored_880: 21301760 + colored_178: 21300356 + colored_286: 21300572 + colored_894: 21301788 + colored_472: 21300944 + colored_790: 21301580 + tree1: 21300064 + colored_859: 21301718 + colored_343: 21300686 + colored_903: 21301806 + colored_266: 21300532 + colored_926: 21301852 + colored_341: 21300682 + colored_814: 21301628 + colored_535: 21301070 + colored_788: 21301576 + colored_27: 21300054 + colored_387: 21300774 + colored_829: 21301658 + colored_304: 21300608 + colored_641: 21301282 + colored_115: 21300230 + colored_586: 21301172 + colored_309: 21300618 + colored_314: 21300628 + colored_720: 21301440 + colored_132: 21300264 + colored_716: 21301432 + colored_268: 21300536 + colored_799: 21301598 + colored_944: 21301888 + colored_948: 21301896 + colored_697: 21301394 + colored_498: 21300996 + colored_827: 21301654 + colored_127: 21300254 + colored_346: 21300692 + colored_787: 21301574 + colored_563: 21301126 + colored_613: 21301226 + colored_592: 21301184 + colored_546: 21301092 + colored_108: 21300216 + colored_782: 21301564 + colored_17: 21300034 + colored_430: 21300860 + colored_979: 21301958 + colored_1003: 21302006 + colored_152: 21300304 + colored_202: 21300404 + colored_185: 21300370 + colored_764: 21301528 + colored_158: 21300316 + colored_967: 21301934 + colored_454: 21300908 + colored_294: 21300588 + colored_496: 21300992 + colored_242: 21300484 + colored_623: 21301246 + colored_271: 21300542 + colored_604: 21301208 + colored_725: 21301450 + colored_210: 21300420 + colored_828: 21301656 + colored_39: 21300078 + colored_214: 21300428 + colored_405: 21300810 + colored_976: 21301952 + colored_846: 21301692 + colored_393: 21300786 + colored_637: 21301274 + colored_211: 21300422 + colored_526: 21301052 + colored_597: 21301194 + colored_930: 21301860 + colored_379: 21300758 + colored_197: 21300394 + colored_672: 21301344 + colored_739: 21301478 + colored_1000: 21302000 + colored_562: 21301124 + colored_94: 21300188 + colored_356: 21300712 + colored_319: 21300638 + colored_480: 21300960 + colored_715: 21301430 + colored_791: 21301582 + colored_873: 21301746 + colored_534: 21301068 + colored_618: 21301236 + colored_810: 21301620 + colored_240: 21300480 + colored_69: 21300138 + colored_60: 21300120 + colored_367: 21300734 + colored_306: 21300612 + colored_332: 21300664 + colored_860: 21301720 + colored_985: 21301970 + colored_20: 21300040 + colored_1010: 21302020 + colored_1014: 21302028 + colored_292: 21300584 + colored_315: 21300630 + colored_950: 21301900 + colored_205: 21300410 + colored_580: 21301160 + colored_247: 21300494 + colored_144: 21300288 + colored_258: 21300516 + colored_261: 21300522 + colored_201: 21300402 + colored_136: 21300272 + colored_674: 21301348 + colored_989: 21301978 + colored_995: 21301990 + colored_287: 21300574 + colored_794: 21301588 + colored_639: 21301278 + colored_92: 21300184 + colored_374: 21300748 + colored_940: 21301880 + colored_184: 21300368 + colored_556: 21301112 + colored_708: 21301416 + colored_692: 21301384 + colored_492: 21300984 + colored_487: 21300974 + colored_882: 21301764 + colored_621: 21301242 + colored_589: 21301178 + colored_777: 21301554 + colored_373: 21300746 + colored_522: 21301044 + colored_750: 21301500 + colored_961: 21301922 + colored_670: 21301340 + colored_276: 21300552 + colored_81: 21300162 + colored_172: 21300344 + colored_840: 21301680 + colored_333: 21300666 + colored_308: 21300616 + colored_263: 21300526 + colored_270: 21300540 + colored_305: 21300610 + colored_752: 21301504 + colored_779: 21301558 + colored_442: 21300884 + colored_953: 21301906 + colored_86: 21300172 + colored_313: 21300626 + smiley: 21301702 + colored_649: 21301298 + colored_688: 21301376 + colored_808: 21301616 + colored_324: 21300648 + colored_177: 21300354 + colored_193: 21300386 + colored_267: 21300534 + colored_295: 21300590 + colored_468: 21300936 + colored_282: 21300564 + colored_554: 21301108 + colored_371: 21300742 + colored_403: 21300806 + colored_182: 21300364 + colored_460: 21300920 + colored_347: 21300694 + colored_685: 21301370 + colored_741: 21301482 + colored_161: 21300322 + colored_345: 21300690 + colored_49: 21300098 + player: 21300560 + colored_190: 21300380 + colored_705: 21301410 + colored_974: 21301948 + colored_25: 21300050 + colored_327: 21300654 + colored_817: 21301634 + colored_421: 21300842 + colored_376: 21300752 + colored_905: 21301810 + colored_223: 21300446 + colored_954: 21301908 + colored_120: 21300240 + colored_192: 21300384 + colored_278: 21300556 + colored_464: 21300928 + colored_357: 21300714 + colored_578: 21301156 + colored_728: 21301456 + colored_463: 21300926 + colored_853: 21301706 + colored_10: 21300020 + colored_816: 21301632 + colored_130: 21300260 + colored_297: 21300594 + colored_59: 21300118 + colored_296: 21300592 + colored_619: 21301238 + colored_916: 21301832 + colored_676: 21301352 + colored_932: 21301864 + colored_452: 21300904 + colored_634: 21301268 + colored_780: 21301560 + colored_334: 21300668 + colored_485: 21300970 + colored_80: 21300160 + colored_1020: 21302040 + colored_504: 21301008 + colored_883: 21301766 + colored_731: 21301462 + colored_1012: 21302024 + colored_952: 21301904 + colored_772: 21301544 + colored_58: 21300116 + colored_682: 21301364 + colored_508: 21301016 + colored_257: 21300514 + colored_290: 21300580 + colored_729: 21301458 + colored_736: 21301472 + colored_719: 21301438 + colored_778: 21301556 + colored_744: 21301488 + colored_527: 21301054 + colored_783: 21301566 + colored_1005: 21302010 + colored_1007: 21302014 + colored_230: 21300460 + colored_525: 21301050 + colored_176: 21300352 + colored_547: 21301094 + colored_57: 21300114 + colored_625: 21301250 + colored_742: 21301484 + colored_673: 21301346 + colored_657: 21301314 + colored_847: 21301694 + colored_368: 21300736 + colored_975: 21301950 + colored_409: 21300818 + colored_461: 21300922 + colored_998: 21301996 + colored_891: 21301782 + colored_600: 21301200 + colored_514: 21301028 + colored_252: 21300504 + colored_411: 21300822 + colored_712: 21301424 + colored_412: 21300824 + colored_300: 21300600 + colored_479: 21300958 + colored_2: 21300004 + colored_488: 21300976 + colored_591: 21301182 + colored_796: 21301592 + colored_896: 21301792 + colored_112: 21300224 + colored_66: 21300132 + colored_162: 21300324 + colored_139: 21300278 + colored_714: 21301428 + colored_67: 21300134 + colored_235: 21300470 + colored_784: 21301568 + colored_475: 21300950 + colored_805: 21301610 + colored_26: 21300052 + colored_212: 21300424 + colored_1013: 21302026 + colored_869: 21301738 + colored_359: 21300718 + colored_428: 21300856 + colored_686: 21301372 + colored_861: 21301722 + colored_63: 21300126 + colored_845: 21301690 + colored_747: 21301494 + colored_244: 21300488 + colored_273: 21300546 + colored_43: 21300086 + colored_523: 21301046 + colored_238: 21300476 + colored_56: 21300112 + colored_648: 21301296 + colored_533: 21301066 + colored_131: 21300262 + colored_654: 21301308 + colored_588: 21301176 + colored_694: 21301388 + colored_835: 21301670 + colored_724: 21301448 + colored_156: 21300312 + colored_52: 21300104 + colored_627: 21301254 + colored_704: 21301408 + colored_457: 21300914 + colored_970: 21301940 + colored_423: 21300846 + colored_493: 21300986 + colored_568: 21301136 + colored_628: 21301256 + colored_518: 21301036 + colored_375: 21300750 + colored_275: 21300550 + colored_186: 21300372 + colored_595: 21301190 + colored_149: 21300298 + colored_809: 21301618 + colored_142: 21300284 + colored_541: 21301082 + colored_957: 21301914 + colored_388: 21300776 + colored_820: 21301640 + colored_758: 21301516 + colored_312: 21300624 + colored_425: 21300850 + colored_196: 21300392 + colored_166: 21300332 + colored_208: 21300416 + colored_922: 21301844 + colored_760: 21301520 + colored_40: 21300080 + colored_355: 21300710 + colored_289: 21300578 + colored_431: 21300862 + colored_390: 21300780 + colored_1017: 21302034 + colored_448: 21300896 + colored_503: 21301006 + colored_70: 21300140 + colored_491: 21300982 + colored_895: 21301790 + colored_679: 21301358 + colored_706: 21301412 + colored_617: 21301234 + colored_876: 21301752 + colored_291: 21300582 + colored_79: 21300158 + colored_453: 21300906 + colored_689: 21301378 + colored_710: 21301420 + colored_143: 21300286 + colored_302: 21300604 + colored_328: 21300656 + colored_984: 21301968 + colored_389: 21300778 + colored_587: 21301174 + colored_531: 21301062 + colored_602: 21301204 + colored_839: 21301678 + colored_34: 21300068 + colored_687: 21301374 + colored_511: 21301022 + colored_577: 21301154 + colored_665: 21301330 + colored_652: 21301304 + colored_198: 21300396 + colored_872: 21301744 + colored_107: 21300214 + colored_753: 21301506 + colored_987: 21301974 + colored_931: 21301862 + colored_102: 21300204 + colored_765: 21301530 + colored_486: 21300972 + colored_755: 21301510 + colored_320: 21300640 + colored_336: 21300672 + colored_900: 21301800 + colored_938: 21301876 + colored_910: 21301820 + colored_18: 21300036 + colored_194: 21300388 + colored_159: 21300318 + colored_310: 21300620 + colored_229: 21300458 + colored_897: 21301794 + colored_441: 21300882 + colored_46: 21300092 + colored_642: 21301284 + colored_564: 21301128 + colored_440: 21300880 + colored_959: 21301918 + colored_643: 21301286 + colored_937: 21301874 + colored_467: 21300934 + colored_877: 21301754 + colored_904: 21301808 + colored_53: 21300106 + colored_351: 21300702 + colored_960: 21301920 + colored_841: 21301682 + colored_818: 21301636 + colored_6: 21300012 + colored_992: 21301984 + colored_585: 21301170 + colored_868: 21301736 + colored_216: 21300432 + colored_949: 21301898 + colored_510: 21301020 + colored_499: 21300998 + colored_678: 21301356 + colored_191: 21300382 + colored_789: 21301578 + colored_884: 21301768 + colored_259: 21300518 + colored_377: 21300754 + colored_614: 21301228 + colored_251: 21300502 + colored_124: 21300248 + colored_12: 21300024 + colored_106: 21300212 + colored_384: 21300768 + colored_677: 21301354 + colored_551: 21301102 + colored_128: 21300256 + colored_797: 21301594 + colored_844: 21301688 + colored_447: 21300894 + colored_769: 21301538 + colored_93: 21300186 + colored_773: 21301546 + colored_852: 21301704 + colored_77: 21300154 + colored_858: 21301716 + colored_832: 21301664 + colored_920: 21301840 + colored_1016: 21302032 + colored_456: 21300912 + colored_88: 21300176 + colored_415: 21300830 + colored_476: 21300952 + colored_417: 21300834 + colored_418: 21300836 + colored_815: 21301630 + colored_942: 21301884 + colored_871: 21301742 + colored_516: 21301032 + colored_956: 21301912 + colored_209: 21300418 + colored_401: 21300802 + colored_497: 21300994 + colored_982: 21301964 + colored_35: 21300070 + colored_646: 21301292 + colored_730: 21301460 + colored_117: 21300234 + colored_123: 21300246 + colored_631: 21301262 + colored_157: 21300314 + colored_399: 21300798 + colored_484: 21300968 + colored_771: 21301542 + colored_951: 21301902 + colored_446: 21300892 + colored_863: 21301726 + colored_857: 21301714 + colored_436: 21300872 + colored_540: 21301080 + colored_62: 21300124 spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Tests/Performance/Runtime/10KL/Prefabs/Monster.prefab b/Assets/Tests/Performance/Runtime/10KL/Prefabs/Monster.prefab index 8ce58cd8530..9aa2e4e91dc 100644 --- a/Assets/Tests/Performance/Runtime/10KL/Prefabs/Monster.prefab +++ b/Assets/Tests/Performance/Runtime/10KL/Prefabs/Monster.prefab @@ -29,6 +29,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.514, y: 0.974, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -44,6 +45,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -96,54 +98,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 2278920908044998071} - m_TargetAssemblyTypeName: - m_MethodName: OnStartServer - 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 - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 2278920908044998071} - m_TargetAssemblyTypeName: - m_MethodName: OnStopServer - 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 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -1941658130 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &2278920908044998071 MonoBehaviour: diff --git a/Assets/Tests/Performance/Runtime/10KL/Prefabs/Player.prefab b/Assets/Tests/Performance/Runtime/10KL/Prefabs/Player.prefab index 6aa58737ae4..8305f80f851 100644 --- a/Assets/Tests/Performance/Runtime/10KL/Prefabs/Player.prefab +++ b/Assets/Tests/Performance/Runtime/10KL/Prefabs/Player.prefab @@ -28,6 +28,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -43,9 +44,12 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -57,6 +61,7 @@ SpriteRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 + m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -92,6 +97,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: 82ea0e1a4f3c84ef197e19b44c096865 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -308979045 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 diff --git a/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored.png.meta b/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored.png.meta index 0fcf675381b..6dbd7217770 100644 --- a/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored.png.meta +++ b/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored.png.meta @@ -3095,6 +3095,8 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -3104,11 +3106,11 @@ TextureImporter: textureSettings: serializedVersion: 2 filterMode: 0 - aniso: -1 - mipBias: -100 + aniso: 1 + mipBias: 0 wrapU: 1 wrapV: 1 - wrapW: -1 + wrapW: 0 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -3126,9 +3128,12 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 applyGammaDecoding: 1 platformSettings: - serializedVersion: 3 @@ -24696,6 +24701,1031 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: + colored_75: 21300150 + colored_691: 21301382 + colored_934: 21301868 + colored_936: 21301872 + colored_867: 21301734 + colored_85: 21300170 + colored_221: 21300442 + colored_1004: 21302008 + colored_217: 21300434 + colored_663: 21301326 + colored_671: 21301342 + colored_946: 21301892 + colored_329: 21300658 + colored_571: 21301142 + colored_644: 21301288 + colored_888: 21301776 + colored_339: 21300678 + colored_941: 21301882 + colored_997: 21301994 + colored_206: 21300412 + colored_407: 21300814 + colored_966: 21301932 + colored_489: 21300978 + colored_552: 21301104 + colored_999: 21301998 + colored_277: 21300554 + colored_404: 21300808 + colored_834: 21301668 + colored_41: 21300082 + colored_234: 21300468 + colored_462: 21300924 + colored_886: 21301772 + colored_645: 21301290 + colored_174: 21300348 + colored_265: 21300530 + colored_833: 21301666 + colored_558: 21301116 + colored_1002: 21302004 + monster_shield_sword: 21300062 + colored_110: 21300220 + colored_408: 21300816 + colored_228: 21300456 + colored_224: 21300448 + colored_471: 21300942 + colored_445: 21300890 + colored_711: 21301422 + colored_635: 21301270 + colored_650: 21301300 + colored_693: 21301386 + colored_862: 21301724 + colored_793: 21301586 + colored_774: 21301548 + colored_887: 21301774 + colored_83: 21300166 + colored_51: 21300102 + colored_517: 21301034 + colored_594: 21301188 + colored_381: 21300762 + colored_500: 21301000 + colored_892: 21301784 + colored_881: 21301762 + colored_968: 21301936 + colored_505: 21301010 + colored_981: 21301962 + colored_474: 21300948 + colored_146: 21300292 + colored_761: 21301522 + colored_988: 21301976 + colored_893: 21301786 + colored_181: 21300362 + colored_256: 21300512 + colored_89: 21300178 + colored_849: 21301698 + colored_512: 21301024 + colored_243: 21300486 + colored_303: 21300606 + colored_925: 21301850 + colored_963: 21301926 + colored_590: 21301180 + colored_42: 21300084 + colored_907: 21301814 + colored_330: 21300660 + colored_800: 21301600 + colored_854: 21301708 + colored_972: 21301944 + colored_459: 21300918 + colored_768: 21301536 + colored_113: 21300226 + colored_434: 21300868 + colored_543: 21301086 + colored_890: 21301780 + colored_537: 21301074 + colored_450: 21300900 + colored_973: 21301946 + colored_943: 21301886 + colored_260: 21300520 + colored_737: 21301474 + colored_993: 21301986 + colored_433: 21300866 + colored_684: 21301368 + colored_96: 21300192 + colored_167: 21300334 + colored_1011: 21302022 + colored_751: 21301502 + colored_301: 21300602 + colored_734: 21301468 + colored_612: 21301224 + colored_695: 21301390 + colored_352: 21300704 + colored_98: 21300196 + colored_71: 21300142 + colored_781: 21301562 + colored_204: 21300408 + colored_576: 21301152 + colored_608: 21301216 + colored_740: 21301480 + colored_195: 21300390 + colored_54: 21300108 + colored_29: 21300058 + colored_340: 21300680 + colored_477: 21300954 + colored_978: 21301956 + colored_991: 21301982 + colored_279: 21300558 + colored_722: 21301444 + colored_22: 21300044 + colored_653: 21301306 + colored_738: 21301476 + colored_680: 21301360 + colored_413: 21300826 + colored_746: 21301492 + colored_326: 21300652 + colored_122: 21300244 + colored_169: 21300338 + colored_660: 21301320 + colored_971: 21301942 + colored_545: 21301090 + colored_709: 21301418 + colored_607: 21301214 + colored_701: 21301402 + colored_100: 21300200 + colored_803: 21301606 + colored_311: 21300622 + colored_188: 21300376 + colored_655: 21301310 + colored_1021: 21302042 + colored_116: 21300232 + colored_114: 21300228 + colored_807: 21301614 + colored_432: 21300864 + colored_350: 21300700 + colored_288: 21300576 + colored_284: 21300568 + colored_766: 21301532 + colored_424: 21300848 + colored_171: 21300342 + colored_921: 21301842 + colored_713: 21301426 + colored_358: 21300716 + colored_494: 21300988 + colored_912: 21301824 + colored_168: 21300336 + colored_382: 21300764 + colored_605: 21301210 + colored_1006: 21302012 + colored_870: 21301740 + colored_91: 21300182 + colored_134: 21300268 + colored_426: 21300852 + colored_231: 21300462 + colored_955: 21301910 + colored_331: 21300662 + colored_661: 21301322 + colored_435: 21300870 + colored_718: 21301436 + colored_1018: 21302036 + colored_145: 21300290 + colored_667: 21301334 + colored_1022: 21302044 + colored_383: 21300766 + colored_983: 21301966 + colored_700: 21301400 + colored_237: 21300474 + colored_200: 21300400 + colored_307: 21300614 + colored_422: 21300844 + colored_370: 21300740 + colored_559: 21301118 + colored_581: 21301162 + colored_632: 21301264 + colored_681: 21301362 + colored_16: 21300032 + colored_220: 21300440 + colored_321: 21300642 + colored_274: 21300548 + colored_165: 21300330 + colored_980: 21301960 + colored_439: 21300878 + colored_402: 21300804 + colored_482: 21300964 + colored_924: 21301848 + colored_437: 21300874 + colored_385: 21300770 + colored_99: 21300198 + colored_269: 21300538 + colored_1: 21300002 + colored_775: 21301550 + colored_821: 21301642 + colored_354: 21300708 + colored_917: 21301834 + colored_465: 21300930 + colored_501: 21301002 + colored_101: 21300202 + colored_458: 21300916 + colored_68: 21300136 + colored_414: 21300828 + colored_668: 21301336 + colored_647: 21301294 + colored_74: 21300148 + colored_842: 21301684 + colored_299: 21300598 + colored_990: 21301980 + colored_281: 21300562 + colored_651: 21301302 + colored_964: 21301928 + colored_337: 21300674 + colored_133: 21300266 + colored_703: 21301406 + colored_363: 21300726 + colored_826: 21301652 + colored_470: 21300940 + colored_838: 21301676 + colored_360: 21300720 + colored_97: 21300194 + colored_566: 21301132 + colored_429: 21300858 + colored_255: 21300510 + colored_524: 21301048 + colored_707: 21301414 + colored_745: 21301490 + colored_509: 21301018 + colored_342: 21300684 + colored_76: 21300152 + colored_662: 21301324 + colored_219: 21300438 + colored_550: 21301100 + colored_250: 21300500 + colored_150: 21300300 + colored_574: 21301148 + colored_160: 21300320 + colored_507: 21301014 + colored_105: 21300210 + colored_348: 21300696 + colored_365: 21300730 + colored_483: 21300966 + colored_690: 21301380 + colored_61: 21300122 + colored_795: 21301590 + colored_723: 21301446 + colored_95: 21300190 + colored_361: 21300722 + colored_754: 21301508 + colored_129: 21300258 + colored_406: 21300812 + colored_977: 21301954 + colored_996: 21301992 + colored_994: 21301988 + colored_575: 21301150 + colored_582: 21301164 + colored_830: 21301660 + colored_395: 21300790 + colored_902: 21301804 + colored_757: 21301514 + colored_733: 21301466 + colored_727: 21301454 + colored_958: 21301916 + colored_598: 21301196 + colored_173: 21300346 + colored_918: 21301836 + colored_469: 21300938 + colored_565: 21301130 + colored_801: 21301602 + colored_140: 21300280 + colored_947: 21301894 + colored_603: 21301206 + colored_73: 21300146 + colored_965: 21301930 + colored_199: 21300398 + colored_683: 21301366 + colored_1009: 21302018 + colored_806: 21301612 + colored_154: 21300308 + colored_118: 21300236 + colored_913: 21301826 + colored_23: 21300046 + colored_322: 21300644 + colored_84: 21300168 + colored_372: 21300744 + colored_811: 21301622 + colored_908: 21301816 + colored_364: 21300728 + colored_141: 21300282 + colored_763: 21301526 + colored_253: 21300506 + colored_239: 21300478 + colored_64: 21300128 + colored_666: 21301332 + colored_636: 21301272 + colored_317: 21300634 + colored_528: 21301056 + colored_19: 21300038 + colored_732: 21301464 + colored_8: 21300016 + colored_530: 21301060 + colored_557: 21301114 + colored_451: 21300902 + colored_5: 21300010 + colored_899: 21301798 + colored_226: 21300452 + colored_164: 21300328 + colored_44: 21300088 + colored_520: 21301040 + colored_416: 21300832 + colored_848: 21301696 + colored_549: 21301098 + colored_438: 21300876 + colored_825: 21301650 + colored_928: 21301856 + colored_323: 21300646 + colored_515: 21301030 + colored_50: 21300100 + colored_536: 21301072 + colored_542: 21301084 + colored_104: 21300208 + colored_962: 21301924 + colored_272: 21300544 + colored_386: 21300772 + colored_151: 21300302 + colored_620: 21301240 + colored_218: 21300436 + colored_420: 21300840 + colored_923: 21301846 + colored_770: 21301540 + colored_203: 21300406 + colored_555: 21301110 + colored_444: 21300888 + colored_638: 21301276 + colored_155: 21300310 + colored_225: 21300450 + colored_824: 21301648 + colored_601: 21301202 + colored_427: 21300854 + colored_455: 21300910 + colored_813: 21301626 + colored_148: 21300296 + colored_187: 21300374 + colored_378: 21300756 + colored_490: 21300980 + colored_246: 21300492 + colored_567: 21301134 + colored_45: 21300090 + colored_798: 21301596 + colored_28: 21300056 + colored_72: 21300144 + colored_929: 21301858 + colored_4: 21300008 + colored_748: 21301496 + colored_125: 21300250 + colored_593: 21301186 + colored_856: 21301712 + colored_544: 21301088 + colored_864: 21301728 + colored_443: 21300886 + colored_13: 21300026 + colored_111: 21300222 + colored_717: 21301434 + colored_449: 21300898 + colored_103: 21300206 + colored_264: 21300528 + colored_38: 21300076 + colored_369: 21300738 + colored_919: 21301838 + colored_213: 21300426 + colored_610: 21301220 + colored_939: 21301878 + colored_616: 21301232 + colored_831: 21301662 + colored_743: 21301486 + colored_822: 21301644 + colored_935: 21301870 + colored_726: 21301452 + colored_699: 21301398 + colored_721: 21301442 + colored_137: 21300274 + colored_222: 21300444 + colored_583: 21301166 + colored_398: 21300796 + colored_640: 21301280 + colored_163: 21300326 + colored_36: 21300072 + colored_241: 21300482 + colored_675: 21301350 + colored_215: 21300430 + colored_47: 21300094 + colored_82: 21300164 + colored_513: 21301026 + colored_837: 21301674 + colored_776: 21301552 + colored_135: 21300270 + colored_55: 21300110 + colored_630: 21301260 + colored_1019: 21302038 + colored_609: 21301218 + colored_24: 21300048 + colored_804: 21301608 + colored_735: 21301470 + colored_606: 21301212 + colored_179: 21300358 + colored_232: 21300464 + colored_33: 21300066 + colored_521: 21301042 + colored_529: 21301058 + colored_914: 21301828 + colored_48: 21300096 + colored_1001: 21302002 + colored_553: 21301106 + colored_749: 21301498 + colored_233: 21300466 + colored_78: 21300156 + colored_702: 21301404 + colored_875: 21301750 + colored_532: 21301064 + colored_87: 21300174 + colored_622: 21301244 + colored_659: 21301318 + colored_889: 21301778 + colored_245: 21300490 + colored_1015: 21302030 + colored_698: 21301396 + colored_344: 21300688 + colored_249: 21300498 + colored_1008: 21302016 + colored_207: 21300414 + colored_293: 21300586 + colored_539: 21301078 + colored_915: 21301830 + colored_248: 21300496 + colored_785: 21301570 + colored_473: 21300946 + colored_669: 21301338 + colored_878: 21301756 + colored_802: 21301604 + colored_366: 21300732 + colored_812: 21301624 + colored_153: 21300306 + colored_855: 21301710 + colored_519: 21301038 + colored_254: 21300508 + colored_569: 21301138 + colored_596: 21301192 + colored_65: 21300130 + colored_819: 21301638 + colored_338: 21300676 + colored_584: 21301168 + colored_138: 21300276 + colored_298: 21300596 + colored_90: 21300180 + colored_658: 21301316 + colored_874: 21301748 + colored_397: 21300794 + colored_180: 21300360 + colored_792: 21301584 + colored_262: 21300524 + colored_15: 21300030 + colored_572: 21301144 + colored_419: 21300838 + colored_626: 21301252 + colored_502: 21301004 + colored_901: 21301802 + colored_410: 21300820 + colored_396: 21300792 + colored_37: 21300074 + colored_392: 21300784 + colored_335: 21300670 + colored_756: 21301512 + colored_119: 21300238 + colored_548: 21301096 + colored_615: 21301230 + colored_570: 21301140 + colored_656: 21301312 + colored_664: 21301328 + colored_121: 21300242 + colored_362: 21300724 + colored_986: 21301972 + colored_836: 21301672 + colored_560: 21301120 + colored_762: 21301524 + colored_906: 21301812 + colored_353: 21300706 + colored_865: 21301730 + colored_911: 21301822 + colored_316: 21300632 + empty: 21300000 + colored_11: 21300022 + colored_624: 21301248 + colored_786: 21301572 + colored_885: 21301770 + colored_866: 21301732 + colored_909: 21301818 + colored_759: 21301518 + colored_394: 21300788 + colored_7: 21300014 + colored_283: 21300566 + colored_573: 21301146 + colored_633: 21301266 + colored_823: 21301646 + colored_843: 21301686 + colored_481: 21300962 + colored_380: 21300760 + colored_318: 21300636 + colored_969: 21301938 + colored_927: 21301854 + colored_9: 21300018 + colored_506: 21301012 + colored_325: 21300650 + colored_495: 21300990 + colored_599: 21301198 + colored_175: 21300350 + colored_30: 21300060 + colored_629: 21301258 + colored_933: 21301866 + colored_147: 21300294 + colored_1023: 21302046 + colored_478: 21300956 + colored_561: 21301122 + colored_285: 21300570 + colored_466: 21300932 + colored_611: 21301222 + colored_767: 21301534 + colored_183: 21300366 + colored_227: 21300454 + colored_945: 21301890 + colored_170: 21300340 + colored_126: 21300252 + colored_391: 21300782 + colored_879: 21301758 + colored_3: 21300006 + colored_349: 21300698 + colored_579: 21301158 + colored_109: 21300218 + colored_850: 21301700 + colored_538: 21301076 + colored_400: 21300800 + colored_21: 21300042 + colored_696: 21301392 + colored_898: 21301796 + colored_14: 21300028 + colored_236: 21300472 + colored_189: 21300378 + colored_880: 21301760 + colored_178: 21300356 + colored_286: 21300572 + colored_894: 21301788 + colored_472: 21300944 + colored_790: 21301580 + tree1: 21300064 + colored_859: 21301718 + colored_343: 21300686 + colored_903: 21301806 + colored_266: 21300532 + colored_926: 21301852 + colored_341: 21300682 + colored_814: 21301628 + colored_535: 21301070 + colored_788: 21301576 + colored_27: 21300054 + colored_387: 21300774 + colored_829: 21301658 + colored_304: 21300608 + colored_641: 21301282 + colored_115: 21300230 + colored_586: 21301172 + colored_309: 21300618 + colored_314: 21300628 + colored_720: 21301440 + colored_132: 21300264 + colored_716: 21301432 + colored_268: 21300536 + colored_799: 21301598 + colored_944: 21301888 + colored_948: 21301896 + colored_697: 21301394 + colored_498: 21300996 + colored_827: 21301654 + colored_127: 21300254 + colored_346: 21300692 + colored_787: 21301574 + colored_563: 21301126 + colored_613: 21301226 + colored_592: 21301184 + colored_546: 21301092 + colored_108: 21300216 + colored_782: 21301564 + colored_17: 21300034 + colored_430: 21300860 + colored_979: 21301958 + colored_1003: 21302006 + colored_152: 21300304 + colored_202: 21300404 + colored_185: 21300370 + colored_764: 21301528 + colored_158: 21300316 + colored_967: 21301934 + colored_454: 21300908 + colored_294: 21300588 + colored_496: 21300992 + colored_242: 21300484 + colored_623: 21301246 + colored_271: 21300542 + colored_604: 21301208 + colored_725: 21301450 + colored_210: 21300420 + colored_828: 21301656 + colored_39: 21300078 + colored_214: 21300428 + colored_405: 21300810 + colored_976: 21301952 + colored_846: 21301692 + colored_393: 21300786 + colored_637: 21301274 + colored_211: 21300422 + colored_526: 21301052 + colored_597: 21301194 + colored_930: 21301860 + colored_379: 21300758 + colored_197: 21300394 + colored_672: 21301344 + colored_739: 21301478 + colored_851: 21301702 + colored_1000: 21302000 + colored_562: 21301124 + colored_94: 21300188 + colored_356: 21300712 + colored_319: 21300638 + colored_480: 21300960 + colored_715: 21301430 + colored_791: 21301582 + colored_873: 21301746 + colored_534: 21301068 + colored_618: 21301236 + colored_810: 21301620 + colored_240: 21300480 + colored_69: 21300138 + colored_60: 21300120 + colored_367: 21300734 + colored_306: 21300612 + colored_332: 21300664 + colored_860: 21301720 + colored_985: 21301970 + colored_20: 21300040 + colored_1010: 21302020 + colored_1014: 21302028 + colored_292: 21300584 + colored_315: 21300630 + colored_950: 21301900 + colored_205: 21300410 + colored_580: 21301160 + colored_247: 21300494 + colored_144: 21300288 + colored_258: 21300516 + colored_261: 21300522 + colored_201: 21300402 + colored_136: 21300272 + colored_674: 21301348 + colored_989: 21301978 + colored_995: 21301990 + colored_287: 21300574 + colored_794: 21301588 + colored_639: 21301278 + colored_92: 21300184 + colored_374: 21300748 + colored_940: 21301880 + colored_184: 21300368 + colored_556: 21301112 + colored_708: 21301416 + colored_692: 21301384 + colored_492: 21300984 + colored_487: 21300974 + colored_882: 21301764 + colored_621: 21301242 + colored_589: 21301178 + colored_777: 21301554 + colored_373: 21300746 + colored_522: 21301044 + colored_750: 21301500 + colored_961: 21301922 + colored_670: 21301340 + colored_276: 21300552 + colored_81: 21300162 + colored_172: 21300344 + colored_840: 21301680 + colored_333: 21300666 + colored_308: 21300616 + colored_263: 21300526 + colored_270: 21300540 + colored_305: 21300610 + colored_752: 21301504 + colored_779: 21301558 + colored_442: 21300884 + colored_953: 21301906 + colored_86: 21300172 + colored_313: 21300626 + colored_649: 21301298 + colored_688: 21301376 + colored_808: 21301616 + colored_324: 21300648 + colored_177: 21300354 + colored_193: 21300386 + colored_267: 21300534 + colored_295: 21300590 + colored_468: 21300936 + colored_282: 21300564 + colored_554: 21301108 + colored_371: 21300742 + colored_403: 21300806 + colored_182: 21300364 + colored_460: 21300920 + colored_347: 21300694 + colored_685: 21301370 + colored_741: 21301482 + colored_161: 21300322 + colored_345: 21300690 + colored_49: 21300098 + colored_817: 21301634 + colored_190: 21300380 + colored_705: 21301410 + colored_974: 21301948 + colored_25: 21300050 + colored_327: 21300654 + colored_905: 21301810 + colored_421: 21300842 + colored_376: 21300752 + colored_223: 21300446 + colored_954: 21301908 + colored_120: 21300240 + colored_192: 21300384 + colored_278: 21300556 + colored_464: 21300928 + colored_357: 21300714 + colored_578: 21301156 + colored_728: 21301456 + colored_463: 21300926 + colored_853: 21301706 + colored_10: 21300020 + colored_816: 21301632 + colored_130: 21300260 + colored_297: 21300594 + colored_59: 21300118 + colored_296: 21300592 + colored_619: 21301238 + colored_916: 21301832 + colored_676: 21301352 + colored_932: 21301864 + colored_452: 21300904 + colored_634: 21301268 + colored_780: 21301560 + colored_334: 21300668 + colored_485: 21300970 + colored_80: 21300160 + colored_1020: 21302040 + colored_504: 21301008 + colored_883: 21301766 + colored_731: 21301462 + colored_1012: 21302024 + colored_952: 21301904 + colored_772: 21301544 + colored_58: 21300116 + colored_682: 21301364 + colored_508: 21301016 + colored_257: 21300514 + colored_290: 21300580 + colored_729: 21301458 + colored_736: 21301472 + colored_719: 21301438 + colored_778: 21301556 + colored_744: 21301488 + colored_527: 21301054 + colored_783: 21301566 + colored_1005: 21302010 + colored_1007: 21302014 + colored_230: 21300460 + colored_525: 21301050 + colored_280: 21300560 + colored_176: 21300352 + colored_547: 21301094 + colored_57: 21300114 + colored_625: 21301250 + colored_742: 21301484 + colored_673: 21301346 + colored_657: 21301314 + colored_847: 21301694 + colored_368: 21300736 + colored_975: 21301950 + colored_409: 21300818 + colored_461: 21300922 + colored_998: 21301996 + colored_891: 21301782 + colored_600: 21301200 + colored_514: 21301028 + colored_252: 21300504 + colored_411: 21300822 + colored_712: 21301424 + colored_412: 21300824 + colored_300: 21300600 + colored_479: 21300958 + colored_2: 21300004 + colored_488: 21300976 + colored_591: 21301182 + colored_796: 21301592 + colored_896: 21301792 + colored_112: 21300224 + colored_66: 21300132 + colored_162: 21300324 + colored_139: 21300278 + colored_714: 21301428 + colored_67: 21300134 + colored_235: 21300470 + colored_784: 21301568 + colored_475: 21300950 + colored_805: 21301610 + colored_26: 21300052 + colored_212: 21300424 + colored_1013: 21302026 + colored_869: 21301738 + colored_359: 21300718 + colored_428: 21300856 + colored_686: 21301372 + colored_861: 21301722 + colored_63: 21300126 + colored_845: 21301690 + colored_747: 21301494 + colored_244: 21300488 + colored_273: 21300546 + colored_43: 21300086 + colored_523: 21301046 + colored_238: 21300476 + colored_56: 21300112 + colored_648: 21301296 + colored_533: 21301066 + colored_131: 21300262 + colored_654: 21301308 + colored_588: 21301176 + colored_694: 21301388 + colored_835: 21301670 + colored_724: 21301448 + colored_156: 21300312 + colored_52: 21300104 + colored_627: 21301254 + colored_704: 21301408 + colored_457: 21300914 + colored_970: 21301940 + colored_423: 21300846 + colored_493: 21300986 + colored_568: 21301136 + colored_628: 21301256 + colored_518: 21301036 + colored_375: 21300750 + colored_275: 21300550 + colored_186: 21300372 + colored_595: 21301190 + colored_149: 21300298 + colored_809: 21301618 + colored_142: 21300284 + colored_541: 21301082 + colored_957: 21301914 + colored_388: 21300776 + colored_820: 21301640 + colored_758: 21301516 + colored_312: 21300624 + colored_425: 21300850 + colored_196: 21300392 + colored_166: 21300332 + colored_208: 21300416 + colored_922: 21301844 + colored_760: 21301520 + colored_40: 21300080 + colored_355: 21300710 + colored_289: 21300578 + colored_431: 21300862 + colored_390: 21300780 + colored_1017: 21302034 + colored_448: 21300896 + colored_503: 21301006 + colored_70: 21300140 + colored_491: 21300982 + colored_895: 21301790 + colored_679: 21301358 + colored_706: 21301412 + colored_617: 21301234 + colored_876: 21301752 + colored_291: 21300582 + colored_79: 21300158 + colored_453: 21300906 + colored_689: 21301378 + colored_710: 21301420 + colored_143: 21300286 + colored_302: 21300604 + colored_328: 21300656 + colored_984: 21301968 + colored_389: 21300778 + colored_587: 21301174 + colored_531: 21301062 + colored_602: 21301204 + colored_839: 21301678 + colored_34: 21300068 + colored_687: 21301374 + colored_511: 21301022 + colored_577: 21301154 + colored_665: 21301330 + colored_652: 21301304 + colored_198: 21300396 + colored_872: 21301744 + colored_107: 21300214 + colored_753: 21301506 + colored_987: 21301974 + colored_931: 21301862 + colored_102: 21300204 + colored_765: 21301530 + colored_486: 21300972 + colored_755: 21301510 + colored_320: 21300640 + colored_336: 21300672 + colored_900: 21301800 + colored_938: 21301876 + colored_910: 21301820 + colored_18: 21300036 + colored_194: 21300388 + colored_159: 21300318 + colored_310: 21300620 + colored_229: 21300458 + colored_897: 21301794 + colored_441: 21300882 + colored_46: 21300092 + colored_642: 21301284 + colored_564: 21301128 + colored_440: 21300880 + colored_959: 21301918 + colored_643: 21301286 + colored_937: 21301874 + colored_467: 21300934 + colored_877: 21301754 + colored_904: 21301808 + colored_53: 21300106 + colored_351: 21300702 + colored_960: 21301920 + colored_841: 21301682 + colored_818: 21301636 + colored_6: 21300012 + colored_992: 21301984 + colored_585: 21301170 + colored_868: 21301736 + colored_216: 21300432 + colored_949: 21301898 + colored_510: 21301020 + colored_499: 21300998 + colored_678: 21301356 + colored_191: 21300382 + colored_789: 21301578 + colored_884: 21301768 + colored_259: 21300518 + colored_377: 21300754 + colored_614: 21301228 + colored_251: 21300502 + colored_124: 21300248 + colored_12: 21300024 + colored_106: 21300212 + colored_384: 21300768 + colored_677: 21301354 + colored_551: 21301102 + colored_128: 21300256 + colored_797: 21301594 + colored_844: 21301688 + colored_447: 21300894 + colored_769: 21301538 + colored_93: 21300186 + colored_773: 21301546 + colored_852: 21301704 + colored_77: 21300154 + colored_858: 21301716 + colored_832: 21301664 + colored_920: 21301840 + colored_1016: 21302032 + colored_456: 21300912 + colored_88: 21300176 + colored_415: 21300830 + colored_476: 21300952 + colored_417: 21300834 + colored_418: 21300836 + colored_815: 21301630 + colored_942: 21301884 + colored_871: 21301742 + colored_516: 21301032 + colored_956: 21301912 + colored_209: 21300418 + colored_401: 21300802 + colored_497: 21300994 + colored_982: 21301964 + colored_35: 21300070 + colored_646: 21301292 + colored_730: 21301460 + colored_117: 21300234 + colored_123: 21300246 + colored_631: 21301262 + colored_157: 21300314 + colored_399: 21300798 + colored_484: 21300968 + colored_771: 21301542 + colored_951: 21301902 + colored_446: 21300892 + colored_863: 21301726 + colored_857: 21301714 + colored_436: 21300872 + colored_540: 21301080 + colored_62: 21300124 spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored_transparent.png.meta b/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored_transparent.png.meta index a2382f4834d..099982d36bf 100644 --- a/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored_transparent.png.meta +++ b/Assets/Tests/Performance/Runtime/10KL/Textures/1bitpack_kenney/colored_transparent.png.meta @@ -3095,6 +3095,8 @@ TextureImporter: isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -3104,11 +3106,11 @@ TextureImporter: textureSettings: serializedVersion: 2 filterMode: 0 - aniso: -1 - mipBias: -100 + aniso: 1 + mipBias: 0 wrapU: 1 wrapV: 1 - wrapW: -1 + wrapW: 0 nPOTScale: 0 lightmap: 0 compressionQuality: 50 @@ -3126,9 +3128,12 @@ TextureImporter: textureType: 8 textureShape: 1 singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 + ignorePngGamma: 0 applyGammaDecoding: 1 platformSettings: - serializedVersion: 3 @@ -24696,6 +24701,1031 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: + colored_75: 21300150 + colored_691: 21301382 + colored_934: 21301868 + colored_936: 21301872 + colored_867: 21301734 + colored_85: 21300170 + colored_221: 21300442 + colored_1004: 21302008 + colored_217: 21300434 + colored_663: 21301326 + colored_671: 21301342 + colored_946: 21301892 + colored_329: 21300658 + colored_571: 21301142 + colored_644: 21301288 + colored_888: 21301776 + colored_339: 21300678 + colored_941: 21301882 + colored_997: 21301994 + colored_206: 21300412 + colored_407: 21300814 + colored_966: 21301932 + colored_489: 21300978 + colored_552: 21301104 + colored_999: 21301998 + colored_277: 21300554 + colored_404: 21300808 + colored_834: 21301668 + colored_41: 21300082 + colored_234: 21300468 + colored_462: 21300924 + colored_886: 21301772 + colored_645: 21301290 + colored_174: 21300348 + colored_265: 21300530 + colored_833: 21301666 + colored_558: 21301116 + colored_1002: 21302004 + monster_shield_sword: 21300062 + colored_110: 21300220 + colored_408: 21300816 + colored_228: 21300456 + colored_224: 21300448 + colored_471: 21300942 + colored_445: 21300890 + colored_711: 21301422 + colored_635: 21301270 + colored_650: 21301300 + colored_693: 21301386 + colored_862: 21301724 + colored_793: 21301586 + colored_774: 21301548 + colored_887: 21301774 + colored_83: 21300166 + colored_51: 21300102 + colored_517: 21301034 + colored_594: 21301188 + colored_381: 21300762 + colored_500: 21301000 + colored_892: 21301784 + colored_881: 21301762 + colored_968: 21301936 + colored_505: 21301010 + colored_981: 21301962 + colored_474: 21300948 + colored_146: 21300292 + colored_761: 21301522 + colored_988: 21301976 + colored_893: 21301786 + colored_181: 21300362 + colored_256: 21300512 + colored_89: 21300178 + colored_849: 21301698 + colored_512: 21301024 + colored_243: 21300486 + colored_303: 21300606 + colored_925: 21301850 + colored_963: 21301926 + colored_590: 21301180 + colored_42: 21300084 + colored_907: 21301814 + colored_330: 21300660 + colored_800: 21301600 + colored_854: 21301708 + colored_972: 21301944 + colored_459: 21300918 + colored_768: 21301536 + colored_113: 21300226 + colored_434: 21300868 + colored_543: 21301086 + colored_890: 21301780 + colored_537: 21301074 + colored_450: 21300900 + colored_973: 21301946 + colored_943: 21301886 + colored_260: 21300520 + colored_737: 21301474 + colored_993: 21301986 + colored_433: 21300866 + colored_684: 21301368 + colored_96: 21300192 + colored_167: 21300334 + colored_1011: 21302022 + colored_751: 21301502 + colored_301: 21300602 + colored_734: 21301468 + colored_612: 21301224 + colored_695: 21301390 + colored_352: 21300704 + colored_98: 21300196 + colored_71: 21300142 + colored_781: 21301562 + colored_204: 21300408 + colored_576: 21301152 + colored_608: 21301216 + colored_740: 21301480 + colored_195: 21300390 + colored_54: 21300108 + colored_29: 21300058 + colored_340: 21300680 + colored_477: 21300954 + colored_978: 21301956 + colored_991: 21301982 + colored_279: 21300558 + colored_722: 21301444 + colored_22: 21300044 + colored_653: 21301306 + colored_738: 21301476 + colored_680: 21301360 + colored_413: 21300826 + colored_746: 21301492 + colored_326: 21300652 + colored_122: 21300244 + colored_169: 21300338 + colored_660: 21301320 + colored_971: 21301942 + colored_545: 21301090 + colored_709: 21301418 + colored_607: 21301214 + colored_701: 21301402 + colored_100: 21300200 + colored_803: 21301606 + colored_311: 21300622 + colored_188: 21300376 + colored_655: 21301310 + colored_1021: 21302042 + colored_116: 21300232 + colored_114: 21300228 + colored_807: 21301614 + colored_432: 21300864 + colored_350: 21300700 + colored_288: 21300576 + colored_284: 21300568 + colored_766: 21301532 + colored_424: 21300848 + colored_171: 21300342 + colored_921: 21301842 + colored_713: 21301426 + colored_358: 21300716 + colored_494: 21300988 + colored_912: 21301824 + colored_168: 21300336 + colored_382: 21300764 + colored_605: 21301210 + colored_1006: 21302012 + colored_870: 21301740 + colored_91: 21300182 + colored_134: 21300268 + colored_426: 21300852 + colored_231: 21300462 + colored_955: 21301910 + colored_331: 21300662 + colored_661: 21301322 + colored_435: 21300870 + colored_718: 21301436 + colored_1018: 21302036 + colored_145: 21300290 + colored_667: 21301334 + colored_1022: 21302044 + colored_383: 21300766 + colored_983: 21301966 + colored_700: 21301400 + colored_237: 21300474 + colored_200: 21300400 + colored_307: 21300614 + colored_422: 21300844 + colored_370: 21300740 + colored_559: 21301118 + colored_581: 21301162 + colored_632: 21301264 + colored_681: 21301362 + colored_16: 21300032 + colored_220: 21300440 + colored_321: 21300642 + colored_274: 21300548 + colored_165: 21300330 + colored_980: 21301960 + colored_439: 21300878 + colored_402: 21300804 + colored_482: 21300964 + colored_924: 21301848 + colored_437: 21300874 + colored_385: 21300770 + colored_99: 21300198 + colored_269: 21300538 + colored_1: 21300002 + colored_775: 21301550 + colored_821: 21301642 + colored_354: 21300708 + colored_917: 21301834 + colored_465: 21300930 + colored_501: 21301002 + colored_101: 21300202 + colored_458: 21300916 + colored_68: 21300136 + colored_414: 21300828 + colored_668: 21301336 + colored_647: 21301294 + colored_74: 21300148 + colored_842: 21301684 + colored_299: 21300598 + colored_990: 21301980 + colored_281: 21300562 + colored_651: 21301302 + colored_964: 21301928 + colored_337: 21300674 + colored_133: 21300266 + colored_703: 21301406 + colored_363: 21300726 + colored_826: 21301652 + colored_470: 21300940 + colored_838: 21301676 + colored_360: 21300720 + colored_97: 21300194 + colored_566: 21301132 + colored_429: 21300858 + colored_255: 21300510 + colored_524: 21301048 + colored_707: 21301414 + colored_745: 21301490 + colored_509: 21301018 + colored_342: 21300684 + colored_76: 21300152 + colored_662: 21301324 + colored_219: 21300438 + colored_550: 21301100 + colored_250: 21300500 + colored_150: 21300300 + colored_574: 21301148 + colored_160: 21300320 + colored_507: 21301014 + colored_105: 21300210 + colored_348: 21300696 + colored_365: 21300730 + colored_483: 21300966 + colored_690: 21301380 + colored_61: 21300122 + colored_795: 21301590 + colored_723: 21301446 + colored_95: 21300190 + colored_361: 21300722 + colored_754: 21301508 + colored_129: 21300258 + colored_406: 21300812 + colored_977: 21301954 + colored_996: 21301992 + colored_994: 21301988 + colored_575: 21301150 + colored_582: 21301164 + colored_830: 21301660 + colored_395: 21300790 + colored_902: 21301804 + colored_757: 21301514 + colored_733: 21301466 + colored_727: 21301454 + colored_958: 21301916 + colored_598: 21301196 + colored_173: 21300346 + colored_918: 21301836 + colored_469: 21300938 + colored_565: 21301130 + colored_801: 21301602 + colored_140: 21300280 + colored_947: 21301894 + colored_603: 21301206 + colored_73: 21300146 + colored_965: 21301930 + colored_199: 21300398 + colored_683: 21301366 + colored_1009: 21302018 + colored_806: 21301612 + colored_154: 21300308 + colored_118: 21300236 + colored_913: 21301826 + colored_23: 21300046 + colored_322: 21300644 + colored_84: 21300168 + colored_372: 21300744 + colored_811: 21301622 + colored_908: 21301816 + colored_364: 21300728 + colored_141: 21300282 + colored_763: 21301526 + colored_253: 21300506 + colored_239: 21300478 + colored_64: 21300128 + colored_666: 21301332 + colored_636: 21301272 + colored_317: 21300634 + colored_528: 21301056 + colored_19: 21300038 + colored_732: 21301464 + colored_8: 21300016 + colored_530: 21301060 + colored_557: 21301114 + colored_451: 21300902 + colored_5: 21300010 + colored_899: 21301798 + colored_226: 21300452 + colored_164: 21300328 + colored_44: 21300088 + colored_520: 21301040 + colored_416: 21300832 + colored_848: 21301696 + colored_549: 21301098 + colored_438: 21300876 + colored_825: 21301650 + colored_928: 21301856 + colored_323: 21300646 + colored_515: 21301030 + colored_50: 21300100 + colored_536: 21301072 + colored_542: 21301084 + colored_104: 21300208 + colored_962: 21301924 + colored_272: 21300544 + colored_386: 21300772 + colored_151: 21300302 + colored_620: 21301240 + colored_218: 21300436 + colored_420: 21300840 + colored_923: 21301846 + colored_770: 21301540 + colored_203: 21300406 + colored_555: 21301110 + colored_444: 21300888 + colored_638: 21301276 + colored_155: 21300310 + colored_225: 21300450 + colored_824: 21301648 + colored_601: 21301202 + colored_427: 21300854 + colored_455: 21300910 + colored_813: 21301626 + colored_148: 21300296 + colored_187: 21300374 + colored_378: 21300756 + colored_490: 21300980 + colored_246: 21300492 + colored_567: 21301134 + colored_45: 21300090 + colored_798: 21301596 + colored_28: 21300056 + colored_72: 21300144 + colored_929: 21301858 + colored_4: 21300008 + colored_748: 21301496 + colored_125: 21300250 + colored_593: 21301186 + colored_856: 21301712 + colored_544: 21301088 + colored_864: 21301728 + colored_443: 21300886 + colored_13: 21300026 + colored_111: 21300222 + colored_717: 21301434 + colored_449: 21300898 + colored_103: 21300206 + colored_264: 21300528 + colored_38: 21300076 + colored_369: 21300738 + colored_919: 21301838 + colored_213: 21300426 + colored_610: 21301220 + colored_939: 21301878 + colored_616: 21301232 + colored_831: 21301662 + colored_743: 21301486 + colored_822: 21301644 + colored_935: 21301870 + colored_726: 21301452 + colored_699: 21301398 + colored_721: 21301442 + colored_137: 21300274 + colored_222: 21300444 + colored_583: 21301166 + colored_398: 21300796 + colored_640: 21301280 + colored_163: 21300326 + colored_36: 21300072 + colored_241: 21300482 + colored_675: 21301350 + colored_215: 21300430 + colored_47: 21300094 + colored_82: 21300164 + colored_513: 21301026 + colored_837: 21301674 + colored_776: 21301552 + colored_135: 21300270 + colored_55: 21300110 + colored_630: 21301260 + colored_1019: 21302038 + colored_609: 21301218 + colored_24: 21300048 + colored_804: 21301608 + colored_735: 21301470 + colored_606: 21301212 + colored_179: 21300358 + colored_232: 21300464 + colored_33: 21300066 + colored_521: 21301042 + colored_529: 21301058 + colored_914: 21301828 + colored_48: 21300096 + colored_1001: 21302002 + colored_553: 21301106 + colored_749: 21301498 + colored_233: 21300466 + colored_78: 21300156 + colored_702: 21301404 + colored_875: 21301750 + colored_532: 21301064 + colored_87: 21300174 + colored_622: 21301244 + colored_659: 21301318 + colored_889: 21301778 + colored_245: 21300490 + colored_1015: 21302030 + colored_698: 21301396 + colored_344: 21300688 + colored_249: 21300498 + colored_1008: 21302016 + colored_207: 21300414 + colored_293: 21300586 + colored_539: 21301078 + colored_915: 21301830 + colored_248: 21300496 + colored_785: 21301570 + colored_473: 21300946 + colored_669: 21301338 + colored_878: 21301756 + colored_802: 21301604 + colored_366: 21300732 + colored_812: 21301624 + colored_153: 21300306 + colored_855: 21301710 + colored_519: 21301038 + colored_254: 21300508 + colored_569: 21301138 + colored_596: 21301192 + colored_65: 21300130 + colored_819: 21301638 + colored_338: 21300676 + colored_584: 21301168 + colored_138: 21300276 + colored_298: 21300596 + colored_90: 21300180 + colored_658: 21301316 + colored_874: 21301748 + colored_397: 21300794 + colored_180: 21300360 + colored_792: 21301584 + colored_262: 21300524 + colored_15: 21300030 + colored_572: 21301144 + colored_419: 21300838 + colored_626: 21301252 + colored_502: 21301004 + colored_901: 21301802 + colored_410: 21300820 + colored_396: 21300792 + colored_37: 21300074 + colored_392: 21300784 + colored_335: 21300670 + colored_756: 21301512 + colored_119: 21300238 + colored_548: 21301096 + colored_615: 21301230 + colored_570: 21301140 + colored_656: 21301312 + colored_664: 21301328 + colored_121: 21300242 + colored_362: 21300724 + colored_986: 21301972 + colored_836: 21301672 + colored_560: 21301120 + colored_762: 21301524 + colored_906: 21301812 + colored_353: 21300706 + colored_865: 21301730 + colored_911: 21301822 + colored_316: 21300632 + empty: 21300000 + colored_11: 21300022 + colored_624: 21301248 + colored_786: 21301572 + colored_885: 21301770 + colored_866: 21301732 + colored_909: 21301818 + colored_759: 21301518 + colored_394: 21300788 + colored_7: 21300014 + colored_283: 21300566 + colored_573: 21301146 + colored_633: 21301266 + colored_823: 21301646 + colored_843: 21301686 + colored_481: 21300962 + colored_380: 21300760 + colored_318: 21300636 + colored_969: 21301938 + colored_927: 21301854 + colored_9: 21300018 + colored_506: 21301012 + colored_325: 21300650 + colored_495: 21300990 + colored_599: 21301198 + colored_175: 21300350 + colored_30: 21300060 + colored_629: 21301258 + colored_933: 21301866 + colored_147: 21300294 + colored_1023: 21302046 + colored_478: 21300956 + colored_561: 21301122 + colored_285: 21300570 + colored_466: 21300932 + colored_611: 21301222 + colored_767: 21301534 + colored_183: 21300366 + colored_227: 21300454 + colored_945: 21301890 + colored_170: 21300340 + colored_126: 21300252 + colored_391: 21300782 + colored_879: 21301758 + colored_3: 21300006 + colored_349: 21300698 + colored_579: 21301158 + colored_109: 21300218 + colored_850: 21301700 + colored_538: 21301076 + colored_400: 21300800 + colored_21: 21300042 + colored_696: 21301392 + colored_898: 21301796 + colored_14: 21300028 + colored_236: 21300472 + colored_189: 21300378 + colored_880: 21301760 + colored_178: 21300356 + colored_286: 21300572 + colored_894: 21301788 + colored_472: 21300944 + colored_790: 21301580 + tree1: 21300064 + colored_859: 21301718 + colored_343: 21300686 + colored_903: 21301806 + colored_266: 21300532 + colored_926: 21301852 + colored_341: 21300682 + colored_814: 21301628 + colored_535: 21301070 + colored_788: 21301576 + colored_27: 21300054 + colored_387: 21300774 + colored_829: 21301658 + colored_304: 21300608 + colored_641: 21301282 + colored_115: 21300230 + colored_586: 21301172 + colored_309: 21300618 + colored_314: 21300628 + colored_720: 21301440 + colored_132: 21300264 + colored_716: 21301432 + colored_268: 21300536 + colored_799: 21301598 + colored_944: 21301888 + colored_948: 21301896 + colored_697: 21301394 + colored_498: 21300996 + colored_827: 21301654 + colored_127: 21300254 + colored_346: 21300692 + colored_787: 21301574 + colored_563: 21301126 + colored_613: 21301226 + colored_592: 21301184 + colored_546: 21301092 + colored_108: 21300216 + colored_782: 21301564 + colored_17: 21300034 + colored_430: 21300860 + colored_979: 21301958 + colored_1003: 21302006 + colored_152: 21300304 + colored_202: 21300404 + colored_185: 21300370 + colored_764: 21301528 + colored_158: 21300316 + colored_967: 21301934 + colored_454: 21300908 + colored_294: 21300588 + colored_496: 21300992 + colored_242: 21300484 + colored_623: 21301246 + colored_271: 21300542 + colored_604: 21301208 + colored_725: 21301450 + colored_210: 21300420 + colored_828: 21301656 + colored_39: 21300078 + colored_214: 21300428 + colored_405: 21300810 + colored_976: 21301952 + colored_846: 21301692 + colored_393: 21300786 + colored_637: 21301274 + colored_211: 21300422 + colored_526: 21301052 + colored_597: 21301194 + colored_930: 21301860 + colored_379: 21300758 + colored_197: 21300394 + colored_672: 21301344 + colored_739: 21301478 + colored_1000: 21302000 + colored_562: 21301124 + colored_94: 21300188 + colored_356: 21300712 + colored_319: 21300638 + colored_480: 21300960 + colored_715: 21301430 + colored_791: 21301582 + colored_873: 21301746 + colored_534: 21301068 + colored_618: 21301236 + colored_810: 21301620 + colored_240: 21300480 + colored_69: 21300138 + colored_60: 21300120 + colored_367: 21300734 + colored_306: 21300612 + colored_332: 21300664 + colored_860: 21301720 + colored_985: 21301970 + colored_20: 21300040 + colored_1010: 21302020 + colored_1014: 21302028 + colored_292: 21300584 + colored_315: 21300630 + colored_950: 21301900 + colored_205: 21300410 + colored_580: 21301160 + colored_247: 21300494 + colored_144: 21300288 + colored_258: 21300516 + colored_261: 21300522 + colored_201: 21300402 + colored_136: 21300272 + colored_674: 21301348 + colored_989: 21301978 + colored_995: 21301990 + colored_287: 21300574 + colored_794: 21301588 + colored_639: 21301278 + colored_92: 21300184 + colored_374: 21300748 + colored_940: 21301880 + colored_184: 21300368 + colored_556: 21301112 + colored_708: 21301416 + colored_692: 21301384 + colored_492: 21300984 + colored_487: 21300974 + colored_882: 21301764 + colored_621: 21301242 + colored_589: 21301178 + colored_777: 21301554 + colored_373: 21300746 + colored_522: 21301044 + colored_750: 21301500 + colored_961: 21301922 + colored_670: 21301340 + colored_276: 21300552 + colored_81: 21300162 + colored_172: 21300344 + colored_840: 21301680 + colored_333: 21300666 + colored_308: 21300616 + colored_263: 21300526 + colored_270: 21300540 + colored_305: 21300610 + colored_752: 21301504 + colored_779: 21301558 + colored_442: 21300884 + colored_953: 21301906 + colored_86: 21300172 + colored_313: 21300626 + smiley: 21301702 + colored_649: 21301298 + colored_688: 21301376 + colored_808: 21301616 + colored_324: 21300648 + colored_177: 21300354 + colored_193: 21300386 + colored_267: 21300534 + colored_295: 21300590 + colored_468: 21300936 + colored_282: 21300564 + colored_554: 21301108 + colored_371: 21300742 + colored_403: 21300806 + colored_182: 21300364 + colored_460: 21300920 + colored_347: 21300694 + colored_685: 21301370 + colored_741: 21301482 + colored_161: 21300322 + colored_345: 21300690 + colored_49: 21300098 + player: 21300560 + colored_190: 21300380 + colored_705: 21301410 + colored_974: 21301948 + colored_25: 21300050 + colored_327: 21300654 + colored_817: 21301634 + colored_421: 21300842 + colored_376: 21300752 + colored_905: 21301810 + colored_223: 21300446 + colored_954: 21301908 + colored_120: 21300240 + colored_192: 21300384 + colored_278: 21300556 + colored_464: 21300928 + colored_357: 21300714 + colored_578: 21301156 + colored_728: 21301456 + colored_463: 21300926 + colored_853: 21301706 + colored_10: 21300020 + colored_816: 21301632 + colored_130: 21300260 + colored_297: 21300594 + colored_59: 21300118 + colored_296: 21300592 + colored_619: 21301238 + colored_916: 21301832 + colored_676: 21301352 + colored_932: 21301864 + colored_452: 21300904 + colored_634: 21301268 + colored_780: 21301560 + colored_334: 21300668 + colored_485: 21300970 + colored_80: 21300160 + colored_1020: 21302040 + colored_504: 21301008 + colored_883: 21301766 + colored_731: 21301462 + colored_1012: 21302024 + colored_952: 21301904 + colored_772: 21301544 + colored_58: 21300116 + colored_682: 21301364 + colored_508: 21301016 + colored_257: 21300514 + colored_290: 21300580 + colored_729: 21301458 + colored_736: 21301472 + colored_719: 21301438 + colored_778: 21301556 + colored_744: 21301488 + colored_527: 21301054 + colored_783: 21301566 + colored_1005: 21302010 + colored_1007: 21302014 + colored_230: 21300460 + colored_525: 21301050 + colored_176: 21300352 + colored_547: 21301094 + colored_57: 21300114 + colored_625: 21301250 + colored_742: 21301484 + colored_673: 21301346 + colored_657: 21301314 + colored_847: 21301694 + colored_368: 21300736 + colored_975: 21301950 + colored_409: 21300818 + colored_461: 21300922 + colored_998: 21301996 + colored_891: 21301782 + colored_600: 21301200 + colored_514: 21301028 + colored_252: 21300504 + colored_411: 21300822 + colored_712: 21301424 + colored_412: 21300824 + colored_300: 21300600 + colored_479: 21300958 + colored_2: 21300004 + colored_488: 21300976 + colored_591: 21301182 + colored_796: 21301592 + colored_896: 21301792 + colored_112: 21300224 + colored_66: 21300132 + colored_162: 21300324 + colored_139: 21300278 + colored_714: 21301428 + colored_67: 21300134 + colored_235: 21300470 + colored_784: 21301568 + colored_475: 21300950 + colored_805: 21301610 + colored_26: 21300052 + colored_212: 21300424 + colored_1013: 21302026 + colored_869: 21301738 + colored_359: 21300718 + colored_428: 21300856 + colored_686: 21301372 + colored_861: 21301722 + colored_63: 21300126 + colored_845: 21301690 + colored_747: 21301494 + colored_244: 21300488 + colored_273: 21300546 + colored_43: 21300086 + colored_523: 21301046 + colored_238: 21300476 + colored_56: 21300112 + colored_648: 21301296 + colored_533: 21301066 + colored_131: 21300262 + colored_654: 21301308 + colored_588: 21301176 + colored_694: 21301388 + colored_835: 21301670 + colored_724: 21301448 + colored_156: 21300312 + colored_52: 21300104 + colored_627: 21301254 + colored_704: 21301408 + colored_457: 21300914 + colored_970: 21301940 + colored_423: 21300846 + colored_493: 21300986 + colored_568: 21301136 + colored_628: 21301256 + colored_518: 21301036 + colored_375: 21300750 + colored_275: 21300550 + colored_186: 21300372 + colored_595: 21301190 + colored_149: 21300298 + colored_809: 21301618 + colored_142: 21300284 + colored_541: 21301082 + colored_957: 21301914 + colored_388: 21300776 + colored_820: 21301640 + colored_758: 21301516 + colored_312: 21300624 + colored_425: 21300850 + colored_196: 21300392 + colored_166: 21300332 + colored_208: 21300416 + colored_922: 21301844 + colored_760: 21301520 + colored_40: 21300080 + colored_355: 21300710 + colored_289: 21300578 + colored_431: 21300862 + colored_390: 21300780 + colored_1017: 21302034 + colored_448: 21300896 + colored_503: 21301006 + colored_70: 21300140 + colored_491: 21300982 + colored_895: 21301790 + colored_679: 21301358 + colored_706: 21301412 + colored_617: 21301234 + colored_876: 21301752 + colored_291: 21300582 + colored_79: 21300158 + colored_453: 21300906 + colored_689: 21301378 + colored_710: 21301420 + colored_143: 21300286 + colored_302: 21300604 + colored_328: 21300656 + colored_984: 21301968 + colored_389: 21300778 + colored_587: 21301174 + colored_531: 21301062 + colored_602: 21301204 + colored_839: 21301678 + colored_34: 21300068 + colored_687: 21301374 + colored_511: 21301022 + colored_577: 21301154 + colored_665: 21301330 + colored_652: 21301304 + colored_198: 21300396 + colored_872: 21301744 + colored_107: 21300214 + colored_753: 21301506 + colored_987: 21301974 + colored_931: 21301862 + colored_102: 21300204 + colored_765: 21301530 + colored_486: 21300972 + colored_755: 21301510 + colored_320: 21300640 + colored_336: 21300672 + colored_900: 21301800 + colored_938: 21301876 + colored_910: 21301820 + colored_18: 21300036 + colored_194: 21300388 + colored_159: 21300318 + colored_310: 21300620 + colored_229: 21300458 + colored_897: 21301794 + colored_441: 21300882 + colored_46: 21300092 + colored_642: 21301284 + colored_564: 21301128 + colored_440: 21300880 + colored_959: 21301918 + colored_643: 21301286 + colored_937: 21301874 + colored_467: 21300934 + colored_877: 21301754 + colored_904: 21301808 + colored_53: 21300106 + colored_351: 21300702 + colored_960: 21301920 + colored_841: 21301682 + colored_818: 21301636 + colored_6: 21300012 + colored_992: 21301984 + colored_585: 21301170 + colored_868: 21301736 + colored_216: 21300432 + colored_949: 21301898 + colored_510: 21301020 + colored_499: 21300998 + colored_678: 21301356 + colored_191: 21300382 + colored_789: 21301578 + colored_884: 21301768 + colored_259: 21300518 + colored_377: 21300754 + colored_614: 21301228 + colored_251: 21300502 + colored_124: 21300248 + colored_12: 21300024 + colored_106: 21300212 + colored_384: 21300768 + colored_677: 21301354 + colored_551: 21301102 + colored_128: 21300256 + colored_797: 21301594 + colored_844: 21301688 + colored_447: 21300894 + colored_769: 21301538 + colored_93: 21300186 + colored_773: 21301546 + colored_852: 21301704 + colored_77: 21300154 + colored_858: 21301716 + colored_832: 21301664 + colored_920: 21301840 + colored_1016: 21302032 + colored_456: 21300912 + colored_88: 21300176 + colored_415: 21300830 + colored_476: 21300952 + colored_417: 21300834 + colored_418: 21300836 + colored_815: 21301630 + colored_942: 21301884 + colored_871: 21301742 + colored_516: 21301032 + colored_956: 21301912 + colored_209: 21300418 + colored_401: 21300802 + colored_497: 21300994 + colored_982: 21301964 + colored_35: 21300070 + colored_646: 21301292 + colored_730: 21301460 + colored_117: 21300234 + colored_123: 21300246 + colored_631: 21301262 + colored_157: 21300314 + colored_399: 21300798 + colored_484: 21300968 + colored_771: 21301542 + colored_951: 21301902 + colored_446: 21300892 + colored_863: 21301726 + colored_857: 21301714 + colored_436: 21300872 + colored_540: 21301080 + colored_62: 21300124 spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Monster.prefab b/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Monster.prefab index 05e2ece1dbf..68887ada168 100644 --- a/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Monster.prefab +++ b/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Monster.prefab @@ -30,6 +30,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -45,6 +46,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -97,30 +99,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: [] - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 1093115804 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &9067666277946159250 MonoBehaviour: @@ -154,6 +164,3 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 - MovementSpeed: 1 - RotateSpeed: 50 - Floaty: 0 diff --git a/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Player.prefab b/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Player.prefab index 7f24b96a03a..3e77cb866e9 100644 --- a/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Player.prefab +++ b/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Prefabs/Player.prefab @@ -30,6 +30,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -45,6 +46,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -97,30 +99,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: [] - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 481653549 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &1303760839613216441 MonoBehaviour: @@ -136,7 +146,7 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 - ClientAuthority: 1 + ClientAuthority: 0 LocalPositionSensitivity: 0.01 LocalRotationSensitivity: 0.01 LocalScaleSensitivity: 0.01 @@ -154,6 +164,3 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 - MovementSpeed: 1 - RotateSpeed: 50 - Floaty: 0 diff --git a/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Scripts/HeadlessBenchmark.cs b/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Scripts/HeadlessBenchmark.cs index 8bf8be24c9e..117ea7473c3 100644 --- a/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Scripts/HeadlessBenchmark.cs +++ b/Assets/Tests/Performance/Runtime/HeadlessBenchmark/Scripts/HeadlessBenchmark.cs @@ -118,7 +118,6 @@ void ParseForServerMode() spawner.Server = server; server.Started.AddListener(OnServerStarted); - server.Authenticated.AddListener(conn => serverObjectManager.SpawnVisibleObjects(conn, true)); server.StartServer(); Console.WriteLine("Starting Server Only Mode"); } diff --git a/Assets/Tests/Performance/Runtime/InterestManagement.meta b/Assets/Tests/Performance/Runtime/InterestManagement.meta new file mode 100644 index 00000000000..90b946f5ad9 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a7fc1a2b848e8684c82e77583ef1bd9d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement.meta new file mode 100644 index 00000000000..cc0a984938e --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5545a4653191a7a44aef616a3111dec9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs.meta new file mode 100644 index 00000000000..594f82d2f72 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7035049b211283a4f972d17abc053930 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab new file mode 100644 index 00000000000..99ba2e1152f --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab @@ -0,0 +1,316 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4415124803507263412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9057824595171805708} + - component: {fileID: 662729490405160656} + - component: {fileID: 3624570427921084598} + m_Layer: 8 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9057824595171805708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4415124803507263412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3254954141432383832} + m_Father: {fileID: 5328458565928408179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &662729490405160656 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4415124803507263412} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3624570427921084598 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4415124803507263412} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5ed300fcebc07684a85a97469226ab97, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &5815001218983416211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3254954141432383832} + - component: {fileID: 1800893346221236401} + - component: {fileID: 136369082707552984} + m_Layer: 8 + m_Name: Visor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3254954141432383832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815001218983416211} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.39999998, z: 0.5} + m_LocalScale: {x: 0.5, y: 0.1, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9057824595171805708} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1800893346221236401 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815001218983416211} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &136369082707552984 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815001218983416211} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &8872462076811691049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5328458565928408179} + - component: {fileID: 8537344390966522168} + - component: {fileID: 887491563423388292} + - component: {fileID: 1143206540915927667} + - component: {fileID: 3175779197224890082} + - component: {fileID: 8367184561704391103} + m_Layer: 8 + m_Name: Enemy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5328458565928408179 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.08, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9057824595171805708} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8537344390966522168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 1720388515 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 +--- !u!114 &887491563423388292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f74aedd71d9a4f55b3ce499326d45fb, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0 + ClientAuthority: 0 + LocalPositionSensitivity: 0.01 + LocalRotationSensitivity: 0.01 + LocalScaleSensitivity: 0.01 +--- !u!136 &1143206540915927667 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 1 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &3175779197224890082 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &8367184561704391103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3597836b6e0922c47b1be10149841146, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0.1 + speed: 1 + movementProbability: 0.5 + movementDistance: 20 diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab.meta new file mode 100644 index 00000000000..ba0a0a8f067 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d930748d872234c43854e5100c045754 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab new file mode 100644 index 00000000000..b4076f4158c --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab @@ -0,0 +1,335 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4415124803507263412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9057824595171805708} + - component: {fileID: 662729490405160656} + - component: {fileID: 3624570427921084598} + m_Layer: 8 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9057824595171805708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4415124803507263412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3254954141432383832} + m_Father: {fileID: 5328458565928408179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &662729490405160656 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4415124803507263412} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3624570427921084598 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4415124803507263412} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 290a036e56c5ded488aa79878e583e06, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &5815001218983416211 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3254954141432383832} + - component: {fileID: 1800893346221236401} + - component: {fileID: 136369082707552984} + m_Layer: 8 + m_Name: Visor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3254954141432383832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815001218983416211} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.39999998, z: 0.5} + m_LocalScale: {x: 0.5, y: 0.1, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9057824595171805708} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1800893346221236401 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815001218983416211} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &136369082707552984 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815001218983416211} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &8872462076811691049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5328458565928408179} + - component: {fileID: 8537344390966522168} + - component: {fileID: 887491563423388292} + - component: {fileID: 8993127209816276930} + - component: {fileID: 1143206540915927667} + - component: {fileID: 3175779197224890082} + - component: {fileID: 5430196266191776764} + m_Layer: 8 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5328458565928408179 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.08, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9057824595171805708} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8537344390966522168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 391905112 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 +--- !u!114 &887491563423388292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f74aedd71d9a4f55b3ce499326d45fb, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0 + ClientAuthority: 1 + LocalPositionSensitivity: 0.01 + LocalRotationSensitivity: 0.01 + LocalScaleSensitivity: 0.01 +--- !u!143 &8993127209816276930 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.3 + m_SkinWidth: 0.08 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} +--- !u!136 &1143206540915927667 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 1 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &3175779197224890082 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &5430196266191776764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8872462076811691049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1a82f2ab2720f174b890224b37d4e856, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0.1 + color: + serializedVersion: 2 + rgba: 4278190335 diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab.meta new file mode 100644 index 00000000000..ae5968f45fb --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d98d89ed1bf2b34eb8d98353073a70f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes.meta new file mode 100644 index 00000000000..0ea8b918092 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 33ffa7093d807864e9c7c4733ee7a602 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity new file mode 100644 index 00000000000..08cc1b7e139 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity @@ -0,0 +1,542 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &114156685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 114156689} + - component: {fileID: 114156688} + - component: {fileID: 114156687} + - component: {fileID: 114156686} + - component: {fileID: 114156690} + m_Layer: 0 + m_Name: World Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &114156686 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114156685} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &114156687 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114156685} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 2ea5b55dbad16cb4c8b1ebf5ee1f8932, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &114156688 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114156685} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &114156689 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114156685} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 1, z: 100} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &114156690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114156685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cc79f98106edccc44b7708ea93c55f3b, type: 3} + m_Name: + m_EditorClassIdentifier: + _enemyPrefab: {fileID: 8537344390966522168, guid: d930748d872234c43854e5100c045754, + type: 3} + NumberOfEnemiesSpawn: 500 + FinishedLoadingEnemies: 0 + _serverObject: {fileID: 1092843210} + _plane: {fileID: 114156689} +--- !u!1 &291811936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 291811938} + - component: {fileID: 291811937} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &291811937 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 291811936} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &291811938 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 291811936} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &425841331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 425841334} + - component: {fileID: 425841333} + - component: {fileID: 425841332} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &425841332 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 425841331} + m_Enabled: 1 +--- !u!20 &425841333 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 425841331} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &425841334 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 425841331} + m_LocalRotation: {x: 0.2164396, y: 0, z: 0, w: 0.97629607} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 25, y: 0, z: 0} +--- !u!1 &1092843205 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1092843215} + - component: {fileID: 1092843214} + - component: {fileID: 1092843210} + - component: {fileID: 1092843208} + - component: {fileID: 1092843207} + m_Layer: 0 + m_Name: NetworkManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1092843207 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092843205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9f46b2d67d7a054d8c13075473bd4a2, type: 3} + m_Name: + m_EditorClassIdentifier: + Address: localhost + Port: 7777 + SocketLib: 0 + BufferSize: 262144 +--- !u!114 &1092843208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092843205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a7aaac73a16c040fd871cb977b5c557b, type: 3} + m_Name: + m_EditorClassIdentifier: + Client: {fileID: 0} + Server: {fileID: 1092843214} + SceneManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + ServerObjectManager: {fileID: 1092843210} + PlayerPrefab: {fileID: 8537344390966522168, guid: 6d98d89ed1bf2b34eb8d98353073a70f, + type: 3} + AutoSpawn: 1 + startPositionIndex: 0 + startPositions: [] + playerSpawnMethod: 0 +--- !u!114 &1092843210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092843205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b750203ddb2d9f84abd799a5c2c32cb6, type: 3} + m_Name: + m_EditorClassIdentifier: + Server: {fileID: 1092843214} + NetworkSceneManager: {fileID: 0} +--- !u!114 &1092843214 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092843205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5f5ec068f5604c32b160bc49ee97b75, type: 3} + m_Name: + m_EditorClassIdentifier: + EnablePeerMetrics: 0 + MetricsSize: 10 + MaxConnections: 4 + DisconnectOnException: 1 + Listening: 1 + SocketFactory: {fileID: 1092843207} + authenticator: {fileID: 0} + _started: + _event: + m_PersistentCalls: + m_Calls: [] + _connected: + m_PersistentCalls: + m_Calls: [] + _authenticated: + m_PersistentCalls: + m_Calls: [] + _disconnected: + m_PersistentCalls: + m_Calls: [] + _stopped: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartHost: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopHost: + _event: + m_PersistentCalls: + m_Calls: [] +--- !u!4 &1092843215 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092843205} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity.meta new file mode 100644 index 00000000000..a1dfc9a780d --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a480b9452fd45dc4a82ed0f5f5303829 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene.meta new file mode 100644 index 00000000000..f27098ca553 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8b432d88798e65409f3ad73952cd13a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene/NavMesh.asset b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene/NavMesh.asset new file mode 100644 index 00000000000..3acffc80e78 Binary files /dev/null and b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene/NavMesh.asset differ diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene/NavMesh.asset.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene/NavMesh.asset.meta new file mode 100644 index 00000000000..fc12a003b29 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/Scene/NavMesh.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 096a2f607454e5a488d37e059937d166 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 23800000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/SceneSettings.lighting b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/SceneSettings.lighting new file mode 100644 index 00000000000..e7ddce86b32 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/SceneSettings.lighting @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!850595691 &4890085278179872738 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SceneSettings + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/SceneSettings.lighting.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/SceneSettings.lighting.meta new file mode 100644 index 00000000000..b4deb2e1487 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/SceneSettings.lighting.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 22af641d8a7bf3d45a53b443535859ee +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4890085278179872738 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts.meta new file mode 100644 index 00000000000..116237a58cd --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7a5d3954e0eda345a9df1d316e395ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/EnemySpawner.cs b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/EnemySpawner.cs new file mode 100644 index 00000000000..d015338c694 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/EnemySpawner.cs @@ -0,0 +1,59 @@ +using System.Collections; +using UnityEngine; +using Random = UnityEngine.Random; + +namespace Mirage.Examples.InterestManagement +{ + public class EnemySpawner : MonoBehaviour + { + [SerializeField] private NetworkIdentity _enemyPrefab; + public int NumberOfEnemiesSpawn = 100; + public bool FinishedLoadingEnemies; + [SerializeField] private ServerObjectManager _serverObject; + [SerializeField] private Transform _plane; + + private float _planeX, _planeZ; + + private void Awake() + { + _serverObject.Server.Started.AddListener(OnStartServer); + + Mesh mesh = _plane.GetComponent().mesh; + + _planeX = (mesh.bounds.size.x / 2) * _plane.localScale.x; + _planeZ = (mesh.bounds.size.z / 2) * _plane.localScale.z; + } + + private void OnStartServer() + { + StartCoroutine(nameof(SpawnEnemies)); + } + + private IEnumerator SpawnEnemies() + { + int spawned = 0; + + for (int i = 0; i < NumberOfEnemiesSpawn; i++) + { + float xRand = Random.Range(-_planeX, _planeX); + float zRand = Random.Range(-_planeZ, _planeZ); + + NetworkIdentity enemy = Instantiate(_enemyPrefab, new Vector3(xRand, 1, zRand), Quaternion.identity); + + _serverObject.Spawn(enemy); + + spawned++; + + // spawn max of 100 per frame + if (spawned == 100) + { + yield return new WaitForEndOfFrame(); + + spawned = 0; + } + } + + FinishedLoadingEnemies = true; + } + } +} diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/EnemySpawner.cs.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/EnemySpawner.cs.meta new file mode 100644 index 00000000000..d2b34d22eba --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/EnemySpawner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cc79f98106edccc44b7708ea93c55f3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MonsterRandomMovement.cs b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MonsterRandomMovement.cs new file mode 100644 index 00000000000..cc91996ea3f --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MonsterRandomMovement.cs @@ -0,0 +1,59 @@ +using UnityEngine; + +namespace Mirage.Examples.OneK +{ + public class MonsterRandomMovement : NetworkBehaviour + { + public float speed = 1; + public float movementProbability = 0.5f; + public float movementDistance = 20; + + bool moving; + Vector3 start; + Vector3 destination; + + public void OnStartServer() + { + start = transform.position; + } + + private void Awake() + { + Identity.OnStartServer.AddListener(OnStartServer); + } + + [Server(error = false)] + void Update() + { + if (moving) + { + if (Vector3.Distance(transform.position, destination) <= 0.01f) + { + moving = false; + } + else + { + transform.position = Vector3.MoveTowards(transform.position, destination, speed * Time.deltaTime); + } + } + else + { + float r = Random.value; + if (r < movementProbability * Time.deltaTime) + { + Vector2 circlePos = Random.insideUnitCircle; + Vector3 dir = new Vector3(circlePos.x, 0, circlePos.y); + Vector3 dest = transform.position + dir * movementDistance; + + // within move dist around start? + // (don't want to wander off) + if (Vector3.Distance(start, dest) <= movementDistance) + { + destination = dest; + moving = true; + } + } + } + } + } +} diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MonsterRandomMovement.cs.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MonsterRandomMovement.cs.meta new file mode 100644 index 00000000000..52177ca36b2 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MonsterRandomMovement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3597836b6e0922c47b1be10149841146 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MultiClients.cs b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MultiClients.cs new file mode 100644 index 00000000000..8a0dc9e77ba --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MultiClients.cs @@ -0,0 +1,69 @@ +using System.Collections; +using Mirage; +using Mirage.SocketLayer; +using UnityEditor; +using UnityEngine; + +public class MultiClients : MonoBehaviour +{ + public int ClientCount = 50; + private NetworkServer _server; + + const string MonsterPath = "Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab"; + const string PlayerPath = "Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab"; + private NetworkIdentity PlayerPrefab; + private NetworkIdentity MonsterPrefab; + [SerializeField] private Transform _plane; + private float _planeX, _planeZ; + + private void Awake() + { + MonsterPrefab = AssetDatabase.LoadAssetAtPath(MonsterPath); + PlayerPrefab = AssetDatabase.LoadAssetAtPath(PlayerPath); + + Mesh mesh = _plane.GetComponent().mesh; + + _planeX = (mesh.bounds.size.x / 2) * _plane.localScale.x; + _planeZ = (mesh.bounds.size.z / 2) * _plane.localScale.z; + + _server = FindObjectOfType(); + _server.Started.AddListener(OnServerStarted); + _server.MaxConnections = ClientCount + 1; + _server.StartServer(); + } + + private void OnServerStarted() + { + // connect from a bunch of clients + for (int i = 0; i < ClientCount; i++) + StartClient(i, _server.GetComponent()); + } + + private void StartClient(int i, SocketFactory socketFactory) + { + float xRand = Random.Range(-_planeX, _planeX); + float zRand = Random.Range(-_planeZ, _planeZ); + + var clientGo = new GameObject($"Client {i}", typeof(NetworkClient), typeof(ClientObjectManager)); + + clientGo.transform.position = new Vector3(xRand, 1, zRand); + clientGo.SetActive(false); + NetworkClient client = clientGo.GetComponent(); + ClientObjectManager objectManager = clientGo.GetComponent(); + objectManager.Client = client; + objectManager.Start(); + + client.SocketFactory = socketFactory; + + CharacterSpawner spawner = clientGo.AddComponent(); + spawner.Client = client; + spawner.ClientObjectManager = objectManager; + spawner.PlayerPrefab = PlayerPrefab; + + objectManager.RegisterPrefab(MonsterPrefab); + objectManager.RegisterPrefab(PlayerPrefab); + + clientGo.SetActive(true); + client.Connect("localhost"); + } +} diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MultiClients.cs.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MultiClients.cs.meta new file mode 100644 index 00000000000..190d24cede3 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/MultiClients.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 285e45564b1b327499413348fc828d68 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/RandomColor.cs b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/RandomColor.cs new file mode 100644 index 00000000000..37d821af229 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/RandomColor.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace Mirage.Examples.Additive +{ + public class RandomColor : NetworkBehaviour + { + void Awake() + { + Identity.OnStartServer.AddListener(OnStartServer); + } + + public void OnStartServer() + { + color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f); + } + + // Color32 packs to 4 bytes + [SyncVar(hook = nameof(SetColor))] + public Color32 color = Color.black; + + // Unity clones the material when GetComponent().material is called + // Cache it here and destroy it in OnDestroy to prevent a memory leak + Material cachedMaterial; + + void SetColor(Color32 oldColor, Color32 newColor) + { + if (cachedMaterial == null) cachedMaterial = GetComponentInChildren().material; + cachedMaterial.color = newColor; + } + + void OnDestroy() + { + Destroy(cachedMaterial); + } + } +} diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/RandomColor.cs.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/RandomColor.cs.meta new file mode 100644 index 00000000000..65f3fc2e8ac --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scripts/RandomColor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1a82f2ab2720f174b890224b37d4e856 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures.meta new file mode 100644 index 00000000000..d127aff2993 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 000d3eb1dbb9a2e41bdb8c24931e7905 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt Hand Painted Texture - License.txt b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt Hand Painted Texture - License.txt new file mode 100644 index 00000000000..6091137a3fe --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt Hand Painted Texture - License.txt @@ -0,0 +1,5 @@ +Dirt Hand Painted Textures created by 'KIIRA' +https://opengameart.org/content/dirt-hand-painted-texture + +Licensed as CC-BY-3.0: +https://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt Hand Painted Texture - License.txt.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt Hand Painted Texture - License.txt.meta new file mode 100644 index 00000000000..46686d84abc --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt Hand Painted Texture - License.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 60db43ab493e2094faa36e937a91b43f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt.mat b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt.mat new file mode 100644 index 00000000000..479698bef87 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt.mat @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Dirt + m_Shader: {fileID: 45, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 5, y: 5} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 82e5fee93bea71a488215a905164e47e, type: 3} + m_Scale: {x: 5, y: 5} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0.13207549, g: 0.06631743, b: 0, a: 1} + - _SpecColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt.mat.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt.mat.meta new file mode 100644 index 00000000000..4e2b5da4d98 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Dirt.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ea5b55dbad16cb4c8b1ebf5ee1f8932 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Npc.mat b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Npc.mat new file mode 100644 index 00000000000..2aa706f93d8 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Npc.mat @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Npc + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Npc.mat.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Npc.mat.meta new file mode 100644 index 00000000000..a6677243f0a --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Npc.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ed300fcebc07684a85a97469226ab97 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Player.mat b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Player.mat new file mode 100644 index 00000000000..05a166bc969 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Player.mat @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Player + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Player.mat.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Player.mat.meta new file mode 100644 index 00000000000..587d3b2edee --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/Player.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 290a036e56c5ded488aa79878e583e06 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/dirt.png b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/dirt.png new file mode 100644 index 00000000000..3174ecc98e3 Binary files /dev/null and b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/dirt.png differ diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/dirt.png.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/dirt.png.meta new file mode 100644 index 00000000000..c9dbc6af12d --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Textures/dirt.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 82e5fee93bea71a488215a905164e47e +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagmentPerformanceBase.cs b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagmentPerformanceBase.cs new file mode 100644 index 00000000000..9fe31dc36ef --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagmentPerformanceBase.cs @@ -0,0 +1,349 @@ +using System; +using System.Collections; +using Mirage.Components; +using Mirage.Examples.InterestManagement; +using Mirage.SocketLayer; +using NUnit.Framework; +using Unity.PerformanceTesting; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; +using UnityEngine.TestTools; +using static UnityEngine.Object; + +namespace Mirage.Tests.Performance.Runtime.AOI +{ + public class GlobalInterestManagementPerformance : InterestManagementPerformanceBase + { + #region Overrides of InterestManagementPerformanceBase + + /// + /// Called after server starts + /// + /// + /// + protected override IEnumerator SetupInterestManagement(NetworkServer server) + { + //NOOP + yield return null; + } + + protected override void SetupPrefab(NetworkIdentity prefab) + { + //NOOP + } + protected override void CleanPrefab(NetworkIdentity prefab) + { + //NOOP + } + + #endregion + } + + public class MultiInterestManagementPerformance : InterestManagementPerformanceBase + { + #region Overrides of InterestManagementPerformanceBase + + /// + /// Called after server starts + /// + /// + /// + protected override IEnumerator SetupInterestManagement(NetworkServer server) + { + AddFactoryToServer(server); + AddFactoryToServer(server); + yield return null; + } + + protected override void SetupPrefab(NetworkIdentity prefab) + { + AddComponentToPrefab(prefab); + AddComponentToPrefab(prefab); + } + protected override void CleanPrefab(NetworkIdentity prefab) + { + RemoveComponentToPrefab(prefab); + RemoveComponentToPrefab(prefab); + } + + #endregion + } + + public class SceneInterestManagementPerformance : InterestManagementPerformanceBase + { + #region Overrides of InterestManagementPerformanceBase + + /// + /// Called after server starts + /// + /// + /// + protected override IEnumerator SetupInterestManagement(NetworkServer server) + { + AddFactoryToServer(server); + + yield return null; + } + + protected override void SetupPrefab(NetworkIdentity prefab) + { + AddComponentToPrefab(prefab); + } + protected override void CleanPrefab(NetworkIdentity prefab) + { + RemoveComponentToPrefab(prefab); + } + + #endregion + } + + public class ProximityInterestManagerPerformance : InterestManagementPerformanceBase + { + #region Overrides of InterestManagementPerformanceBase + + /// + /// Called after server starts + /// + /// + /// + protected override IEnumerator SetupInterestManagement(NetworkServer server) + { + AddFactoryToServer(server); + + yield return null; + } + + protected override void SetupPrefab(NetworkIdentity prefab) + { + AddComponentToPrefab(prefab); + } + protected override void CleanPrefab(NetworkIdentity prefab) + { + RemoveComponentToPrefab(prefab); + } + + #endregion + } + + [Category("Performance"), Category("InterestManagement")] + public abstract class InterestManagementPerformanceBase + { + const string testScene = "Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Scenes/AOI.unity"; + const string MonsterPath = "Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Enemy.prefab"; + const string PlayerPath = "Assets/Tests/Performance/Runtime/InterestManagement/InterestManagement/Prefabs/Player.prefab"; + + const string NpcSpawnerName = "World Floor"; + const int ClientCount = 2; + const int MonsterCount = 50; + const int Warmup = 5; + const int MeasureCount = 300; + + private NetworkServer Server; + private NetworkIdentity PlayerPrefab; + private NetworkIdentity MonsterPrefab; + + /// + /// Called after server starts + /// + protected abstract IEnumerator SetupInterestManagement(NetworkServer server); + + /// + /// Setsup prefab before it is used to spawn + /// + /// + protected abstract void SetupPrefab(NetworkIdentity prefab); + /// + /// Cleans up prefab so it doesn't effect next test + /// + /// + protected abstract void CleanPrefab(NetworkIdentity prefab); + + + + [UnitySetUp] + public IEnumerator Setup() + { + // load scene + yield return EditorSceneManager.LoadSceneAsyncInPlayMode(testScene, new LoadSceneParameters(LoadSceneMode.Single)); + + MonsterPrefab = AssetDatabase.LoadAssetAtPath(MonsterPath); + PlayerPrefab = AssetDatabase.LoadAssetAtPath(PlayerPath); + SetupPrefab(MonsterPrefab); + SetupPrefab(PlayerPrefab); + + EnemySpawner enemySpawner = GameObject.Find(NpcSpawnerName).GetComponent(); + enemySpawner.NumberOfEnemiesSpawn = MonsterCount; + + // load host + Server = FindObjectOfType(); + Server.MaxConnections = ClientCount; + + // wait 1 frame before Starting server to give time for Unity to call "Start" + yield return null; + + yield return SetupInterestManagement(Server); + + Server.StartServer(); + + // set names for existing (we have to call this just incase any are spawned inside Server.Started event + foreach (NetworkIdentity ni in Server.World.SpawnedIdentities) SetIdentityName(ni); + // set names for new + Server.World.onSpawn += SetIdentityName; + + // wait for all enemies to spawn in. + while (!enemySpawner.FinishedLoadingEnemies) { yield return null; } + + + // connect from a bunch of clients + for (int i = 0; i < ClientCount; i++) + yield return StartClient(i, Server.GetComponent()); + + // wait 10 frames for all clients to full setup + for (int i = 0; i < 10; i++) + { + yield return null; + } + } + + private void SetIdentityName(NetworkIdentity ni) + { + ni.name += $" [netId:{ni.NetId}]"; + } + + private IEnumerator StartClient(int i, SocketFactory socketFactory) + { + Scene scene = SceneManager.CreateScene($"Client {i}", new CreateSceneParameters { localPhysicsMode = LocalPhysicsMode.Physics3D }); + var clientGo = new GameObject($"Client {i}"); + // disable object so awake isn't called on new components till we enable it + clientGo.SetActive(false); + SceneManager.MoveGameObjectToScene(clientGo, scene); + + NetworkClient client = clientGo.AddComponent(); + client.SocketFactory = clientGo.AddComponent(socketFactory.GetType()) as SocketFactory; + + ClientObjectManager objectManager = clientGo.AddComponent(); + objectManager.Client = client; + + CharacterSpawner spawner = clientGo.AddComponent(); + spawner.Client = client; + spawner.ClientObjectManager = objectManager; + spawner.PlayerPrefab = PlayerPrefab; + + objectManager.RegisterPrefab(MonsterPrefab); + objectManager.RegisterPrefab(PlayerPrefab); + + // enable so awake is called + clientGo.SetActive(true); + // yield so start is called + yield return null; + client.Connect("localhost"); + client.World.onSpawn += (ni) => + { + SetIdentityName(ni); + // move any NI spawned in on client to the scene for that client + SceneManager.MoveGameObjectToScene(ni.gameObject, scene); + }; + } + + [UnityTearDown] + public IEnumerator TearDown() + { + CleanPrefab(MonsterPrefab); + CleanPrefab(PlayerPrefab); + + Server.Stop(); + + // wait for all clients to stop + yield return null; + yield return null; + + // make sure server object is destroyed + DestroyImmediate(Server.gameObject); + + // get all scenes, Server+N*clients + var scenes = new Scene[SceneManager.sceneCount]; + for (int i = 0; i < scenes.Length; i++) + { + scenes[i] = SceneManager.GetSceneAt(i); + } + + // open new scene so that old one is destroyed + SceneManager.CreateScene("empty", new CreateSceneParameters(LocalPhysicsMode.None)); + for (int i = 0; i < scenes.Length; i++) + { + // unload all old scenes + yield return SceneManager.UnloadSceneAsync(scenes[i]); + } + } + + protected static void AddFactoryToServer(NetworkServer server) where TFactory : VisibilitySystemFactory + { + // disable, so we can set field before awake + server.gameObject.SetActive(false); + TFactory factory = server.gameObject.AddComponent(); + factory.Server = server; + // triggers awake + server.gameObject.SetActive(true); + } + + protected static void AddComponentToPrefab(NetworkIdentity prefab) where TSettings : Component + { + prefab.gameObject.AddComponent(); + } + + protected static void RemoveComponentToPrefab(NetworkIdentity prefab) where TSettings : Component + { + DestroyImmediate(prefab.gameObject.GetComponent(), true); + } + + [Explicit] + [UnityTest] + public IEnumerator RunsWithoutErrors() + { + yield return new WaitForSeconds(5); + } + + [Explicit] + [UnityTest] + public IEnumerator LogFrameTimes() + { + float end = Time.time + 5; + var stopwatch = new System.Diagnostics.Stopwatch(); + stopwatch.Start(); + long lastFrame = stopwatch.ElapsedMilliseconds; + float lastFrameTime = Time.time; + while (Time.time < end) + { + yield return null; + UnityEngine.Debug.Log($"Frame, Time {(Time.time - lastFrameTime) * 1000:0}, SW:{stopwatch.ElapsedMilliseconds - lastFrame:0}"); + lastFrame = stopwatch.ElapsedMilliseconds; + lastFrameTime = Time.time; + } + } + + [Explicit] + [UnityTest, Performance] + public IEnumerator FramePerformance() + { + SampleGroup[] sampleGroups = + { + new SampleGroup("Observers", SampleUnit.Microsecond), + new SampleGroup("OnAuthenticated", SampleUnit.Microsecond), + new SampleGroup("OnSpawnInWorld", SampleUnit.Microsecond), + new SampleGroup("Update", SampleUnit.Microsecond), + new SampleGroup("Send", SampleUnit.Microsecond), + }; + + // collect GC from setup before we start measuring + GC.Collect(); + + yield return Measure.Frames() + .ProfilerMarkers(sampleGroups) + .WarmupCount(Warmup) + .MeasurementCount(MeasureCount) + .Run(); + } + } +} diff --git a/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagmentPerformanceBase.cs.meta b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagmentPerformanceBase.cs.meta new file mode 100644 index 00000000000..f242b919e26 --- /dev/null +++ b/Assets/Tests/Performance/Runtime/InterestManagement/InterestManagmentPerformanceBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cec225769a46971449c8f61b27cb7f07 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Performance/Runtime/Mirage.Tests.Performance.Runtime.asmdef b/Assets/Tests/Performance/Runtime/Mirage.Tests.Performance.Runtime.asmdef index 6278f6754fa..03d4cb55f78 100644 --- a/Assets/Tests/Performance/Runtime/Mirage.Tests.Performance.Runtime.asmdef +++ b/Assets/Tests/Performance/Runtime/Mirage.Tests.Performance.Runtime.asmdef @@ -1,14 +1,16 @@ { "name": "Mirage.Tests.Performance.Runtime", + "rootNamespace": "", "references": [ "GUID:c0dd0d10738d4ad4a9de57c559d0ca1b", "GUID:30817c1a0e6d646d99c048fc403f5979", "GUID:4e9aca8a359ab48de906aedbfa1ffe21", - "GUID:bc6737b19bee94a798a182a84b660226", "GUID:27619889b8ba8c24980f49ee34dbb44a", "GUID:0acc523941302664db1f4e527237feb3", "GUID:f51ebe6a0ceec4240a699833d6309b23", - "GUID:c0b2064c294eb174c9f3f7da398eb677" + "GUID:c0b2064c294eb174c9f3f7da398eb677", + "GUID:96f081f4a0d214ee39e3aa34e9d43109", + "GUID:ae70f15dce7a4fa4b938107926f64504" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Tests/Performance/Runtime/MultipleClients/MultipleClients.cs b/Assets/Tests/Performance/Runtime/MultipleClients/MultipleClients.cs index c7be7c05200..2eb4a914e18 100644 --- a/Assets/Tests/Performance/Runtime/MultipleClients/MultipleClients.cs +++ b/Assets/Tests/Performance/Runtime/MultipleClients/MultipleClients.cs @@ -44,8 +44,6 @@ public class MultipleClients Server = Object.FindObjectOfType(); ServerObjectManager = Object.FindObjectOfType(); - Server.Authenticated.AddListener(conn => ServerObjectManager.SpawnVisibleObjects(conn, true)); - var started = new UniTaskCompletionSource(); Server.Started.AddListener(() => started.TrySetResult()); diff --git a/Assets/Tests/Performance/Runtime/MultipleClients/Prefabs/Monster.prefab b/Assets/Tests/Performance/Runtime/MultipleClients/Prefabs/Monster.prefab index 5d2ede18c1a..db64a528573 100644 --- a/Assets/Tests/Performance/Runtime/MultipleClients/Prefabs/Monster.prefab +++ b/Assets/Tests/Performance/Runtime/MultipleClients/Prefabs/Monster.prefab @@ -28,6 +28,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -44,30 +45,38 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: - OnStartServer: - m_PersistentCalls: - m_Calls: [] - OnStartClient: - m_PersistentCalls: - m_Calls: [] - OnStartLocalPlayer: - m_PersistentCalls: - m_Calls: [] - OnStartAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopAuthority: - m_PersistentCalls: - m_Calls: [] - OnStopClient: - m_PersistentCalls: - m_Calls: [] - OnStopServer: - m_PersistentCalls: - m_Calls: [] + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: -759525624 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] hasSpawned: 0 --- !u!114 &3690273087446598634 MonoBehaviour: @@ -82,6 +91,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: syncMode: 0 - syncInterval: 0 + syncInterval: 0.1 position: {x: 0, y: 0, z: 0} MonsterId: 0 diff --git a/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformance.cs b/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformance.cs index 4a91127d6d9..5212e7a080a 100644 --- a/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformance.cs +++ b/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformance.cs @@ -29,7 +29,6 @@ public void SetUp() gameObject = new GameObject(); identity = gameObject.AddComponent(); identity.Owner = Substitute.For(); - identity.observers.Add(identity.Owner); health = gameObject.AddComponent(); health.syncMode = SyncMode.Owner; health.syncInterval = 0f; diff --git a/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformanceWithMultipleBehaviour.cs b/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformanceWithMultipleBehaviour.cs index 3e2d524b82b..bb28124e46d 100644 --- a/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformanceWithMultipleBehaviour.cs +++ b/Assets/Tests/Performance/Runtime/NetworkWriter/NetworkIdentityPerformanceWithMultipleBehaviour.cs @@ -21,7 +21,6 @@ public void SetUp() gameObject = new GameObject(); identity = gameObject.AddComponent(); identity.Owner = Substitute.For(); - identity.observers.Add(identity.Owner); health = new Health[healthCount]; for (int i = 0; i < healthCount; i++) { diff --git a/Assets/Tests/Runtime/ClientServer/ServerObjectManagerTests.cs b/Assets/Tests/Runtime/ClientServer/ServerObjectManagerTests.cs index 4c7a017439a..88a249d75b4 100644 --- a/Assets/Tests/Runtime/ClientServer/ServerObjectManagerTests.cs +++ b/Assets/Tests/Runtime/ClientServer/ServerObjectManagerTests.cs @@ -86,7 +86,7 @@ public void ThrowsIfSpawnCalledWithOwnerWithNoOwnerTest() serverPlayer.SceneIsReady = true; // call ShowForConnection - serverObjectManager.ShowToPlayer(serverIdentity, serverPlayer); + serverObjectManager.InterestManager.ShowToPlayer(serverIdentity, serverPlayer); // todo assert correct message was sent using Substitute for socket or player diff --git a/Assets/Tests/Runtime/Host/ServerObjectManagerTest.cs b/Assets/Tests/Runtime/Host/ServerObjectManagerTest.cs index e11b60462ec..c1f5f6df671 100644 --- a/Assets/Tests/Runtime/Host/ServerObjectManagerTest.cs +++ b/Assets/Tests/Runtime/Host/ServerObjectManagerTest.cs @@ -20,7 +20,7 @@ public void HideForPlayerTest() NetworkIdentity identity = new GameObject().AddComponent(); - serverObjectManager.HideToPlayer(identity, player); + serverObjectManager.InterestManager.HideToPlayer(identity, player); player.Received().Send(Arg.Is(msg => msg.netId == identity.NetId)); diff --git a/Assets/Tests/Runtime/NetworkIdentityCallbackTests.cs b/Assets/Tests/Runtime/NetworkIdentityCallbackTests.cs deleted file mode 100644 index 3bd25a8588e..00000000000 --- a/Assets/Tests/Runtime/NetworkIdentityCallbackTests.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System.Collections.Generic; -using Mirage.Tests.Runtime.ClientServer; -using NSubstitute; -using NUnit.Framework; -using UnityEngine; -using static Mirage.Tests.LocalConnections; -using Object = UnityEngine.Object; - -namespace Mirage.Tests.Runtime -{ - public class NetworkIdentityCallbackTests : ClientServerSetup - { - #region test components - class RebuildEmptyObserversNetworkBehaviour : NetworkVisibility - { - public override bool OnCheckObserver(INetworkPlayer player) { return true; } - public override void OnRebuildObservers(HashSet observers, bool initialize) { } - } - - - #endregion - - GameObject gameObject; - NetworkIdentity identity; - - INetworkPlayer player1; - INetworkPlayer player2; - - [SetUp] - public override void ExtraSetup() - { - gameObject = new GameObject(); - identity = gameObject.AddComponent(); - identity.Server = server; - identity.ServerObjectManager = serverObjectManager; - - player1 = Substitute.For(); - player2 = Substitute.For(); - } - - [TearDown] - public override void ExtraTearDown() - { - // set isServer is false. otherwise Destroy instead of - // DestroyImmediate is called internally, giving an error in Editor - Object.DestroyImmediate(gameObject); - } - - - [Test] - public void AddAllReadyServerConnectionsToObservers() - { - player1.SceneIsReady.Returns(true); - player2.SceneIsReady.Returns(false); - - // add some server connections - server.Players.Add(player1); - server.Players.Add(player2); - - // add a host connection - server.AddLocalConnection(client, Substitute.For()); - server.InvokeLocalConnected(); - server.LocalPlayer.SceneIsReady = true; - - // call OnStartServer so that observers dict is created - identity.StartServer(); - - // add all to observers. should have the two ready connections then. - identity.AddAllReadyServerConnectionsToObservers(); - Assert.That(identity.observers, Is.EquivalentTo(new[] { player1, server.LocalPlayer, serverPlayer })); - - // clean up - server.Stop(); - } - - // RebuildObservers should always add the own ready connection - // (if any). fixes https://github.com/vis2k/Mirror/issues/692 - [Test] - public void RebuildObserversAddsOwnReadyPlayer() - { - // add at least one observers component, otherwise it will just add - // all server connections - gameObject.AddComponent(); - - // add own player connection - (NetworkPlayer serverPlayer, NetworkPlayer _) = PipedConnections(Substitute.For(), Substitute.For()); - serverPlayer.SceneIsReady = true; - identity.Owner = serverPlayer; - - // call OnStartServer so that observers dict is created - identity.StartServer(); - - // rebuild should at least add own ready player - identity.RebuildObservers(true); - Assert.That(identity.observers, Does.Contain(identity.Owner)); - } - } -} diff --git a/Assets/Tests/Runtime/NetworkMatchCheckerTest.cs b/Assets/Tests/Runtime/NetworkMatchCheckerTest.cs deleted file mode 100644 index 9f3b9ccc281..00000000000 --- a/Assets/Tests/Runtime/NetworkMatchCheckerTest.cs +++ /dev/null @@ -1,213 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using NSubstitute; -using NUnit.Framework; -using UnityEngine; -using Object = UnityEngine.Object; - -namespace Mirage.Tests.Runtime -{ - public class NetworkMatchCheckerTest - { - private GameObject serverGO; - private NetworkServer server; - private ServerObjectManager serverObjectManager; - private GameObject character1; - private GameObject character2; - private GameObject character3; - private NetworkMatchChecker player1MatchChecker; - private NetworkMatchChecker player2MatchChecker; - private NetworkPlayer player1Connection; - private NetworkPlayer player2Connection; - private NetworkPlayer player3Connection; - private Dictionary> matchPlayers; - - [SetUp] - public void Setup() - { - // todo use Substitute for interfaces instead of gameobjeccts for this test - - serverGO = new GameObject("Network Server", typeof(TestSocketFactory), typeof(NetworkServer), typeof(ServerObjectManager)); - - server = serverGO.GetComponent(); - serverObjectManager = serverGO.GetComponent(); - serverObjectManager.Server = server; - - character1 = new GameObject("TestCharacter1", typeof(NetworkIdentity), typeof(NetworkMatchChecker)); - character2 = new GameObject("TestCharacter2", typeof(NetworkIdentity), typeof(NetworkMatchChecker)); - character3 = new GameObject("TestCharacter3", typeof(NetworkIdentity)); - - - character1.GetComponent().Server = server; - character1.GetComponent().ServerObjectManager = serverObjectManager; - character2.GetComponent().Server = server; - character2.GetComponent().ServerObjectManager = serverObjectManager; - character3.GetComponent().Server = server; - character3.GetComponent().ServerObjectManager = serverObjectManager; - - player1MatchChecker = character1.GetComponent(); - player2MatchChecker = character2.GetComponent(); - - - player1Connection = CreatePlayer(character1); - player2Connection = CreatePlayer(character2); - player3Connection = CreatePlayer(character3); - Dictionary> g = GetMatchPlayersDictionary(); - matchPlayers = g; - } - - static Dictionary> GetMatchPlayersDictionary() - { - Type type = typeof(NetworkMatchChecker); - FieldInfo fieldInfo = type.GetField("matchPlayers", BindingFlags.Static | BindingFlags.NonPublic); - return (Dictionary>)fieldInfo.GetValue(null); - } - - static NetworkPlayer CreatePlayer(GameObject character) - { - var player = new NetworkPlayer(Substitute.For()) - { - Identity = character.GetComponent() - }; - player.Identity.Owner = player; - player.SceneIsReady = true; - return player; - } - - [TearDown] - public void TearDown() - { - Object.DestroyImmediate(character1); - Object.DestroyImmediate(character2); - Object.DestroyImmediate(character3); - - Object.DestroyImmediate(serverGO); - matchPlayers.Clear(); - matchPlayers = null; - } - - static void SetMatchId(NetworkMatchChecker target, Guid guid) - { - // set using reflection so bypass property - FieldInfo field = typeof(NetworkMatchChecker).GetField("currentMatch", BindingFlags.Instance | BindingFlags.NonPublic); - field.SetValue(target, guid); - } - - [Test] - public void OnCheckObserverShouldBeTrueForSameMatchId() - { - string guid = Guid.NewGuid().ToString(); - - SetMatchId(player1MatchChecker, new Guid(guid)); - SetMatchId(player2MatchChecker, new Guid(guid)); - - bool player1Visable = player1MatchChecker.OnCheckObserver(player1Connection); - Assert.IsTrue(player1Visable); - - bool player2Visable = player1MatchChecker.OnCheckObserver(player2Connection); - Assert.IsTrue(player2Visable); - } - - [Test] - public void OnCheckObserverShouldBeFalseForDifferentMatchId() - { - string guid1 = Guid.NewGuid().ToString(); - string guid2 = Guid.NewGuid().ToString(); - - SetMatchId(player1MatchChecker, new Guid(guid1)); - SetMatchId(player2MatchChecker, new Guid(guid2)); - - bool player1VisableToPlayer1 = player1MatchChecker.OnCheckObserver(player1Connection); - Assert.IsTrue(player1VisableToPlayer1); - - bool player2VisableToPlayer1 = player1MatchChecker.OnCheckObserver(player2Connection); - Assert.IsFalse(player2VisableToPlayer1); - - - bool player1VisableToPlayer2 = player2MatchChecker.OnCheckObserver(player1Connection); - Assert.IsFalse(player1VisableToPlayer2); - - bool player2VisableToPlayer2 = player2MatchChecker.OnCheckObserver(player2Connection); - Assert.IsTrue(player2VisableToPlayer2); - } - - [Test] - public void OnCheckObserverShouldBeFalseIfObjectDoesNotHaveNetworkMatchChecker() - { - string guid = Guid.NewGuid().ToString(); - - SetMatchId(player1MatchChecker, new Guid(guid)); - - bool player3Visable = player1MatchChecker.OnCheckObserver(player3Connection); - Assert.IsFalse(player3Visable); - } - - [Test] - public void OnCheckObserverShouldBeFalseForEmptyGuid() - { - string guid = Guid.Empty.ToString(); - - SetMatchId(player1MatchChecker, new Guid(guid)); - SetMatchId(player2MatchChecker, new Guid(guid)); - - bool player1Visable = player1MatchChecker.OnCheckObserver(player1Connection); - Assert.IsFalse(player1Visable); - - bool player2Visable = player1MatchChecker.OnCheckObserver(player2Connection); - Assert.IsFalse(player2Visable); - } - - [Test] - public void SettingMatchIdShouldRebuildObservers() - { - string guidMatch1 = Guid.NewGuid().ToString(); - - // make players join same match - player1MatchChecker.MatchId = new Guid(guidMatch1); - player2MatchChecker.MatchId = new Guid(guidMatch1); - - // check player1's observers contains player 2 - Assert.That(player1MatchChecker.Identity.observers, Contains.Item(player2MatchChecker.Owner)); - // check player2's observers contains player 1 - Assert.That(player2MatchChecker.Identity.observers, Contains.Item(player1MatchChecker.Owner)); - } - - [Test] - public void ChangingMatchIdShouldRebuildObservers() - { - string guidMatch1 = Guid.NewGuid().ToString(); - string guidMatch2 = Guid.NewGuid().ToString(); - - // make players join same match - player1MatchChecker.MatchId = new Guid(guidMatch1); - player2MatchChecker.MatchId = new Guid(guidMatch1); - - // make player2 join different match - player2MatchChecker.MatchId = new Guid(guidMatch2); - - // check player1's observers does NOT contain player 2 - Assert.That(player1MatchChecker.Identity.observers, !Contains.Item(player2MatchChecker.Owner)); - // check player2's observers does NOT contain player 1 - Assert.That(player2MatchChecker.Identity.observers, !Contains.Item(player1MatchChecker.Owner)); - } - - [Test] - public void ClearingMatchIdShouldRebuildObservers() - { - string guidMatch1 = Guid.NewGuid().ToString(); - - // make players join same match - player1MatchChecker.MatchId = new Guid(guidMatch1); - player2MatchChecker.MatchId = new Guid(guidMatch1); - - // make player 2 leave match - player2MatchChecker.MatchId = Guid.Empty; - - // check player1's observers does NOT contain player 2 - Assert.That(player1MatchChecker.Identity.observers, !Contains.Item(player2MatchChecker.Owner)); - // check player2's observers does NOT contain player 1 - Assert.That(player2MatchChecker.Identity.observers, !Contains.Item(player1MatchChecker.Owner)); - } - } -} diff --git a/Assets/Tests/Runtime/Scenes/TestPlayer.prefab b/Assets/Tests/Runtime/Scenes/TestPlayer.prefab index 77421a8c503..7ed9d5e2b43 100644 --- a/Assets/Tests/Runtime/Scenes/TestPlayer.prefab +++ b/Assets/Tests/Runtime/Scenes/TestPlayer.prefab @@ -27,6 +27,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -43,6 +44,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} m_Name: m_EditorClassIdentifier: - sceneId: 0 - serverOnly: 0 - m_AssetId: 5d01c4bf42a9b434dac396c2ba1aea10 + SpawnSettings: + SendPosition: 1 + SendRotation: 1 + SendScale: 1 + _sceneId: 0 + ServerObjectManager: {fileID: 0} + ClientObjectManager: {fileID: 0} + _prefabHash: 861834513 + _onStartServer: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStartLocalPlayer: + _event: + m_PersistentCalls: + m_Calls: [] + _onAuthorityChanged: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopClient: + _event: + m_PersistentCalls: + m_Calls: [] + _onStopServer: + _event: + m_PersistentCalls: + m_Calls: [] + hasSpawned: 0 diff --git a/Assets/Tests/Runtime/SyncVarTest.cs b/Assets/Tests/Runtime/SyncVarTest.cs index 4c4f0c8260c..ef04449e664 100644 --- a/Assets/Tests/Runtime/SyncVarTest.cs +++ b/Assets/Tests/Runtime/SyncVarTest.cs @@ -91,34 +91,6 @@ public void TestSyncIntervalAndClearDirtyComponents() Assert.That(player.IsDirty(), Is.True, "Sync interval met, should be dirty"); } - [Test] - public void TestSyncIntervalAndClearAllComponents() - { - var gameObject = new GameObject("Player", typeof(NetworkIdentity), typeof(MockPlayer)); - - MockPlayer player = gameObject.GetComponent(); - player.lastSyncTime = Time.time; - // synchronize immediately - player.syncInterval = 1f; - - player.guild = new MockPlayer.Guild - { - name = "Back street boys" - }; - - Assert.That(player.IsDirty(), Is.False, "Sync interval not met, so not dirty yet"); - - // ClearAllComponents should clear dirty even if syncInterval not - // elapsed yet - player.Identity.ClearAllComponentsDirtyBits(); - - // set lastSyncTime far enough back to be ready for syncing - player.lastSyncTime = Time.time - player.syncInterval; - - // should be dirty now - Assert.That(player.IsDirty(), Is.False, "Sync interval met, should still not be dirty"); - } - [Test] public void TestSynchronizingObjects() { diff --git a/doc/Articles/Guides/SceneLoading/Manual.md b/doc/Articles/Guides/SceneLoading/Manual.md index 790b928aa7a..fb184d41145 100644 --- a/doc/Articles/Guides/SceneLoading/Manual.md +++ b/doc/Articles/Guides/SceneLoading/Manual.md @@ -34,6 +34,6 @@ These messages are built in and used by NetworkSceneManager. If you are creating *after receiving `SceneReadyMessage`* 8) Mark the player as ready using: `player.SceneIsReady = true` -9) Call [ServerObjectManager.SpawnVisibleObjects](xref:Mirage.ServerObjectManager.SpawnVisibleObjects(Mirage.INetworkPlayer,System.Boolean)) or [ServerObjectManager.AddCharacter](xref:Mirage.ServerObjectManager.AddCharacter(Mirage.INetworkPlayer,Mirage.NetworkIdentity)) (Mirage will send spawn message to client) +9) Call [ServerObjectManager.AddCharacter](xref:Mirage.ServerObjectManager.AddCharacter(Mirage.INetworkPlayer,Mirage.NetworkIdentity)) (Mirage will send spawn message to client)