diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/README.md b/README.md index 8dc66ab..2de2750 100644 --- a/README.md +++ b/README.md @@ -57,3 +57,4 @@ and therefore avoids the larger performance spike of reshuffling/refilling the b - Efficient implementation: The underlying collection is not resized, instead, an index is used to perform the random selection. - Set a custom `RandomSource` for fine-grained control (e.g. to make the bag deterministic or set a seed). +- `Shuffle.FisherYates(IList list)` utility method to shuffle a list in-place. diff --git a/SharpShuffleBag.Unity/Assets/Editor/SampleDevelopment.cs b/SharpShuffleBag.Unity/Assets/Editor/SampleDevelopment.cs index b09fa7f..43e3215 100644 --- a/SharpShuffleBag.Unity/Assets/Editor/SampleDevelopment.cs +++ b/SharpShuffleBag.Unity/Assets/Editor/SampleDevelopment.cs @@ -24,7 +24,7 @@ public static void CopySamplesToPackage() { // Packages/com.xarbrough.sharp-shuffle-bag-unity/Samples~/Example1 // Packages/com.xarbrough.sharp-shuffle-bag-unity/Samples~/Example2 - string dest = "Packages/com.xarbrough.sharp-shuffle-bag-unity/Samples~/" + source.Name; + string dest = "Packages/com.chrisyarbrough.sharpshufflebag/Samples~/" + source.Name; CopyDirectory(source, dest); } } diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/CHANGELOG.md b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/CHANGELOG.md index b4e8df7..733dd1d 100644 --- a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/CHANGELOG.md +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this package will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## [1.0.0] - 2024-02-09 +## [1.0.1] - 2024-02-11 + +- Lower the minimum Unity version to 2021.3 +- Improve Unity sample + +## [1.0.0] - 2024-02-10 - Initial release diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/LICENSE.md b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/LICENSE.md new file mode 100644 index 0000000..0b12dff --- /dev/null +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Chris Yarbrough + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/LICENSE.md.meta b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/LICENSE.md.meta new file mode 100644 index 0000000..9e337f7 --- /dev/null +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9f8a174b2dcaa467c888f4d8ca586f42 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.cs b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.cs deleted file mode 100644 index a7b8cea..0000000 --- a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections; -using UnityEngine; - -namespace SharpShuffleBag.Unity.Samples -{ - internal sealed class Example : MonoBehaviour - { - [SerializeField] - private GameObject[] gameObjects; - - private ShuffleBag shuffleBag; - - private IEnumerator Start() - { - shuffleBag = new ShuffleBag(gameObjects); - foreach (GameObject go in gameObjects) - go.SetActive(false); - - while (Application.isPlaying) - { - GameObject go = shuffleBag.Next(); - go.SetActive(!go.activeSelf); - yield return new WaitForSeconds(0.5f); - } - } - } -} \ No newline at end of file diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.unity b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.unity index 7d7044d..6c73c06 100644 --- a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.unity +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.12731689, g: 0.13414702, b: 0.1210784, a: 1} + m_IndirectSpecularColor: {r: 0.37311924, g: 0.38073963, b: 0.3587269, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -123,89 +123,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &63143216 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 63143217} - - component: {fileID: 63143219} - - component: {fileID: 63143218} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &63143217 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 63143216} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &63143218 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 63143216} - 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: 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: 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 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &63143219 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 63143216} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &511708218 GameObject: m_ObjectHideFlags: 0 @@ -232,8 +149,8 @@ Camera: m_GameObject: {fileID: 511708218} m_Enabled: 1 serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.08458027, g: 0.03724635, b: 0.254717, a: 0} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -247,10 +164,10 @@ Camera: width: 1 height: 1 near clip plane: 0.3 - far clip plane: 1000 + far clip plane: 100 field of view: 60 - orthographic: 0 - orthographic size: 5 + orthographic: 1 + orthographic size: 6 m_Depth: -1 m_CullingMask: serializedVersion: 2 @@ -263,7 +180,7 @@ Camera: m_AllowMSAA: 1 m_AllowDynamicResolution: 0 m_ForceIntoRT: 0 - m_OcclusionCulling: 1 + m_OcclusionCulling: 0 m_StereoConvergence: 10 m_StereoSeparation: 0.022 --- !u!4 &511708221 @@ -281,7 +198,7 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &968927932 +--- !u!1 &622783605 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -289,52 +206,60 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 968927933} - - component: {fileID: 968927935} - - component: {fileID: 968927934} + - component: {fileID: 622783608} + - component: {fileID: 622783607} + - component: {fileID: 622783606} + - component: {fileID: 622783609} m_Layer: 0 - m_Name: Sphere + m_Name: TextTemplate m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &968927933 -Transform: +--- !u!102 &622783606 +TextMesh: + serializedVersion: 3 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 968927932} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &968927934 + m_GameObject: {fileID: 622783605} + m_Text: sfx- + m_OffsetZ: 0 + m_CharacterSize: 0.08 + m_LineSpacing: 1 + m_Anchor: 4 + m_Alignment: 1 + m_TabSize: 4 + m_FontSize: 100 + m_FontStyle: 1 + m_RichText: 0 + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_Color: + serializedVersion: 2 + rgba: 4281443583 +--- !u!23 &622783607 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 968927932} + m_GameObject: {fileID: 622783605} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 m_RayTracingMode: 2 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -356,14 +281,35 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &968927935 -MeshFilter: +--- !u!4 &622783608 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 622783605} + 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 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &622783609 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 968927932} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + m_GameObject: {fileID: 622783605} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 156827f66392440d9bc88c5ef25b5478, type: 3} + m_Name: + m_EditorClassIdentifier: + text: {fileID: 622783606} + duration: 2 --- !u!1 &1525657045 GameObject: m_ObjectHideFlags: 0 @@ -376,7 +322,7 @@ GameObject: - component: {fileID: 1525657047} - component: {fileID: 1525657046} m_Layer: 0 - m_Name: Test + m_Name: Description m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -390,17 +336,19 @@ TextMesh: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1525657045} - m_Text: "Every step, a random sphere is toggled.\nThe ShuffleBag ensure that each - sphere in the group \nis toggled before the first one is picked again." + m_Text: 'When playing random sound variants, the shuffle bag ensures + + that + we never hear the same sound twice in a row.' m_OffsetZ: 0 m_CharacterSize: 0.04 m_LineSpacing: 1 - m_Anchor: 0 - m_Alignment: 0 + m_Anchor: 1 + m_Alignment: 1 m_TabSize: 4 m_FontSize: 120 m_FontStyle: 0 - m_RichText: 1 + m_RichText: 0 m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Color: serializedVersion: 2 @@ -413,13 +361,13 @@ MeshRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1525657045} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 + m_MotionVectors: 2 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 m_RayTracingMode: 2 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 @@ -454,13 +402,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1525657045} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -5.13, y: -1.43, z: -0.032129582} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 6, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698932455 GameObject: @@ -492,7 +440,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1698932457 MonoBehaviour: @@ -506,258 +454,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1b866ed4701214de082eca0ce664a2ea, type: 3} m_Name: m_EditorClassIdentifier: - gameObjects: - - {fileID: 1972007828} - - {fileID: 968927932} - - {fileID: 1959564091} - - {fileID: 63143216} - - {fileID: 1816401992} ---- !u!1 &1816401992 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1816401993} - - component: {fileID: 1816401995} - - component: {fileID: 1816401994} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1816401993 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1816401992} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 2, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1816401994 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1816401992} - 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: 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: 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 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1816401995 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1816401992} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1959564091 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1959564092} - - component: {fileID: 1959564094} - - component: {fileID: 1959564093} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1959564092 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1959564091} - 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: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1959564093 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1959564091} - 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: 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: 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 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1959564094 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1959564091} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1972007828 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1972007829} - - component: {fileID: 1972007831} - - component: {fileID: 1972007830} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1972007829 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1972007828} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -2, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1972007830 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1972007828} - 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: 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: 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 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1972007831 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1972007828} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + template: {fileID: 622783609} + count: 7 + ellipseWidth: 5 + ellipseHeight: 3 + spawnInterval: 0.5 diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/FadingTextMesh.cs b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/FadingTextMesh.cs new file mode 100644 index 0000000..d0ba268 --- /dev/null +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/FadingTextMesh.cs @@ -0,0 +1,47 @@ +namespace SharpShuffleBag.Unity.Samples +{ + using System.Collections; + using UnityEngine; + + internal sealed class FadingTextMesh : MonoBehaviour + { + public string Text + { + get => text.text; + set => text.text = value; + } + + [SerializeField] + private TextMesh text; + + [SerializeField] + private float duration = 1f; + + private Color originalColor; + + private void Awake() + { + originalColor = text.color; + text.color = new Color(originalColor.r, originalColor.g, originalColor.b, 0); + } + + public void StartFade() + { + text.color = originalColor; + StartCoroutine(DoFade()); + } + + private IEnumerator DoFade() + { + Color color = originalColor; + + for (float t = 0f; t < duration; t += Time.deltaTime) + { + text.color = new Color(color.r, color.g, color.b, 1f - t / duration); + yield return null; + } + + text.color = new Color(color.r, color.g, color.b, 0); + } + } +} \ No newline at end of file diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/FadingTextMesh.cs.meta b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/FadingTextMesh.cs.meta new file mode 100644 index 0000000..a771ade --- /dev/null +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/FadingTextMesh.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 156827f66392440d9bc88c5ef25b5478 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/RandomSpawner.cs b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/RandomSpawner.cs new file mode 100644 index 0000000..22e3cd4 --- /dev/null +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/RandomSpawner.cs @@ -0,0 +1,60 @@ +namespace SharpShuffleBag.Unity.Samples +{ + using System.Collections; + using System.Collections.Generic; + using UnityEngine; + + internal sealed class RandomSpawner : MonoBehaviour + { + [SerializeField] + private FadingTextMesh template; + + [SerializeField] + private int count = 12; + + [SerializeField] + private float ellipseWidth = 2f; + + [SerializeField] + private float ellipseHeight = 2f; + + [SerializeField] + private float spawnInterval = 0.5f; + + private ShuffleBag shuffleBag; + + private IEnumerator Start() + { + Application.targetFrameRate = 60; + + shuffleBag = new ShuffleBag(SpawnTexts()); + + while (Application.isPlaying) + { + yield return new WaitForSeconds(spawnInterval); + FadingTextMesh text = shuffleBag.Next(); + text.StartFade(); + } + } + + private IEnumerable SpawnTexts() + { + for (int i = 0; i < count; i++) + { + float angle = i * (Mathf.PI * 2) / count; + Vector3 position = new Vector3( + Mathf.Cos(angle) * ellipseWidth, + Mathf.Sin(angle) * ellipseHeight, + 0); + + FadingTextMesh instance = Instantiate(template, position, Quaternion.identity); + instance.Text += i.ToString(); + instance.gameObject.name = "Text-" + i; + + yield return instance; + } + + template.gameObject.SetActive(false); + } + } +} \ No newline at end of file diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.cs.meta b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/RandomSpawner.cs.meta similarity index 100% rename from SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/Example.cs.meta rename to SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/Samples~/Example/RandomSpawner.cs.meta diff --git a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/package.json b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/package.json index c7895f9..9e69228 100644 --- a/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/package.json +++ b/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/package.json @@ -1,13 +1,15 @@ { "name": "com.chrisyarbrough.sharpshufflebag", "displayName": "Sharp Shuffle Bag", - "version": "1.0.0", - "unity": "2022.1", + "version": "1.0.1", + "unity": "2021.3", "description": "An efficient and convenient shuffle bag implementation.", "author": { "name": "Chris Yarbrough", "url": "https://github.com/chrisyarbrough" }, + "changelogUrl": "https://github.com/chrisyarbrough/SharpShuffleBag/blob/main/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag/CHANGELOG.md", + "license": "MIT", "samples": [ { "displayName": "Example", diff --git a/SharpShuffleBag.Unity/ProjectSettings/GraphicsSettings.asset b/SharpShuffleBag.Unity/ProjectSettings/GraphicsSettings.asset index 5d24cbc..2e2aeeb 100644 --- a/SharpShuffleBag.Unity/ProjectSettings/GraphicsSettings.asset +++ b/SharpShuffleBag.Unity/ProjectSettings/GraphicsSettings.asset @@ -5,38 +5,31 @@ GraphicsSettings: m_ObjectHideFlags: 0 serializedVersion: 14 m_Deferred: - m_Mode: 1 - m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_DeferredReflections: - m_Mode: 1 - m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_ScreenSpaceShadows: - m_Mode: 1 - m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_LegacyDeferred: - m_Mode: 1 - m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_DepthNormals: - m_Mode: 1 - m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_MotionVectors: - m_Mode: 1 - m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_LightHalo: - m_Mode: 1 - m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} m_LensFlare: - m_Mode: 1 - m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} - m_VideoShadersIncludeMode: 2 - m_AlwaysIncludedShaders: - - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_Mode: 0 + m_Shader: {fileID: 0} + m_VideoShadersIncludeMode: 0 + m_AlwaysIncludedShaders: [] m_PreloadedShaders: [] m_PreloadShadersBatchTimeLimit: -1 m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} @@ -49,7 +42,6 @@ GraphicsSettings: m_LightmapStripping: 0 m_FogStripping: 0 m_InstancingStripping: 0 - m_BrgStripping: 0 m_LightmapKeepPlain: 1 m_LightmapKeepDirCombined: 1 m_LightmapKeepDynamicPlain: 1 @@ -65,3 +57,5 @@ GraphicsSettings: m_DefaultRenderingLayerMask: 1 m_LogWhenShaderIsCompiled: 0 m_SRPDefaultSettings: {} + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/SharpShuffleBag.Unity/ProjectSettings/ProjectSettings.asset b/SharpShuffleBag.Unity/ProjectSettings/ProjectSettings.asset index 7210ccb..e9596a0 100644 --- a/SharpShuffleBag.Unity/ProjectSettings/ProjectSettings.asset +++ b/SharpShuffleBag.Unity/ProjectSettings/ProjectSettings.asset @@ -48,7 +48,7 @@ PlayerSettings: defaultScreenHeightWeb: 600 m_StereoRenderingPath: 0 m_ActiveColorSpace: 0 - m_SpriteBatchVertexThreshold: 300 + unsupportedMSAAFallback: 0 m_MTRendering: 1 mipStripping: 0 numberOfMipsStripped: 0 @@ -56,6 +56,7 @@ PlayerSettings: iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 allowedAutorotateToPortrait: 1 allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToLandscapeRight: 1 @@ -74,6 +75,7 @@ PlayerSettings: androidMinimumWindowWidth: 400 androidMinimumWindowHeight: 300 androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 defaultIsNativeResolution: 1 macRetinaSupport: 1 runInBackground: 0 @@ -119,11 +121,9 @@ PlayerSettings: switchNVNShaderPoolsGranularity: 33554432 switchNVNDefaultPoolsGranularity: 16777216 switchNVNOtherPoolsGranularity: 16777216 - switchGpuScratchPoolGranularity: 2097152 - switchAllowGpuScratchShrinking: 0 switchNVNMaxPublicTextureIDCount: 0 switchNVNMaxPublicSamplerIDCount: 0 - switchNVNGraphicsFirmwareMemory: 32 + switchMaxWorkerMultiple: 8 stadiaPresentMode: 0 stadiaTargetFramerate: 0 vulkanNumSwapchainBuffers: 3 @@ -148,16 +148,21 @@ PlayerSettings: enable360StereoCapture: 0 isWsaHolographicRemotingEnabled: 0 enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 useHDRDisplay: 0 D3DHDRBitDepth: 0 m_ColorGamuts: 00000000 - targetPixelDensity: 0 + targetPixelDensity: 30 resolutionScalingMode: 0 resetResolutionOnWindowResize: 0 androidSupportedAspectRatio: 1 androidMaxAspectRatio: 2.1 - applicationIdentifier: {} - buildNumber: {} + applicationIdentifier: + Standalone: com.DefaultCompany.SharpShuffleBag.Unity + buildNumber: + Standalone: 0 + iPhone: 0 + tvOS: 0 overrideDefaultApplicationIdentifier: 0 AndroidBundleVersionCode: 1 AndroidMinSdkVersion: 22 @@ -173,13 +178,12 @@ PlayerSettings: APKExpansionFiles: 0 keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 0 - strictShaderVariantMatching: 0 VertexChannelCompressionMask: 4054 iPhoneSdkVersion: 988 - iOSTargetOSVersionString: + iOSTargetOSVersionString: 12.0 tvOSSdkVersion: 0 tvOSRequireExtendedGameController: 0 - tvOSTargetOSVersionString: + tvOSTargetOSVersionString: 12.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 @@ -287,7 +291,6 @@ PlayerSettings: iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] - m_BuildTargetGroupHDRCubemapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] m_BuildTargetNormalMapEncoding: [] m_BuildTargetDefaultTextureCompressionFormat: [] @@ -301,7 +304,6 @@ PlayerSettings: locationUsageDescription: microphoneUsageDescription: bluetoothUsageDescription: - macOSTargetOSVersion: switchNMETAOverride: switchNetLibKey: switchSocketMemoryPoolSize: 6144 @@ -309,11 +311,10 @@ PlayerSettings: switchSocketConcurrencyLimit: 14 switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 - switchUseGOLDLinker: 0 + switchEnableFileSystemTrace: 0 switchLTOSetting: 0 switchApplicationID: 0x01004b9000490000 switchNSODependencies: - switchCompilerFlags: switchTitleNames_0: switchTitleNames_1: switchTitleNames_2: @@ -387,7 +388,6 @@ PlayerSettings: switchReleaseVersion: 0 switchDisplayVersion: 1.0.0 switchStartupUserAccount: 0 - switchTouchScreenUsage: 0 switchSupportedLanguagesMask: 0 switchLogoType: 0 switchApplicationErrorCodeCategory: @@ -429,6 +429,7 @@ PlayerSettings: switchNativeFsCacheSize: 32 switchIsHoldTypeHorizontal: 0 switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 switchSocketConfigEnabled: 0 switchTcpInitialSendBufferSize: 32 switchTcpInitialReceiveBufferSize: 64 @@ -439,7 +440,6 @@ PlayerSettings: switchSocketBufferEfficiency: 4 switchSocketInitializeEnabled: 1 switchNetworkInterfaceManagerInitializeEnabled: 1 - switchPlayerConnectionEnabled: 1 switchUseNewStyleFilepaths: 1 switchUseLegacyFmodPriorities: 0 switchUseMicroSleepForYield: 1 @@ -541,26 +541,18 @@ PlayerSettings: webGLLinkerTarget: 1 webGLThreadsSupport: 0 webGLDecompressionFallback: 0 - webGLInitialMemorySize: 32 - webGLMaximumMemorySize: 2048 - webGLMemoryGrowthMode: 2 - webGLMemoryLinearGrowthStep: 16 - webGLMemoryGeometricGrowthStep: 0.2 - webGLMemoryGeometricGrowthCap: 96 webGLPowerPreference: 2 scriptingDefineSymbols: {} additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: {} il2cppCompilerConfiguration: {} - il2cppCodeGeneration: {} managedStrippingLevel: {} incrementalIl2cppBuild: {} suppressCommonWarnings: 1 allowUnsafeCode: 0 useDeterministicCompilation: 1 enableRoslynAnalyzers: 1 - selectedPlatform: 0 additionalIl2CppArgs: scriptingRuntimeVersion: 1 gcIncremental: 1 @@ -638,6 +630,7 @@ PlayerSettings: m_VersionName: apiCompatibilityLevel: 6 activeInputHandler: 0 + windowsGamepadBackendHint: 0 cloudProjectId: framebufferDepthMemorylessMode: 0 qualitySettingsNames: [] @@ -648,4 +641,3 @@ PlayerSettings: playerDataPath: forceSRGBBlit: 1 virtualTexturingSupportEnabled: 0 - insecureHttpOption: 0 diff --git a/SharpShuffleBag.Unity/ProjectSettings/ProjectVersion.txt b/SharpShuffleBag.Unity/ProjectSettings/ProjectVersion.txt index 0933b86..39a629e 100644 --- a/SharpShuffleBag.Unity/ProjectSettings/ProjectVersion.txt +++ b/SharpShuffleBag.Unity/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2022.1.21f1 -m_EditorVersionWithRevision: 2022.1.21f1 (9ac1ff5ca45b) +m_EditorVersion: 2021.3.35f1 +m_EditorVersionWithRevision: 2021.3.35f1 (157b46ce122a) diff --git a/SharpShuffleBag.Unity/ProjectSettings/QualitySettings.asset b/SharpShuffleBag.Unity/ProjectSettings/QualitySettings.asset index bfa843f..5d5a01b 100644 --- a/SharpShuffleBag.Unity/ProjectSettings/QualitySettings.asset +++ b/SharpShuffleBag.Unity/ProjectSettings/QualitySettings.asset @@ -4,190 +4,10 @@ QualitySettings: m_ObjectHideFlags: 0 serializedVersion: 5 - m_CurrentQuality: 5 + m_CurrentQuality: 0 m_QualitySettings: - serializedVersion: 2 - name: Very Low - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 15 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 0 - skinWeights: 1 - textureQuality: 1 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - realtimeReflectionProbes: 0 - billboardsFaceCameraPosition: 0 - vSyncCount: 0 - lodBias: 0.3 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 4 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - customRenderPipeline: {fileID: 0} - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Low - pixelLightCount: 0 - shadows: 0 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 0 - skinWeights: 2 - textureQuality: 0 - anisotropicTextures: 0 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - realtimeReflectionProbes: 0 - billboardsFaceCameraPosition: 0 - vSyncCount: 0 - lodBias: 0.4 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 16 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - customRenderPipeline: {fileID: 0} - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Medium - pixelLightCount: 1 - shadows: 1 - shadowResolution: 0 - shadowProjection: 1 - shadowCascades: 1 - shadowDistance: 20 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 0 - skinWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 0 - realtimeReflectionProbes: 0 - billboardsFaceCameraPosition: 0 - vSyncCount: 1 - lodBias: 0.7 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 64 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - customRenderPipeline: {fileID: 0} - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: High - pixelLightCount: 2 - shadows: 2 - shadowResolution: 1 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 40 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 1 - skinWeights: 2 - textureQuality: 0 - anisotropicTextures: 1 - antiAliasing: 0 - softParticles: 0 - softVegetation: 1 - realtimeReflectionProbes: 1 - billboardsFaceCameraPosition: 1 - vSyncCount: 1 - lodBias: 1 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 256 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - customRenderPipeline: {fileID: 0} - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Very High - pixelLightCount: 3 - shadows: 2 - shadowResolution: 2 - shadowProjection: 1 - shadowCascades: 2 - shadowDistance: 70 - shadowNearPlaneOffset: 3 - shadowCascade2Split: 0.33333334 - shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} - shadowmaskMode: 1 - skinWeights: 4 - textureQuality: 0 - anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 - softVegetation: 1 - realtimeReflectionProbes: 1 - billboardsFaceCameraPosition: 1 - vSyncCount: 1 - lodBias: 1.5 - maximumLODLevel: 0 - streamingMipmapsActive: 0 - streamingMipmapsAddAllCameras: 1 - streamingMipmapsMemoryBudget: 512 - streamingMipmapsRenderersPerFrame: 512 - streamingMipmapsMaxLevelReduction: 2 - streamingMipmapsMaxFileIORequests: 1024 - particleRaycastBudget: 1024 - asyncUploadTimeSlice: 2 - asyncUploadBufferSize: 16 - asyncUploadPersistentBuffer: 1 - resolutionScalingFixedDPIFactor: 1 - customRenderPipeline: {fileID: 0} - excludedTargetPlatforms: [] - - serializedVersion: 2 - name: Ultra + name: Default pixelLightCount: 4 shadows: 2 shadowResolution: 2 @@ -201,12 +21,13 @@ QualitySettings: skinWeights: 255 textureQuality: 0 anisotropicTextures: 2 - antiAliasing: 2 - softParticles: 1 + antiAliasing: 8 + softParticles: 0 softVegetation: 1 - realtimeReflectionProbes: 1 - billboardsFaceCameraPosition: 1 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 vSyncCount: 1 + realtimeGICPUUsage: 100 lodBias: 2 maximumLODLevel: 0 streamingMipmapsActive: 0 @@ -223,21 +44,21 @@ QualitySettings: customRenderPipeline: {fileID: 0} excludedTargetPlatforms: [] m_PerPlatformDefaultQuality: - Android: 2 - EmbeddedLinux: 5 - GameCoreScarlett: 5 - GameCoreXboxOne: 5 - LinuxHeadlessSimulation: 5 - Lumin: 5 - Nintendo Switch: 5 - PS4: 5 - PS5: 5 - QNX: 5 - Server: 5 - Stadia: 5 - Standalone: 5 - WebGL: 3 - Windows Store Apps: 5 - XboxOne: 5 - iPhone: 2 - tvOS: 2 + Android: 0 + EmbeddedLinux: 0 + GameCoreScarlett: 0 + GameCoreXboxOne: 0 + LinuxHeadlessSimulation: 0 + Lumin: 0 + Nintendo Switch: 0 + PS4: 0 + PS5: 0 + QNX: 0 + Server: 0 + Stadia: 0 + Standalone: 0 + WebGL: 0 + Windows Store Apps: 0 + XboxOne: 0 + iPhone: 0 + tvOS: 0 diff --git a/SharpShuffleBag.Unity/ProjectSettings/SceneTemplateSettings.json b/SharpShuffleBag.Unity/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..5e97f83 --- /dev/null +++ b/SharpShuffleBag.Unity/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/SharpShuffleBag.Unity/ProjectSettings/boot.config b/SharpShuffleBag.Unity/ProjectSettings/boot.config new file mode 100644 index 0000000..e69de29 diff --git a/SharpShuffleBag/SharpShuffleBag.csproj b/SharpShuffleBag/SharpShuffleBag.csproj index cf6fba3..cfe9029 100644 --- a/SharpShuffleBag/SharpShuffleBag.csproj +++ b/SharpShuffleBag/SharpShuffleBag.csproj @@ -5,7 +5,7 @@ true SharpShuffleBag - 1.0.0 + 1.0.1 shuffle bag random Chris Yarbrough A simple and efficient shuffle bag implementation for .NET. @@ -21,14 +21,15 @@ - + - $(SolutionDir)/SharpShuffleBag.Unity/Packages/com.xarbrough.sharp-shuffle-bag-unity + $(SolutionDir)/SharpShuffleBag.Unity/Packages/com.chrisyarbrough.sharpshufflebag +