├── .gitignore ├── Assets ├── RuntimeSpriteSheetsGenerator.meta └── RuntimeSpriteSheetsGenerator │ ├── Demos.meta │ ├── Demos │ ├── Scenes.meta │ ├── Scenes │ │ ├── AssetPacker.unity │ │ ├── AssetPacker.unity.meta │ │ ├── RectanglePacking.unity │ │ └── RectanglePacking.unity.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── AssetPackerExample.cs │ │ ├── AssetPackerExample.cs.meta │ │ ├── RectanglePackingExample.cs │ │ └── RectanglePackingExample.cs.meta │ ├── Sprites.meta │ └── Sprites │ │ ├── Textures.meta │ │ └── Textures │ │ ├── walking0001.png │ │ ├── walking0001.png.meta │ │ ├── walking0002.png │ │ ├── walking0002.png.meta │ │ ├── walking0003.png │ │ ├── walking0003.png.meta │ │ ├── walking0004.png │ │ ├── walking0004.png.meta │ │ ├── walking0005.png │ │ ├── walking0005.png.meta │ │ ├── walking0006.png │ │ ├── walking0006.png.meta │ │ ├── walking0007.png │ │ ├── walking0007.png.meta │ │ ├── walking0008.png │ │ ├── walking0008.png.meta │ │ ├── walking0009.png │ │ ├── walking0009.png.meta │ │ ├── walking0010.png │ │ ├── walking0010.png.meta │ │ ├── walking0011.png │ │ └── walking0011.png.meta │ ├── Scripts.meta │ └── Scripts │ ├── AssetPacker.meta │ ├── AssetPacker │ ├── AssetPacker.cs │ ├── AssetPacker.cs.meta │ ├── TextureAsset.cs │ ├── TextureAsset.cs.meta │ ├── TextureToPack.cs │ └── TextureToPack.cs.meta │ ├── RectanglePacking.meta │ └── RectanglePacking │ ├── IntegerRectangle.cs │ ├── IntegerRectangle.cs.meta │ ├── RectanglePacker.cs │ ├── RectanglePacker.cs.meta │ ├── SortableSize.cs │ └── SortableSize.cs.meta ├── LICENSE.txt ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset └── README.MD /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | 8 | # Autogenerated VS/MD solution and project files 9 | ExportedObj/ 10 | *.csproj 11 | *.unityproj 12 | *.sln 13 | *.suo 14 | *.tmp 15 | *.user 16 | *.userprefs 17 | *.pidb 18 | *.booproj 19 | *.svd 20 | 21 | 22 | # Unity3D generated meta files 23 | *.pidb.meta 24 | 25 | # Unity3D Generated File On Crash Reports 26 | sysinfo.txt 27 | 28 | # Builds 29 | *.apk 30 | Assets/ConsolePro 31 | ConsolePro.meta 32 | Assets/link.* 33 | Assets/Opencoding 34 | Opencoding.meta 35 | Assets/Plugins 36 | Plugins.meta -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84626bbb22a8a43038b089019a1d9cc0 3 | folderAsset: yes 4 | timeCreated: 1484055967 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0521a484c13a4ecb93356779355c10f 3 | folderAsset: yes 4 | timeCreated: 1484055988 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48b6efde8214641dcb7ff6aaa8b05bdd 3 | folderAsset: yes 4 | timeCreated: 1484055927 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes/AssetPacker.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 7 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SkyboxMaterial: {fileID: 0} 29 | m_HaloStrength: 0.5 30 | m_FlareStrength: 1 31 | m_FlareFadeSpeed: 3 32 | m_HaloTexture: {fileID: 0} 33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 34 | m_DefaultReflectionMode: 0 35 | m_DefaultReflectionResolution: 128 36 | m_ReflectionBounces: 1 37 | m_ReflectionIntensity: 1 38 | m_CustomReflection: {fileID: 0} 39 | m_Sun: {fileID: 0} 40 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 41 | --- !u!157 &3 42 | LightmapSettings: 43 | m_ObjectHideFlags: 0 44 | serializedVersion: 7 45 | m_GIWorkflowMode: 1 46 | m_GISettings: 47 | serializedVersion: 2 48 | m_BounceScale: 1 49 | m_IndirectOutputScale: 1 50 | m_AlbedoBoost: 1 51 | m_TemporalCoherenceThreshold: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 0 54 | m_EnableRealtimeLightmaps: 0 55 | m_LightmapEditorSettings: 56 | serializedVersion: 4 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_TextureWidth: 1024 60 | m_TextureHeight: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_DirectLightInLightProbes: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_LightingDataAsset: {fileID: 0} 75 | m_RuntimeCPUUsage: 25 76 | --- !u!196 &4 77 | NavMeshSettings: 78 | serializedVersion: 2 79 | m_ObjectHideFlags: 0 80 | m_BuildSettings: 81 | serializedVersion: 2 82 | agentTypeID: 0 83 | agentRadius: 0.5 84 | agentHeight: 2 85 | agentSlope: 45 86 | agentClimb: 0.4 87 | ledgeDropHeight: 0 88 | maxJumpAcrossDistance: 0 89 | minRegionArea: 2 90 | manualCellSize: 0 91 | cellSize: 0.16666667 92 | accuratePlacement: 0 93 | m_NavMeshData: {fileID: 0} 94 | --- !u!1 &5134707 95 | GameObject: 96 | m_ObjectHideFlags: 0 97 | m_PrefabParentObject: {fileID: 0} 98 | m_PrefabInternal: {fileID: 0} 99 | serializedVersion: 5 100 | m_Component: 101 | - component: {fileID: 5134712} 102 | - component: {fileID: 5134711} 103 | - component: {fileID: 5134710} 104 | - component: {fileID: 5134709} 105 | - component: {fileID: 5134708} 106 | m_Layer: 0 107 | m_Name: Main Camera 108 | m_TagString: MainCamera 109 | m_Icon: {fileID: 0} 110 | m_NavMeshLayer: 0 111 | m_StaticEditorFlags: 0 112 | m_IsActive: 1 113 | --- !u!81 &5134708 114 | AudioListener: 115 | m_ObjectHideFlags: 0 116 | m_PrefabParentObject: {fileID: 0} 117 | m_PrefabInternal: {fileID: 0} 118 | m_GameObject: {fileID: 5134707} 119 | m_Enabled: 1 120 | --- !u!124 &5134709 121 | Behaviour: 122 | m_ObjectHideFlags: 0 123 | m_PrefabParentObject: {fileID: 0} 124 | m_PrefabInternal: {fileID: 0} 125 | m_GameObject: {fileID: 5134707} 126 | m_Enabled: 1 127 | --- !u!92 &5134710 128 | Behaviour: 129 | m_ObjectHideFlags: 0 130 | m_PrefabParentObject: {fileID: 0} 131 | m_PrefabInternal: {fileID: 0} 132 | m_GameObject: {fileID: 5134707} 133 | m_Enabled: 1 134 | --- !u!20 &5134711 135 | Camera: 136 | m_ObjectHideFlags: 0 137 | m_PrefabParentObject: {fileID: 0} 138 | m_PrefabInternal: {fileID: 0} 139 | m_GameObject: {fileID: 5134707} 140 | m_Enabled: 1 141 | serializedVersion: 2 142 | m_ClearFlags: 1 143 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 144 | m_NormalizedViewPortRect: 145 | serializedVersion: 2 146 | x: 0 147 | y: 0 148 | width: 1 149 | height: 1 150 | near clip plane: 0.3 151 | far clip plane: 1000 152 | field of view: 60 153 | orthographic: 1 154 | orthographic size: 5 155 | m_Depth: -1 156 | m_CullingMask: 157 | serializedVersion: 2 158 | m_Bits: 4294967295 159 | m_RenderingPath: -1 160 | m_TargetTexture: {fileID: 0} 161 | m_TargetDisplay: 0 162 | m_TargetEye: 3 163 | m_HDR: 0 164 | m_OcclusionCulling: 1 165 | m_StereoConvergence: 10 166 | m_StereoSeparation: 0.022 167 | m_StereoMirrorMode: 0 168 | --- !u!4 &5134712 169 | Transform: 170 | m_ObjectHideFlags: 0 171 | m_PrefabParentObject: {fileID: 0} 172 | m_PrefabInternal: {fileID: 0} 173 | m_GameObject: {fileID: 5134707} 174 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 175 | m_LocalPosition: {x: 0, y: 0, z: -10} 176 | m_LocalScale: {x: 1, y: 1, z: 1} 177 | m_Children: [] 178 | m_Father: {fileID: 0} 179 | m_RootOrder: 0 180 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 181 | --- !u!1 &506600171 182 | GameObject: 183 | m_ObjectHideFlags: 0 184 | m_PrefabParentObject: {fileID: 0} 185 | m_PrefabInternal: {fileID: 0} 186 | serializedVersion: 5 187 | m_Component: 188 | - component: {fileID: 506600172} 189 | - component: {fileID: 506600174} 190 | - component: {fileID: 506600173} 191 | m_Layer: 5 192 | m_Name: Animation 193 | m_TagString: Untagged 194 | m_Icon: {fileID: 0} 195 | m_NavMeshLayer: 0 196 | m_StaticEditorFlags: 0 197 | m_IsActive: 1 198 | --- !u!224 &506600172 199 | RectTransform: 200 | m_ObjectHideFlags: 0 201 | m_PrefabParentObject: {fileID: 0} 202 | m_PrefabInternal: {fileID: 0} 203 | m_GameObject: {fileID: 506600171} 204 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 205 | m_LocalPosition: {x: 0, y: 0, z: 0} 206 | m_LocalScale: {x: 1, y: 1, z: 1} 207 | m_Children: [] 208 | m_Father: {fileID: 1025881487} 209 | m_RootOrder: 0 210 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 211 | m_AnchorMin: {x: 0.5, y: 0.5} 212 | m_AnchorMax: {x: 0.5, y: 0.5} 213 | m_AnchoredPosition: {x: 0, y: 0} 214 | m_SizeDelta: {x: 286, y: 387} 215 | m_Pivot: {x: 0.5, y: 0.5} 216 | --- !u!114 &506600173 217 | MonoBehaviour: 218 | m_ObjectHideFlags: 0 219 | m_PrefabParentObject: {fileID: 0} 220 | m_PrefabInternal: {fileID: 0} 221 | m_GameObject: {fileID: 506600171} 222 | m_Enabled: 1 223 | m_EditorHideFlags: 0 224 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 225 | m_Name: 226 | m_EditorClassIdentifier: 227 | m_Material: {fileID: 0} 228 | m_Color: {r: 1, g: 1, b: 1, a: 1} 229 | m_RaycastTarget: 1 230 | m_OnCullStateChanged: 231 | m_PersistentCalls: 232 | m_Calls: [] 233 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 234 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 235 | m_Sprite: {fileID: 0} 236 | m_Type: 0 237 | m_PreserveAspect: 1 238 | m_FillCenter: 1 239 | m_FillMethod: 4 240 | m_FillAmount: 1 241 | m_FillClockwise: 1 242 | m_FillOrigin: 0 243 | --- !u!222 &506600174 244 | CanvasRenderer: 245 | m_ObjectHideFlags: 0 246 | m_PrefabParentObject: {fileID: 0} 247 | m_PrefabInternal: {fileID: 0} 248 | m_GameObject: {fileID: 506600171} 249 | --- !u!1 &1025881483 250 | GameObject: 251 | m_ObjectHideFlags: 0 252 | m_PrefabParentObject: {fileID: 0} 253 | m_PrefabInternal: {fileID: 0} 254 | serializedVersion: 5 255 | m_Component: 256 | - component: {fileID: 1025881487} 257 | - component: {fileID: 1025881486} 258 | - component: {fileID: 1025881485} 259 | - component: {fileID: 1025881484} 260 | m_Layer: 5 261 | m_Name: Canvas 262 | m_TagString: Untagged 263 | m_Icon: {fileID: 0} 264 | m_NavMeshLayer: 0 265 | m_StaticEditorFlags: 0 266 | m_IsActive: 1 267 | --- !u!114 &1025881484 268 | MonoBehaviour: 269 | m_ObjectHideFlags: 0 270 | m_PrefabParentObject: {fileID: 0} 271 | m_PrefabInternal: {fileID: 0} 272 | m_GameObject: {fileID: 1025881483} 273 | m_Enabled: 1 274 | m_EditorHideFlags: 0 275 | m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} 276 | m_Name: 277 | m_EditorClassIdentifier: 278 | m_IgnoreReversedGraphics: 1 279 | m_BlockingObjects: 0 280 | m_BlockingMask: 281 | serializedVersion: 2 282 | m_Bits: 4294967295 283 | --- !u!114 &1025881485 284 | MonoBehaviour: 285 | m_ObjectHideFlags: 0 286 | m_PrefabParentObject: {fileID: 0} 287 | m_PrefabInternal: {fileID: 0} 288 | m_GameObject: {fileID: 1025881483} 289 | m_Enabled: 1 290 | m_EditorHideFlags: 0 291 | m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} 292 | m_Name: 293 | m_EditorClassIdentifier: 294 | m_UiScaleMode: 0 295 | m_ReferencePixelsPerUnit: 100 296 | m_ScaleFactor: 1 297 | m_ReferenceResolution: {x: 800, y: 600} 298 | m_ScreenMatchMode: 0 299 | m_MatchWidthOrHeight: 0 300 | m_PhysicalUnit: 3 301 | m_FallbackScreenDPI: 96 302 | m_DefaultSpriteDPI: 96 303 | m_DynamicPixelsPerUnit: 1 304 | --- !u!223 &1025881486 305 | Canvas: 306 | m_ObjectHideFlags: 0 307 | m_PrefabParentObject: {fileID: 0} 308 | m_PrefabInternal: {fileID: 0} 309 | m_GameObject: {fileID: 1025881483} 310 | m_Enabled: 1 311 | serializedVersion: 2 312 | m_RenderMode: 0 313 | m_Camera: {fileID: 0} 314 | m_PlaneDistance: 100 315 | m_PixelPerfect: 0 316 | m_ReceivesEvents: 1 317 | m_OverrideSorting: 0 318 | m_OverridePixelPerfect: 0 319 | m_SortingBucketNormalizedSize: 0 320 | m_SortingLayerID: 0 321 | m_SortingOrder: 0 322 | m_TargetDisplay: 0 323 | --- !u!224 &1025881487 324 | RectTransform: 325 | m_ObjectHideFlags: 0 326 | m_PrefabParentObject: {fileID: 0} 327 | m_PrefabInternal: {fileID: 0} 328 | m_GameObject: {fileID: 1025881483} 329 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 330 | m_LocalPosition: {x: 0, y: 0, z: 0} 331 | m_LocalScale: {x: 0, y: 0, z: 0} 332 | m_Children: 333 | - {fileID: 506600172} 334 | m_Father: {fileID: 0} 335 | m_RootOrder: 2 336 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 337 | m_AnchorMin: {x: 0, y: 0} 338 | m_AnchorMax: {x: 0, y: 0} 339 | m_AnchoredPosition: {x: 0, y: 0} 340 | m_SizeDelta: {x: 0, y: 0} 341 | m_Pivot: {x: 0, y: 0} 342 | --- !u!1 &2034321410 343 | GameObject: 344 | m_ObjectHideFlags: 0 345 | m_PrefabParentObject: {fileID: 0} 346 | m_PrefabInternal: {fileID: 0} 347 | serializedVersion: 5 348 | m_Component: 349 | - component: {fileID: 2034321413} 350 | - component: {fileID: 2034321412} 351 | - component: {fileID: 2034321411} 352 | m_Layer: 0 353 | m_Name: EventSystem 354 | m_TagString: Untagged 355 | m_Icon: {fileID: 0} 356 | m_NavMeshLayer: 0 357 | m_StaticEditorFlags: 0 358 | m_IsActive: 1 359 | --- !u!114 &2034321411 360 | MonoBehaviour: 361 | m_ObjectHideFlags: 0 362 | m_PrefabParentObject: {fileID: 0} 363 | m_PrefabInternal: {fileID: 0} 364 | m_GameObject: {fileID: 2034321410} 365 | m_Enabled: 1 366 | m_EditorHideFlags: 0 367 | m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} 368 | m_Name: 369 | m_EditorClassIdentifier: 370 | m_HorizontalAxis: Horizontal 371 | m_VerticalAxis: Vertical 372 | m_SubmitButton: Submit 373 | m_CancelButton: Cancel 374 | m_InputActionsPerSecond: 10 375 | m_RepeatDelay: 0.5 376 | m_ForceModuleActive: 0 377 | --- !u!114 &2034321412 378 | MonoBehaviour: 379 | m_ObjectHideFlags: 0 380 | m_PrefabParentObject: {fileID: 0} 381 | m_PrefabInternal: {fileID: 0} 382 | m_GameObject: {fileID: 2034321410} 383 | m_Enabled: 1 384 | m_EditorHideFlags: 0 385 | m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} 386 | m_Name: 387 | m_EditorClassIdentifier: 388 | m_FirstSelected: {fileID: 0} 389 | m_sendNavigationEvents: 1 390 | m_DragThreshold: 5 391 | --- !u!4 &2034321413 392 | Transform: 393 | m_ObjectHideFlags: 0 394 | m_PrefabParentObject: {fileID: 0} 395 | m_PrefabInternal: {fileID: 0} 396 | m_GameObject: {fileID: 2034321410} 397 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 398 | m_LocalPosition: {x: 0, y: 0, z: 0} 399 | m_LocalScale: {x: 1, y: 1, z: 1} 400 | m_Children: [] 401 | m_Father: {fileID: 0} 402 | m_RootOrder: 3 403 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 404 | --- !u!1 &2090206892 405 | GameObject: 406 | m_ObjectHideFlags: 0 407 | m_PrefabParentObject: {fileID: 0} 408 | m_PrefabInternal: {fileID: 0} 409 | serializedVersion: 5 410 | m_Component: 411 | - component: {fileID: 2090206894} 412 | - component: {fileID: 2090206893} 413 | - component: {fileID: 2090206895} 414 | m_Layer: 0 415 | m_Name: Demo 416 | m_TagString: Untagged 417 | m_Icon: {fileID: 0} 418 | m_NavMeshLayer: 0 419 | m_StaticEditorFlags: 0 420 | m_IsActive: 1 421 | --- !u!114 &2090206893 422 | MonoBehaviour: 423 | m_ObjectHideFlags: 0 424 | m_PrefabParentObject: {fileID: 0} 425 | m_PrefabInternal: {fileID: 0} 426 | m_GameObject: {fileID: 2090206892} 427 | m_Enabled: 1 428 | m_EditorHideFlags: 0 429 | m_Script: {fileID: 11500000, guid: 6aa16add9ffd040e6a87e6c59e6fc1da, type: 3} 430 | m_Name: 431 | m_EditorClassIdentifier: 432 | anim: {fileID: 506600173} 433 | --- !u!4 &2090206894 434 | Transform: 435 | m_ObjectHideFlags: 0 436 | m_PrefabParentObject: {fileID: 0} 437 | m_PrefabInternal: {fileID: 0} 438 | m_GameObject: {fileID: 2090206892} 439 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 440 | m_LocalPosition: {x: 583.6666, y: 205, z: 0} 441 | m_LocalScale: {x: 1, y: 1, z: 1} 442 | m_Children: [] 443 | m_Father: {fileID: 0} 444 | m_RootOrder: 1 445 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 446 | --- !u!114 &2090206895 447 | MonoBehaviour: 448 | m_ObjectHideFlags: 0 449 | m_PrefabParentObject: {fileID: 0} 450 | m_PrefabInternal: {fileID: 0} 451 | m_GameObject: {fileID: 2090206892} 452 | m_Enabled: 1 453 | m_EditorHideFlags: 0 454 | m_Script: {fileID: 11500000, guid: 74f2e23464b984a9eaaed29b14be63f5, type: 3} 455 | m_Name: 456 | m_EditorClassIdentifier: 457 | OnProcessCompleted: 458 | m_PersistentCalls: 459 | m_Calls: [] 460 | m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, 461 | PublicKeyToken=null 462 | pixelsPerUnit: 100 463 | useCache: 1 464 | cacheName: Character 465 | cacheVersion: 1 466 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes/AssetPacker.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b32b1f894bd254184b66c623810c6f29 3 | timeCreated: 1484060418 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes/RectanglePacking.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 7 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SkyboxMaterial: {fileID: 0} 29 | m_HaloStrength: 0.5 30 | m_FlareStrength: 1 31 | m_FlareFadeSpeed: 3 32 | m_HaloTexture: {fileID: 0} 33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 34 | m_DefaultReflectionMode: 0 35 | m_DefaultReflectionResolution: 128 36 | m_ReflectionBounces: 1 37 | m_ReflectionIntensity: 1 38 | m_CustomReflection: {fileID: 0} 39 | m_Sun: {fileID: 0} 40 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 41 | --- !u!157 &3 42 | LightmapSettings: 43 | m_ObjectHideFlags: 0 44 | serializedVersion: 7 45 | m_GIWorkflowMode: 0 46 | m_GISettings: 47 | serializedVersion: 2 48 | m_BounceScale: 1 49 | m_IndirectOutputScale: 1 50 | m_AlbedoBoost: 1 51 | m_TemporalCoherenceThreshold: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 1 55 | m_LightmapEditorSettings: 56 | serializedVersion: 4 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_TextureWidth: 1024 60 | m_TextureHeight: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_DirectLightInLightProbes: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_LightingDataAsset: {fileID: 0} 75 | m_RuntimeCPUUsage: 25 76 | --- !u!196 &4 77 | NavMeshSettings: 78 | serializedVersion: 2 79 | m_ObjectHideFlags: 0 80 | m_BuildSettings: 81 | serializedVersion: 2 82 | agentTypeID: 0 83 | agentRadius: 0.5 84 | agentHeight: 2 85 | agentSlope: 45 86 | agentClimb: 0.4 87 | ledgeDropHeight: 0 88 | maxJumpAcrossDistance: 0 89 | minRegionArea: 2 90 | manualCellSize: 0 91 | cellSize: 0.16666667 92 | accuratePlacement: 0 93 | m_NavMeshData: {fileID: 0} 94 | --- !u!1 &72776818 95 | GameObject: 96 | m_ObjectHideFlags: 0 97 | m_PrefabParentObject: {fileID: 0} 98 | m_PrefabInternal: {fileID: 0} 99 | serializedVersion: 5 100 | m_Component: 101 | - component: {fileID: 72776819} 102 | m_Layer: 5 103 | m_Name: Fill Area 104 | m_TagString: Untagged 105 | m_Icon: {fileID: 0} 106 | m_NavMeshLayer: 0 107 | m_StaticEditorFlags: 0 108 | m_IsActive: 1 109 | --- !u!224 &72776819 110 | RectTransform: 111 | m_ObjectHideFlags: 0 112 | m_PrefabParentObject: {fileID: 0} 113 | m_PrefabInternal: {fileID: 0} 114 | m_GameObject: {fileID: 72776818} 115 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 116 | m_LocalPosition: {x: 0, y: 0, z: 0} 117 | m_LocalScale: {x: 1, y: 1, z: 1} 118 | m_Children: 119 | - {fileID: 1151265727} 120 | m_Father: {fileID: 1120781873} 121 | m_RootOrder: 1 122 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 123 | m_AnchorMin: {x: 0.25, y: 0} 124 | m_AnchorMax: {x: 0.75, y: 1} 125 | m_AnchoredPosition: {x: 0, y: -5} 126 | m_SizeDelta: {x: 0, y: -20} 127 | m_Pivot: {x: 0.5, y: 0.5} 128 | --- !u!1 &243044788 129 | GameObject: 130 | m_ObjectHideFlags: 0 131 | m_PrefabParentObject: {fileID: 0} 132 | m_PrefabInternal: {fileID: 0} 133 | serializedVersion: 5 134 | m_Component: 135 | - component: {fileID: 243044789} 136 | - component: {fileID: 243044791} 137 | - component: {fileID: 243044790} 138 | m_Layer: 5 139 | m_Name: Background 140 | m_TagString: Untagged 141 | m_Icon: {fileID: 0} 142 | m_NavMeshLayer: 0 143 | m_StaticEditorFlags: 0 144 | m_IsActive: 1 145 | --- !u!224 &243044789 146 | RectTransform: 147 | m_ObjectHideFlags: 0 148 | m_PrefabParentObject: {fileID: 0} 149 | m_PrefabInternal: {fileID: 0} 150 | m_GameObject: {fileID: 243044788} 151 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 152 | m_LocalPosition: {x: 0, y: 0, z: 0} 153 | m_LocalScale: {x: 1, y: 1, z: 1} 154 | m_Children: [] 155 | m_Father: {fileID: 1318181412} 156 | m_RootOrder: 0 157 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 158 | m_AnchorMin: {x: 0, y: 0.25} 159 | m_AnchorMax: {x: 1, y: 0.75} 160 | m_AnchoredPosition: {x: 0, y: 0} 161 | m_SizeDelta: {x: 0, y: 0} 162 | m_Pivot: {x: 0.5, y: 0.5} 163 | --- !u!114 &243044790 164 | MonoBehaviour: 165 | m_ObjectHideFlags: 0 166 | m_PrefabParentObject: {fileID: 0} 167 | m_PrefabInternal: {fileID: 0} 168 | m_GameObject: {fileID: 243044788} 169 | m_Enabled: 1 170 | m_EditorHideFlags: 0 171 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 172 | m_Name: 173 | m_EditorClassIdentifier: 174 | m_Material: {fileID: 0} 175 | m_Color: {r: 1, g: 1, b: 1, a: 1} 176 | m_RaycastTarget: 1 177 | m_OnCullStateChanged: 178 | m_PersistentCalls: 179 | m_Calls: [] 180 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 181 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 182 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 183 | m_Type: 1 184 | m_PreserveAspect: 0 185 | m_FillCenter: 1 186 | m_FillMethod: 4 187 | m_FillAmount: 1 188 | m_FillClockwise: 1 189 | m_FillOrigin: 0 190 | --- !u!222 &243044791 191 | CanvasRenderer: 192 | m_ObjectHideFlags: 0 193 | m_PrefabParentObject: {fileID: 0} 194 | m_PrefabInternal: {fileID: 0} 195 | m_GameObject: {fileID: 243044788} 196 | --- !u!1 &529827375 197 | GameObject: 198 | m_ObjectHideFlags: 0 199 | m_PrefabParentObject: {fileID: 0} 200 | m_PrefabInternal: {fileID: 0} 201 | serializedVersion: 5 202 | m_Component: 203 | - component: {fileID: 529827376} 204 | - component: {fileID: 529827378} 205 | - component: {fileID: 529827377} 206 | m_Layer: 5 207 | m_Name: Background 208 | m_TagString: Untagged 209 | m_Icon: {fileID: 0} 210 | m_NavMeshLayer: 0 211 | m_StaticEditorFlags: 0 212 | m_IsActive: 1 213 | --- !u!224 &529827376 214 | RectTransform: 215 | m_ObjectHideFlags: 0 216 | m_PrefabParentObject: {fileID: 0} 217 | m_PrefabInternal: {fileID: 0} 218 | m_GameObject: {fileID: 529827375} 219 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 220 | m_LocalPosition: {x: 0, y: 0, z: 0} 221 | m_LocalScale: {x: 1, y: 1, z: 1} 222 | m_Children: [] 223 | m_Father: {fileID: 1120781873} 224 | m_RootOrder: 0 225 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 226 | m_AnchorMin: {x: 0.25, y: 0} 227 | m_AnchorMax: {x: 0.75, y: 1} 228 | m_AnchoredPosition: {x: 0, y: 0} 229 | m_SizeDelta: {x: 0, y: 0} 230 | m_Pivot: {x: 0.5, y: 0.5} 231 | --- !u!114 &529827377 232 | MonoBehaviour: 233 | m_ObjectHideFlags: 0 234 | m_PrefabParentObject: {fileID: 0} 235 | m_PrefabInternal: {fileID: 0} 236 | m_GameObject: {fileID: 529827375} 237 | m_Enabled: 1 238 | m_EditorHideFlags: 0 239 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 240 | m_Name: 241 | m_EditorClassIdentifier: 242 | m_Material: {fileID: 0} 243 | m_Color: {r: 1, g: 1, b: 1, a: 1} 244 | m_RaycastTarget: 1 245 | m_OnCullStateChanged: 246 | m_PersistentCalls: 247 | m_Calls: [] 248 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 249 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 250 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 251 | m_Type: 1 252 | m_PreserveAspect: 0 253 | m_FillCenter: 1 254 | m_FillMethod: 4 255 | m_FillAmount: 1 256 | m_FillClockwise: 1 257 | m_FillOrigin: 0 258 | --- !u!222 &529827378 259 | CanvasRenderer: 260 | m_ObjectHideFlags: 0 261 | m_PrefabParentObject: {fileID: 0} 262 | m_PrefabInternal: {fileID: 0} 263 | m_GameObject: {fileID: 529827375} 264 | --- !u!1 &556395355 265 | GameObject: 266 | m_ObjectHideFlags: 0 267 | m_PrefabParentObject: {fileID: 0} 268 | m_PrefabInternal: {fileID: 0} 269 | serializedVersion: 5 270 | m_Component: 271 | - component: {fileID: 556395358} 272 | - component: {fileID: 556395357} 273 | - component: {fileID: 556395356} 274 | m_Layer: 0 275 | m_Name: EventSystem 276 | m_TagString: Untagged 277 | m_Icon: {fileID: 0} 278 | m_NavMeshLayer: 0 279 | m_StaticEditorFlags: 0 280 | m_IsActive: 1 281 | --- !u!114 &556395356 282 | MonoBehaviour: 283 | m_ObjectHideFlags: 0 284 | m_PrefabParentObject: {fileID: 0} 285 | m_PrefabInternal: {fileID: 0} 286 | m_GameObject: {fileID: 556395355} 287 | m_Enabled: 1 288 | m_EditorHideFlags: 0 289 | m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} 290 | m_Name: 291 | m_EditorClassIdentifier: 292 | m_HorizontalAxis: Horizontal 293 | m_VerticalAxis: Vertical 294 | m_SubmitButton: Submit 295 | m_CancelButton: Cancel 296 | m_InputActionsPerSecond: 10 297 | m_RepeatDelay: 0.5 298 | m_ForceModuleActive: 0 299 | --- !u!114 &556395357 300 | MonoBehaviour: 301 | m_ObjectHideFlags: 0 302 | m_PrefabParentObject: {fileID: 0} 303 | m_PrefabInternal: {fileID: 0} 304 | m_GameObject: {fileID: 556395355} 305 | m_Enabled: 1 306 | m_EditorHideFlags: 0 307 | m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} 308 | m_Name: 309 | m_EditorClassIdentifier: 310 | m_FirstSelected: {fileID: 0} 311 | m_sendNavigationEvents: 1 312 | m_DragThreshold: 5 313 | --- !u!4 &556395358 314 | Transform: 315 | m_ObjectHideFlags: 0 316 | m_PrefabParentObject: {fileID: 0} 317 | m_PrefabInternal: {fileID: 0} 318 | m_GameObject: {fileID: 556395355} 319 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 320 | m_LocalPosition: {x: 0, y: 0, z: 0} 321 | m_LocalScale: {x: 1, y: 1, z: 1} 322 | m_Children: [] 323 | m_Father: {fileID: 0} 324 | m_RootOrder: 3 325 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 326 | --- !u!1 &675344388 327 | GameObject: 328 | m_ObjectHideFlags: 0 329 | m_PrefabParentObject: {fileID: 0} 330 | m_PrefabInternal: {fileID: 0} 331 | serializedVersion: 5 332 | m_Component: 333 | - component: {fileID: 675344389} 334 | - component: {fileID: 675344391} 335 | - component: {fileID: 675344390} 336 | m_Layer: 5 337 | m_Name: Packing Time Text 338 | m_TagString: Untagged 339 | m_Icon: {fileID: 0} 340 | m_NavMeshLayer: 0 341 | m_StaticEditorFlags: 0 342 | m_IsActive: 1 343 | --- !u!224 &675344389 344 | RectTransform: 345 | m_ObjectHideFlags: 0 346 | m_PrefabParentObject: {fileID: 0} 347 | m_PrefabInternal: {fileID: 0} 348 | m_GameObject: {fileID: 675344388} 349 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 350 | m_LocalPosition: {x: 0, y: 0, z: 0} 351 | m_LocalScale: {x: 1, y: 1, z: 1} 352 | m_Children: [] 353 | m_Father: {fileID: 1377033097} 354 | m_RootOrder: 2 355 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 356 | m_AnchorMin: {x: 0, y: 1} 357 | m_AnchorMax: {x: 1, y: 1} 358 | m_AnchoredPosition: {x: 0, y: 30} 359 | m_SizeDelta: {x: 0, y: 30} 360 | m_Pivot: {x: 0.5, y: 1} 361 | --- !u!114 &675344390 362 | MonoBehaviour: 363 | m_ObjectHideFlags: 0 364 | m_PrefabParentObject: {fileID: 0} 365 | m_PrefabInternal: {fileID: 0} 366 | m_GameObject: {fileID: 675344388} 367 | m_Enabled: 1 368 | m_EditorHideFlags: 0 369 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 370 | m_Name: 371 | m_EditorClassIdentifier: 372 | m_Material: {fileID: 0} 373 | m_Color: {r: 1, g: 1, b: 1, a: 1} 374 | m_RaycastTarget: 1 375 | m_OnCullStateChanged: 376 | m_PersistentCalls: 377 | m_Calls: [] 378 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 379 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 380 | m_FontData: 381 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 382 | m_FontSize: 20 383 | m_FontStyle: 0 384 | m_BestFit: 0 385 | m_MinSize: 2 386 | m_MaxSize: 40 387 | m_Alignment: 1 388 | m_AlignByGeometry: 0 389 | m_RichText: 1 390 | m_HorizontalOverflow: 0 391 | m_VerticalOverflow: 0 392 | m_LineSpacing: 1 393 | m_Text: Packing Time 394 | --- !u!222 &675344391 395 | CanvasRenderer: 396 | m_ObjectHideFlags: 0 397 | m_PrefabParentObject: {fileID: 0} 398 | m_PrefabInternal: {fileID: 0} 399 | m_GameObject: {fileID: 675344388} 400 | --- !u!1 &726012900 401 | GameObject: 402 | m_ObjectHideFlags: 0 403 | m_PrefabParentObject: {fileID: 0} 404 | m_PrefabInternal: {fileID: 0} 405 | serializedVersion: 5 406 | m_Component: 407 | - component: {fileID: 726012901} 408 | - component: {fileID: 726012903} 409 | - component: {fileID: 726012902} 410 | m_Layer: 5 411 | m_Name: Handle 412 | m_TagString: Untagged 413 | m_Icon: {fileID: 0} 414 | m_NavMeshLayer: 0 415 | m_StaticEditorFlags: 0 416 | m_IsActive: 1 417 | --- !u!224 &726012901 418 | RectTransform: 419 | m_ObjectHideFlags: 0 420 | m_PrefabParentObject: {fileID: 0} 421 | m_PrefabInternal: {fileID: 0} 422 | m_GameObject: {fileID: 726012900} 423 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 424 | m_LocalPosition: {x: 0, y: 0, z: 0} 425 | m_LocalScale: {x: 1, y: 1, z: 1} 426 | m_Children: [] 427 | m_Father: {fileID: 901580603} 428 | m_RootOrder: 0 429 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 430 | m_AnchorMin: {x: 0, y: 0} 431 | m_AnchorMax: {x: 0, y: 0} 432 | m_AnchoredPosition: {x: 0, y: 0} 433 | m_SizeDelta: {x: 0, y: 20} 434 | m_Pivot: {x: 0.5, y: 0.5} 435 | --- !u!114 &726012902 436 | MonoBehaviour: 437 | m_ObjectHideFlags: 0 438 | m_PrefabParentObject: {fileID: 0} 439 | m_PrefabInternal: {fileID: 0} 440 | m_GameObject: {fileID: 726012900} 441 | m_Enabled: 1 442 | m_EditorHideFlags: 0 443 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 444 | m_Name: 445 | m_EditorClassIdentifier: 446 | m_Material: {fileID: 0} 447 | m_Color: {r: 1, g: 1, b: 1, a: 1} 448 | m_RaycastTarget: 1 449 | m_OnCullStateChanged: 450 | m_PersistentCalls: 451 | m_Calls: [] 452 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 453 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 454 | m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} 455 | m_Type: 0 456 | m_PreserveAspect: 0 457 | m_FillCenter: 1 458 | m_FillMethod: 4 459 | m_FillAmount: 1 460 | m_FillClockwise: 1 461 | m_FillOrigin: 0 462 | --- !u!222 &726012903 463 | CanvasRenderer: 464 | m_ObjectHideFlags: 0 465 | m_PrefabParentObject: {fileID: 0} 466 | m_PrefabInternal: {fileID: 0} 467 | m_GameObject: {fileID: 726012900} 468 | --- !u!1 &760585587 469 | GameObject: 470 | m_ObjectHideFlags: 0 471 | m_PrefabParentObject: {fileID: 0} 472 | m_PrefabInternal: {fileID: 0} 473 | serializedVersion: 5 474 | m_Component: 475 | - component: {fileID: 760585592} 476 | - component: {fileID: 760585591} 477 | - component: {fileID: 760585590} 478 | - component: {fileID: 760585589} 479 | - component: {fileID: 760585588} 480 | m_Layer: 0 481 | m_Name: Main Camera 482 | m_TagString: MainCamera 483 | m_Icon: {fileID: 0} 484 | m_NavMeshLayer: 0 485 | m_StaticEditorFlags: 0 486 | m_IsActive: 1 487 | --- !u!81 &760585588 488 | AudioListener: 489 | m_ObjectHideFlags: 0 490 | m_PrefabParentObject: {fileID: 0} 491 | m_PrefabInternal: {fileID: 0} 492 | m_GameObject: {fileID: 760585587} 493 | m_Enabled: 1 494 | --- !u!124 &760585589 495 | Behaviour: 496 | m_ObjectHideFlags: 0 497 | m_PrefabParentObject: {fileID: 0} 498 | m_PrefabInternal: {fileID: 0} 499 | m_GameObject: {fileID: 760585587} 500 | m_Enabled: 1 501 | --- !u!92 &760585590 502 | Behaviour: 503 | m_ObjectHideFlags: 0 504 | m_PrefabParentObject: {fileID: 0} 505 | m_PrefabInternal: {fileID: 0} 506 | m_GameObject: {fileID: 760585587} 507 | m_Enabled: 1 508 | --- !u!20 &760585591 509 | Camera: 510 | m_ObjectHideFlags: 0 511 | m_PrefabParentObject: {fileID: 0} 512 | m_PrefabInternal: {fileID: 0} 513 | m_GameObject: {fileID: 760585587} 514 | m_Enabled: 1 515 | serializedVersion: 2 516 | m_ClearFlags: 2 517 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 518 | m_NormalizedViewPortRect: 519 | serializedVersion: 2 520 | x: 0 521 | y: 0 522 | width: 1 523 | height: 1 524 | near clip plane: 0.3 525 | far clip plane: 1000 526 | field of view: 60 527 | orthographic: 1 528 | orthographic size: 5 529 | m_Depth: -1 530 | m_CullingMask: 531 | serializedVersion: 2 532 | m_Bits: 4294967295 533 | m_RenderingPath: -1 534 | m_TargetTexture: {fileID: 0} 535 | m_TargetDisplay: 0 536 | m_TargetEye: 3 537 | m_HDR: 0 538 | m_OcclusionCulling: 1 539 | m_StereoConvergence: 10 540 | m_StereoSeparation: 0.022 541 | m_StereoMirrorMode: 0 542 | --- !u!4 &760585592 543 | Transform: 544 | m_ObjectHideFlags: 0 545 | m_PrefabParentObject: {fileID: 0} 546 | m_PrefabInternal: {fileID: 0} 547 | m_GameObject: {fileID: 760585587} 548 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 549 | m_LocalPosition: {x: 0, y: 1, z: -10} 550 | m_LocalScale: {x: 1, y: 1, z: 1} 551 | m_Children: [] 552 | m_Father: {fileID: 0} 553 | m_RootOrder: 0 554 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 555 | --- !u!1 &901580602 556 | GameObject: 557 | m_ObjectHideFlags: 0 558 | m_PrefabParentObject: {fileID: 0} 559 | m_PrefabInternal: {fileID: 0} 560 | serializedVersion: 5 561 | m_Component: 562 | - component: {fileID: 901580603} 563 | m_Layer: 5 564 | m_Name: Handle Slide Area 565 | m_TagString: Untagged 566 | m_Icon: {fileID: 0} 567 | m_NavMeshLayer: 0 568 | m_StaticEditorFlags: 0 569 | m_IsActive: 1 570 | --- !u!224 &901580603 571 | RectTransform: 572 | m_ObjectHideFlags: 0 573 | m_PrefabParentObject: {fileID: 0} 574 | m_PrefabInternal: {fileID: 0} 575 | m_GameObject: {fileID: 901580602} 576 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 577 | m_LocalPosition: {x: 0, y: 0, z: 0} 578 | m_LocalScale: {x: 1, y: 1, z: 1} 579 | m_Children: 580 | - {fileID: 726012901} 581 | m_Father: {fileID: 1120781873} 582 | m_RootOrder: 2 583 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 584 | m_AnchorMin: {x: 0, y: 0} 585 | m_AnchorMax: {x: 1, y: 1} 586 | m_AnchoredPosition: {x: 0, y: 0} 587 | m_SizeDelta: {x: 0, y: -20} 588 | m_Pivot: {x: 0.5, y: 0.5} 589 | --- !u!1 &1055017280 590 | GameObject: 591 | m_ObjectHideFlags: 0 592 | m_PrefabParentObject: {fileID: 0} 593 | m_PrefabInternal: {fileID: 0} 594 | serializedVersion: 5 595 | m_Component: 596 | - component: {fileID: 1055017282} 597 | - component: {fileID: 1055017281} 598 | m_Layer: 0 599 | m_Name: Demo 600 | m_TagString: Untagged 601 | m_Icon: {fileID: 0} 602 | m_NavMeshLayer: 0 603 | m_StaticEditorFlags: 0 604 | m_IsActive: 1 605 | --- !u!114 &1055017281 606 | MonoBehaviour: 607 | m_ObjectHideFlags: 0 608 | m_PrefabParentObject: {fileID: 0} 609 | m_PrefabInternal: {fileID: 0} 610 | m_GameObject: {fileID: 1055017280} 611 | m_Enabled: 1 612 | m_EditorHideFlags: 0 613 | m_Script: {fileID: 11500000, guid: 789a4386042bd41e1b45135103017f8f, type: 3} 614 | m_Name: 615 | m_EditorClassIdentifier: 616 | img: {fileID: 1377033098} 617 | sliderWidth: {fileID: 1318181413} 618 | sliderHeight: {fileID: 1120781874} 619 | packingTimeText: {fileID: 675344390} 620 | --- !u!4 &1055017282 621 | Transform: 622 | m_ObjectHideFlags: 0 623 | m_PrefabParentObject: {fileID: 0} 624 | m_PrefabInternal: {fileID: 0} 625 | m_GameObject: {fileID: 1055017280} 626 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 627 | m_LocalPosition: {x: 0, y: 1, z: -10} 628 | m_LocalScale: {x: 1, y: 1, z: 1} 629 | m_Children: [] 630 | m_Father: {fileID: 0} 631 | m_RootOrder: 1 632 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 633 | --- !u!1 &1120781872 634 | GameObject: 635 | m_ObjectHideFlags: 0 636 | m_PrefabParentObject: {fileID: 0} 637 | m_PrefabInternal: {fileID: 0} 638 | serializedVersion: 5 639 | m_Component: 640 | - component: {fileID: 1120781873} 641 | - component: {fileID: 1120781874} 642 | m_Layer: 5 643 | m_Name: Slider Height 644 | m_TagString: Untagged 645 | m_Icon: {fileID: 0} 646 | m_NavMeshLayer: 0 647 | m_StaticEditorFlags: 0 648 | m_IsActive: 1 649 | --- !u!224 &1120781873 650 | RectTransform: 651 | m_ObjectHideFlags: 0 652 | m_PrefabParentObject: {fileID: 0} 653 | m_PrefabInternal: {fileID: 0} 654 | m_GameObject: {fileID: 1120781872} 655 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 656 | m_LocalPosition: {x: 0, y: 0, z: 0} 657 | m_LocalScale: {x: 1, y: 1, z: 1} 658 | m_Children: 659 | - {fileID: 529827376} 660 | - {fileID: 72776819} 661 | - {fileID: 901580603} 662 | m_Father: {fileID: 1377033097} 663 | m_RootOrder: 1 664 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 665 | m_AnchorMin: {x: 1, y: 0} 666 | m_AnchorMax: {x: 1, y: 1} 667 | m_AnchoredPosition: {x: 30, y: 0} 668 | m_SizeDelta: {x: 20, y: 0} 669 | m_Pivot: {x: 1, y: 0.5} 670 | --- !u!114 &1120781874 671 | MonoBehaviour: 672 | m_ObjectHideFlags: 0 673 | m_PrefabParentObject: {fileID: 0} 674 | m_PrefabInternal: {fileID: 0} 675 | m_GameObject: {fileID: 1120781872} 676 | m_Enabled: 1 677 | m_EditorHideFlags: 0 678 | m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, type: 3} 679 | m_Name: 680 | m_EditorClassIdentifier: 681 | m_Navigation: 682 | m_Mode: 2 683 | m_SelectOnUp: {fileID: 0} 684 | m_SelectOnDown: {fileID: 0} 685 | m_SelectOnLeft: {fileID: 0} 686 | m_SelectOnRight: {fileID: 0} 687 | m_Transition: 1 688 | m_Colors: 689 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 690 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 691 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 692 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 693 | m_ColorMultiplier: 1 694 | m_FadeDuration: 0.1 695 | m_SpriteState: 696 | m_HighlightedSprite: {fileID: 0} 697 | m_PressedSprite: {fileID: 0} 698 | m_DisabledSprite: {fileID: 0} 699 | m_AnimationTriggers: 700 | m_NormalTrigger: Normal 701 | m_HighlightedTrigger: Highlighted 702 | m_PressedTrigger: Pressed 703 | m_DisabledTrigger: Disabled 704 | m_Interactable: 1 705 | m_TargetGraphic: {fileID: 726012902} 706 | m_FillRect: {fileID: 1151265727} 707 | m_HandleRect: {fileID: 726012901} 708 | m_Direction: 2 709 | m_MinValue: 10 710 | m_MaxValue: 480 711 | m_WholeNumbers: 1 712 | m_Value: 480 713 | m_OnValueChanged: 714 | m_PersistentCalls: 715 | m_Calls: [] 716 | m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, 717 | Culture=neutral, PublicKeyToken=null 718 | --- !u!1 &1151265726 719 | GameObject: 720 | m_ObjectHideFlags: 0 721 | m_PrefabParentObject: {fileID: 0} 722 | m_PrefabInternal: {fileID: 0} 723 | serializedVersion: 5 724 | m_Component: 725 | - component: {fileID: 1151265727} 726 | - component: {fileID: 1151265729} 727 | - component: {fileID: 1151265728} 728 | m_Layer: 5 729 | m_Name: Fill 730 | m_TagString: Untagged 731 | m_Icon: {fileID: 0} 732 | m_NavMeshLayer: 0 733 | m_StaticEditorFlags: 0 734 | m_IsActive: 1 735 | --- !u!224 &1151265727 736 | RectTransform: 737 | m_ObjectHideFlags: 0 738 | m_PrefabParentObject: {fileID: 0} 739 | m_PrefabInternal: {fileID: 0} 740 | m_GameObject: {fileID: 1151265726} 741 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 742 | m_LocalPosition: {x: 0, y: 0, z: 0} 743 | m_LocalScale: {x: 1, y: 1, z: 1} 744 | m_Children: [] 745 | m_Father: {fileID: 72776819} 746 | m_RootOrder: 0 747 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 748 | m_AnchorMin: {x: 0, y: 0} 749 | m_AnchorMax: {x: 0, y: 0} 750 | m_AnchoredPosition: {x: 0, y: 0} 751 | m_SizeDelta: {x: 0, y: 10} 752 | m_Pivot: {x: 0.5, y: 0.5} 753 | --- !u!114 &1151265728 754 | MonoBehaviour: 755 | m_ObjectHideFlags: 0 756 | m_PrefabParentObject: {fileID: 0} 757 | m_PrefabInternal: {fileID: 0} 758 | m_GameObject: {fileID: 1151265726} 759 | m_Enabled: 1 760 | m_EditorHideFlags: 0 761 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 762 | m_Name: 763 | m_EditorClassIdentifier: 764 | m_Material: {fileID: 0} 765 | m_Color: {r: 1, g: 1, b: 1, a: 1} 766 | m_RaycastTarget: 1 767 | m_OnCullStateChanged: 768 | m_PersistentCalls: 769 | m_Calls: [] 770 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 771 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 772 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 773 | m_Type: 1 774 | m_PreserveAspect: 0 775 | m_FillCenter: 1 776 | m_FillMethod: 4 777 | m_FillAmount: 1 778 | m_FillClockwise: 1 779 | m_FillOrigin: 0 780 | --- !u!222 &1151265729 781 | CanvasRenderer: 782 | m_ObjectHideFlags: 0 783 | m_PrefabParentObject: {fileID: 0} 784 | m_PrefabInternal: {fileID: 0} 785 | m_GameObject: {fileID: 1151265726} 786 | --- !u!1 &1154518959 787 | GameObject: 788 | m_ObjectHideFlags: 0 789 | m_PrefabParentObject: {fileID: 0} 790 | m_PrefabInternal: {fileID: 0} 791 | serializedVersion: 5 792 | m_Component: 793 | - component: {fileID: 1154518960} 794 | m_Layer: 5 795 | m_Name: Handle Slide Area 796 | m_TagString: Untagged 797 | m_Icon: {fileID: 0} 798 | m_NavMeshLayer: 0 799 | m_StaticEditorFlags: 0 800 | m_IsActive: 1 801 | --- !u!224 &1154518960 802 | RectTransform: 803 | m_ObjectHideFlags: 0 804 | m_PrefabParentObject: {fileID: 0} 805 | m_PrefabInternal: {fileID: 0} 806 | m_GameObject: {fileID: 1154518959} 807 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 808 | m_LocalPosition: {x: 0, y: 0, z: 0} 809 | m_LocalScale: {x: 1, y: 1, z: 1} 810 | m_Children: 811 | - {fileID: 1859479505} 812 | m_Father: {fileID: 1318181412} 813 | m_RootOrder: 2 814 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 815 | m_AnchorMin: {x: 0, y: 0} 816 | m_AnchorMax: {x: 1, y: 1} 817 | m_AnchoredPosition: {x: 0, y: 0} 818 | m_SizeDelta: {x: -20, y: 0} 819 | m_Pivot: {x: 0.5, y: 0.5} 820 | --- !u!1 &1263703273 821 | GameObject: 822 | m_ObjectHideFlags: 0 823 | m_PrefabParentObject: {fileID: 0} 824 | m_PrefabInternal: {fileID: 0} 825 | serializedVersion: 5 826 | m_Component: 827 | - component: {fileID: 1263703274} 828 | m_Layer: 5 829 | m_Name: Fill Area 830 | m_TagString: Untagged 831 | m_Icon: {fileID: 0} 832 | m_NavMeshLayer: 0 833 | m_StaticEditorFlags: 0 834 | m_IsActive: 1 835 | --- !u!224 &1263703274 836 | RectTransform: 837 | m_ObjectHideFlags: 0 838 | m_PrefabParentObject: {fileID: 0} 839 | m_PrefabInternal: {fileID: 0} 840 | m_GameObject: {fileID: 1263703273} 841 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 842 | m_LocalPosition: {x: 0, y: 0, z: 0} 843 | m_LocalScale: {x: 1, y: 1, z: 1} 844 | m_Children: 845 | - {fileID: 1811088615} 846 | m_Father: {fileID: 1318181412} 847 | m_RootOrder: 1 848 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 849 | m_AnchorMin: {x: 0, y: 0.25} 850 | m_AnchorMax: {x: 1, y: 0.75} 851 | m_AnchoredPosition: {x: -5, y: 0} 852 | m_SizeDelta: {x: -20, y: 0} 853 | m_Pivot: {x: 0.5, y: 0.5} 854 | --- !u!1 &1318181411 855 | GameObject: 856 | m_ObjectHideFlags: 0 857 | m_PrefabParentObject: {fileID: 0} 858 | m_PrefabInternal: {fileID: 0} 859 | serializedVersion: 5 860 | m_Component: 861 | - component: {fileID: 1318181412} 862 | - component: {fileID: 1318181413} 863 | m_Layer: 5 864 | m_Name: Slider Width 865 | m_TagString: Untagged 866 | m_Icon: {fileID: 0} 867 | m_NavMeshLayer: 0 868 | m_StaticEditorFlags: 0 869 | m_IsActive: 1 870 | --- !u!224 &1318181412 871 | RectTransform: 872 | m_ObjectHideFlags: 0 873 | m_PrefabParentObject: {fileID: 0} 874 | m_PrefabInternal: {fileID: 0} 875 | m_GameObject: {fileID: 1318181411} 876 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 877 | m_LocalPosition: {x: 0, y: 0, z: 0} 878 | m_LocalScale: {x: 1, y: 1, z: 1} 879 | m_Children: 880 | - {fileID: 243044789} 881 | - {fileID: 1263703274} 882 | - {fileID: 1154518960} 883 | m_Father: {fileID: 1377033097} 884 | m_RootOrder: 0 885 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 886 | m_AnchorMin: {x: 0, y: 0} 887 | m_AnchorMax: {x: 1, y: 0} 888 | m_AnchoredPosition: {x: 0, y: -30} 889 | m_SizeDelta: {x: 0, y: 20} 890 | m_Pivot: {x: 0.5, y: 0} 891 | --- !u!114 &1318181413 892 | MonoBehaviour: 893 | m_ObjectHideFlags: 0 894 | m_PrefabParentObject: {fileID: 0} 895 | m_PrefabInternal: {fileID: 0} 896 | m_GameObject: {fileID: 1318181411} 897 | m_Enabled: 1 898 | m_EditorHideFlags: 0 899 | m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, type: 3} 900 | m_Name: 901 | m_EditorClassIdentifier: 902 | m_Navigation: 903 | m_Mode: 1 904 | m_SelectOnUp: {fileID: 0} 905 | m_SelectOnDown: {fileID: 0} 906 | m_SelectOnLeft: {fileID: 0} 907 | m_SelectOnRight: {fileID: 0} 908 | m_Transition: 1 909 | m_Colors: 910 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 911 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 912 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 913 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 914 | m_ColorMultiplier: 1 915 | m_FadeDuration: 0.1 916 | m_SpriteState: 917 | m_HighlightedSprite: {fileID: 0} 918 | m_PressedSprite: {fileID: 0} 919 | m_DisabledSprite: {fileID: 0} 920 | m_AnimationTriggers: 921 | m_NormalTrigger: Normal 922 | m_HighlightedTrigger: Highlighted 923 | m_PressedTrigger: Pressed 924 | m_DisabledTrigger: Disabled 925 | m_Interactable: 1 926 | m_TargetGraphic: {fileID: 1859479506} 927 | m_FillRect: {fileID: 1811088615} 928 | m_HandleRect: {fileID: 1859479505} 929 | m_Direction: 0 930 | m_MinValue: 10 931 | m_MaxValue: 480 932 | m_WholeNumbers: 1 933 | m_Value: 480 934 | m_OnValueChanged: 935 | m_PersistentCalls: 936 | m_Calls: [] 937 | m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, 938 | Culture=neutral, PublicKeyToken=null 939 | --- !u!1 &1377033096 940 | GameObject: 941 | m_ObjectHideFlags: 0 942 | m_PrefabParentObject: {fileID: 0} 943 | m_PrefabInternal: {fileID: 0} 944 | serializedVersion: 5 945 | m_Component: 946 | - component: {fileID: 1377033097} 947 | - component: {fileID: 1377033099} 948 | - component: {fileID: 1377033098} 949 | m_Layer: 5 950 | m_Name: Image 951 | m_TagString: Untagged 952 | m_Icon: {fileID: 0} 953 | m_NavMeshLayer: 0 954 | m_StaticEditorFlags: 0 955 | m_IsActive: 1 956 | --- !u!224 &1377033097 957 | RectTransform: 958 | m_ObjectHideFlags: 0 959 | m_PrefabParentObject: {fileID: 0} 960 | m_PrefabInternal: {fileID: 0} 961 | m_GameObject: {fileID: 1377033096} 962 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 963 | m_LocalPosition: {x: 0, y: 0, z: 0} 964 | m_LocalScale: {x: 1, y: 1, z: 1} 965 | m_Children: 966 | - {fileID: 1318181412} 967 | - {fileID: 1120781873} 968 | - {fileID: 675344389} 969 | m_Father: {fileID: 2124082975} 970 | m_RootOrder: 0 971 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 972 | m_AnchorMin: {x: 0.5, y: 0.5} 973 | m_AnchorMax: {x: 0.5, y: 0.5} 974 | m_AnchoredPosition: {x: 0, y: 0} 975 | m_SizeDelta: {x: 480, y: 480} 976 | m_Pivot: {x: 0.5, y: 0.5} 977 | --- !u!114 &1377033098 978 | MonoBehaviour: 979 | m_ObjectHideFlags: 0 980 | m_PrefabParentObject: {fileID: 0} 981 | m_PrefabInternal: {fileID: 0} 982 | m_GameObject: {fileID: 1377033096} 983 | m_Enabled: 1 984 | m_EditorHideFlags: 0 985 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 986 | m_Name: 987 | m_EditorClassIdentifier: 988 | m_Material: {fileID: 0} 989 | m_Color: {r: 1, g: 1, b: 1, a: 1} 990 | m_RaycastTarget: 1 991 | m_OnCullStateChanged: 992 | m_PersistentCalls: 993 | m_Calls: [] 994 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 995 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 996 | m_Sprite: {fileID: 0} 997 | m_Type: 0 998 | m_PreserveAspect: 0 999 | m_FillCenter: 1 1000 | m_FillMethod: 4 1001 | m_FillAmount: 1 1002 | m_FillClockwise: 1 1003 | m_FillOrigin: 0 1004 | --- !u!222 &1377033099 1005 | CanvasRenderer: 1006 | m_ObjectHideFlags: 0 1007 | m_PrefabParentObject: {fileID: 0} 1008 | m_PrefabInternal: {fileID: 0} 1009 | m_GameObject: {fileID: 1377033096} 1010 | --- !u!1 &1811088614 1011 | GameObject: 1012 | m_ObjectHideFlags: 0 1013 | m_PrefabParentObject: {fileID: 0} 1014 | m_PrefabInternal: {fileID: 0} 1015 | serializedVersion: 5 1016 | m_Component: 1017 | - component: {fileID: 1811088615} 1018 | - component: {fileID: 1811088617} 1019 | - component: {fileID: 1811088616} 1020 | m_Layer: 5 1021 | m_Name: Fill 1022 | m_TagString: Untagged 1023 | m_Icon: {fileID: 0} 1024 | m_NavMeshLayer: 0 1025 | m_StaticEditorFlags: 0 1026 | m_IsActive: 1 1027 | --- !u!224 &1811088615 1028 | RectTransform: 1029 | m_ObjectHideFlags: 0 1030 | m_PrefabParentObject: {fileID: 0} 1031 | m_PrefabInternal: {fileID: 0} 1032 | m_GameObject: {fileID: 1811088614} 1033 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1034 | m_LocalPosition: {x: 0, y: 0, z: 0} 1035 | m_LocalScale: {x: 1, y: 1, z: 1} 1036 | m_Children: [] 1037 | m_Father: {fileID: 1263703274} 1038 | m_RootOrder: 0 1039 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1040 | m_AnchorMin: {x: 0, y: 0} 1041 | m_AnchorMax: {x: 0, y: 0} 1042 | m_AnchoredPosition: {x: 0, y: 0} 1043 | m_SizeDelta: {x: 10, y: 0} 1044 | m_Pivot: {x: 0.5, y: 0.5} 1045 | --- !u!114 &1811088616 1046 | MonoBehaviour: 1047 | m_ObjectHideFlags: 0 1048 | m_PrefabParentObject: {fileID: 0} 1049 | m_PrefabInternal: {fileID: 0} 1050 | m_GameObject: {fileID: 1811088614} 1051 | m_Enabled: 1 1052 | m_EditorHideFlags: 0 1053 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1054 | m_Name: 1055 | m_EditorClassIdentifier: 1056 | m_Material: {fileID: 0} 1057 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1058 | m_RaycastTarget: 1 1059 | m_OnCullStateChanged: 1060 | m_PersistentCalls: 1061 | m_Calls: [] 1062 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 1063 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 1064 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 1065 | m_Type: 1 1066 | m_PreserveAspect: 0 1067 | m_FillCenter: 1 1068 | m_FillMethod: 4 1069 | m_FillAmount: 1 1070 | m_FillClockwise: 1 1071 | m_FillOrigin: 0 1072 | --- !u!222 &1811088617 1073 | CanvasRenderer: 1074 | m_ObjectHideFlags: 0 1075 | m_PrefabParentObject: {fileID: 0} 1076 | m_PrefabInternal: {fileID: 0} 1077 | m_GameObject: {fileID: 1811088614} 1078 | --- !u!1 &1859479504 1079 | GameObject: 1080 | m_ObjectHideFlags: 0 1081 | m_PrefabParentObject: {fileID: 0} 1082 | m_PrefabInternal: {fileID: 0} 1083 | serializedVersion: 5 1084 | m_Component: 1085 | - component: {fileID: 1859479505} 1086 | - component: {fileID: 1859479507} 1087 | - component: {fileID: 1859479506} 1088 | m_Layer: 5 1089 | m_Name: Handle 1090 | m_TagString: Untagged 1091 | m_Icon: {fileID: 0} 1092 | m_NavMeshLayer: 0 1093 | m_StaticEditorFlags: 0 1094 | m_IsActive: 1 1095 | --- !u!224 &1859479505 1096 | RectTransform: 1097 | m_ObjectHideFlags: 0 1098 | m_PrefabParentObject: {fileID: 0} 1099 | m_PrefabInternal: {fileID: 0} 1100 | m_GameObject: {fileID: 1859479504} 1101 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1102 | m_LocalPosition: {x: 0, y: 0, z: 0} 1103 | m_LocalScale: {x: 1, y: 1, z: 1} 1104 | m_Children: [] 1105 | m_Father: {fileID: 1154518960} 1106 | m_RootOrder: 0 1107 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1108 | m_AnchorMin: {x: 0, y: 0} 1109 | m_AnchorMax: {x: 0, y: 0} 1110 | m_AnchoredPosition: {x: 0, y: 0} 1111 | m_SizeDelta: {x: 20, y: 0} 1112 | m_Pivot: {x: 0.5, y: 0.5} 1113 | --- !u!114 &1859479506 1114 | MonoBehaviour: 1115 | m_ObjectHideFlags: 0 1116 | m_PrefabParentObject: {fileID: 0} 1117 | m_PrefabInternal: {fileID: 0} 1118 | m_GameObject: {fileID: 1859479504} 1119 | m_Enabled: 1 1120 | m_EditorHideFlags: 0 1121 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1122 | m_Name: 1123 | m_EditorClassIdentifier: 1124 | m_Material: {fileID: 0} 1125 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1126 | m_RaycastTarget: 1 1127 | m_OnCullStateChanged: 1128 | m_PersistentCalls: 1129 | m_Calls: [] 1130 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 1131 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 1132 | m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} 1133 | m_Type: 0 1134 | m_PreserveAspect: 0 1135 | m_FillCenter: 1 1136 | m_FillMethod: 4 1137 | m_FillAmount: 1 1138 | m_FillClockwise: 1 1139 | m_FillOrigin: 0 1140 | --- !u!222 &1859479507 1141 | CanvasRenderer: 1142 | m_ObjectHideFlags: 0 1143 | m_PrefabParentObject: {fileID: 0} 1144 | m_PrefabInternal: {fileID: 0} 1145 | m_GameObject: {fileID: 1859479504} 1146 | --- !u!1 &2124082971 1147 | GameObject: 1148 | m_ObjectHideFlags: 0 1149 | m_PrefabParentObject: {fileID: 0} 1150 | m_PrefabInternal: {fileID: 0} 1151 | serializedVersion: 5 1152 | m_Component: 1153 | - component: {fileID: 2124082975} 1154 | - component: {fileID: 2124082974} 1155 | - component: {fileID: 2124082973} 1156 | - component: {fileID: 2124082972} 1157 | m_Layer: 5 1158 | m_Name: Canvas 1159 | m_TagString: Untagged 1160 | m_Icon: {fileID: 0} 1161 | m_NavMeshLayer: 0 1162 | m_StaticEditorFlags: 0 1163 | m_IsActive: 1 1164 | --- !u!114 &2124082972 1165 | MonoBehaviour: 1166 | m_ObjectHideFlags: 0 1167 | m_PrefabParentObject: {fileID: 0} 1168 | m_PrefabInternal: {fileID: 0} 1169 | m_GameObject: {fileID: 2124082971} 1170 | m_Enabled: 1 1171 | m_EditorHideFlags: 0 1172 | m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1173 | m_Name: 1174 | m_EditorClassIdentifier: 1175 | m_IgnoreReversedGraphics: 1 1176 | m_BlockingObjects: 0 1177 | m_BlockingMask: 1178 | serializedVersion: 2 1179 | m_Bits: 4294967295 1180 | --- !u!114 &2124082973 1181 | MonoBehaviour: 1182 | m_ObjectHideFlags: 0 1183 | m_PrefabParentObject: {fileID: 0} 1184 | m_PrefabInternal: {fileID: 0} 1185 | m_GameObject: {fileID: 2124082971} 1186 | m_Enabled: 1 1187 | m_EditorHideFlags: 0 1188 | m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} 1189 | m_Name: 1190 | m_EditorClassIdentifier: 1191 | m_UiScaleMode: 1 1192 | m_ReferencePixelsPerUnit: 100 1193 | m_ScaleFactor: 1 1194 | m_ReferenceResolution: {x: 800, y: 600} 1195 | m_ScreenMatchMode: 1 1196 | m_MatchWidthOrHeight: 0 1197 | m_PhysicalUnit: 3 1198 | m_FallbackScreenDPI: 96 1199 | m_DefaultSpriteDPI: 96 1200 | m_DynamicPixelsPerUnit: 1 1201 | --- !u!223 &2124082974 1202 | Canvas: 1203 | m_ObjectHideFlags: 0 1204 | m_PrefabParentObject: {fileID: 0} 1205 | m_PrefabInternal: {fileID: 0} 1206 | m_GameObject: {fileID: 2124082971} 1207 | m_Enabled: 1 1208 | serializedVersion: 2 1209 | m_RenderMode: 0 1210 | m_Camera: {fileID: 0} 1211 | m_PlaneDistance: 100 1212 | m_PixelPerfect: 0 1213 | m_ReceivesEvents: 1 1214 | m_OverrideSorting: 0 1215 | m_OverridePixelPerfect: 0 1216 | m_SortingBucketNormalizedSize: 0 1217 | m_SortingLayerID: 0 1218 | m_SortingOrder: 0 1219 | m_TargetDisplay: 0 1220 | --- !u!224 &2124082975 1221 | RectTransform: 1222 | m_ObjectHideFlags: 0 1223 | m_PrefabParentObject: {fileID: 0} 1224 | m_PrefabInternal: {fileID: 0} 1225 | m_GameObject: {fileID: 2124082971} 1226 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1227 | m_LocalPosition: {x: 0, y: 0, z: 0} 1228 | m_LocalScale: {x: 0, y: 0, z: 0} 1229 | m_Children: 1230 | - {fileID: 1377033097} 1231 | m_Father: {fileID: 0} 1232 | m_RootOrder: 2 1233 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1234 | m_AnchorMin: {x: 0, y: 0} 1235 | m_AnchorMax: {x: 0, y: 0} 1236 | m_AnchoredPosition: {x: 0, y: 0} 1237 | m_SizeDelta: {x: 0, y: 0} 1238 | m_Pivot: {x: 0, y: 0} 1239 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes/RectanglePacking.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36dbc0cc6c90c404f811e1204ba5406e 3 | timeCreated: 1483620269 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3fc326779d9242169d45f89519ce594 3 | folderAsset: yes 4 | timeCreated: 1484056007 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scripts/AssetPackerExample.cs: -------------------------------------------------------------------------------- 1 | using DaVikingCode.AssetPacker; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | public class AssetPackerExample : MonoBehaviour { 9 | 10 | public Image anim; 11 | 12 | AssetPacker assetPacker; 13 | 14 | void Start () { 15 | 16 | // We just copy and paste files, so you don't have to do it manually. 17 | CopyPasteFoldersAndPNG(Application.dataPath + "/RuntimeSpriteSheetsGenerator/Demos/Sprites", Application.persistentDataPath); 18 | 19 | string[] files = Directory.GetFiles(Application.persistentDataPath + "/Textures", "*.png"); 20 | 21 | assetPacker = GetComponent(); 22 | 23 | assetPacker.OnProcessCompleted.AddListener(LaunchAnimations); 24 | 25 | assetPacker.AddTexturesToPack(files); 26 | assetPacker.Process(); 27 | } 28 | 29 | void LaunchAnimations() { 30 | 31 | StartCoroutine(LoadAnimation()); 32 | } 33 | 34 | IEnumerator LoadAnimation() { 35 | 36 | Sprite[] sprites = assetPacker.GetSprites("walking"); 37 | 38 | int i = 0; 39 | while (i < sprites.Length) { 40 | 41 | anim.sprite = sprites[i++]; 42 | 43 | yield return new WaitForSeconds(0.1f); 44 | 45 | if (i == sprites.Length) 46 | i = 0; 47 | } 48 | } 49 | 50 | void CopyPasteFoldersAndPNG(string SourcePath, string DestinationPath) { 51 | 52 | foreach (string dirPath in Directory.GetDirectories(SourcePath, "*", SearchOption.AllDirectories)) 53 | Directory.CreateDirectory(dirPath.Replace(SourcePath, DestinationPath)); 54 | 55 | foreach (string newPath in Directory.GetFiles(SourcePath, "*.png", SearchOption.AllDirectories)) 56 | File.Copy(newPath, newPath.Replace(SourcePath, DestinationPath), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scripts/AssetPackerExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6aa16add9ffd040e6a87e6c59e6fc1da 3 | timeCreated: 1484060435 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scripts/RectanglePackingExample.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * Rectangle Packer demo 3 | * 4 | * Copyright 2012 Ville Koskela. All rights reserved. 5 | * Ported to Unity by Da Viking Code. 6 | * 7 | * Email: ville@villekoskela.org 8 | * Blog: http://villekoskela.org 9 | * Twitter: @villekoskelaorg 10 | * 11 | * You may redistribute, use and/or modify this source code freely 12 | * but this copyright statement must not be removed from the source files. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 24 | * 25 | */ 26 | using DaVikingCode.RectanglePacking; 27 | using System; 28 | using System.Collections.Generic; 29 | using UnityEngine; 30 | using UnityEngine.UI; 31 | 32 | public class RectanglePackingExample : MonoBehaviour { 33 | 34 | private const int RECTANGLE_COUNT = 500; 35 | private const float SIZE_MULTIPLIER = 2; 36 | 37 | private Texture2D mTexture; 38 | private Color32[] mFillColor; 39 | 40 | private RectanglePacker mPacker; 41 | 42 | private List mRectangles = new List(); 43 | 44 | public Image img; 45 | public Slider sliderWidth; 46 | public Slider sliderHeight; 47 | public Text packingTimeText; 48 | 49 | void Start () { 50 | 51 | mTexture = new Texture2D((int) sliderWidth.value, (int) sliderHeight.value, TextureFormat.ARGB32, false); 52 | 53 | mFillColor = mTexture.GetPixels32(); 54 | 55 | for (int i = 0; i < mFillColor.Length; ++i) 56 | mFillColor[i] = Color.clear; 57 | 58 | img.sprite = Sprite.Create(mTexture, new Rect(0, 0, mTexture.width, mTexture.height), Vector2.zero); 59 | 60 | createRectangles(); 61 | 62 | updateRectangles(); 63 | 64 | sliderWidth.onValueChanged.AddListener(updatePackingBox); 65 | sliderHeight.onValueChanged.AddListener(updatePackingBox); 66 | } 67 | 68 | void updatePackingBox(float value) { 69 | 70 | updateRectangles(); 71 | } 72 | 73 | private void createRectangles() { 74 | 75 | int width; 76 | int height; 77 | for (int i = 0; i < 10; i++) { 78 | 79 | width = (int) (20 * SIZE_MULTIPLIER + Mathf.Floor(UnityEngine.Random.value * 8) * SIZE_MULTIPLIER * SIZE_MULTIPLIER); 80 | height = (int) (20 * SIZE_MULTIPLIER + Mathf.Floor(UnityEngine.Random.value * 8) * SIZE_MULTIPLIER * SIZE_MULTIPLIER); 81 | mRectangles.Add(new Rect(0, 0, width, height)); 82 | } 83 | 84 | for (int j = 10; j < RECTANGLE_COUNT; j++) { 85 | 86 | width = (int) (3 * SIZE_MULTIPLIER + Mathf.Floor(UnityEngine.Random.value * 8) * SIZE_MULTIPLIER); 87 | height = (int) (3 * SIZE_MULTIPLIER + Mathf.Floor(UnityEngine.Random.value * 8) * SIZE_MULTIPLIER); 88 | mRectangles.Add(new Rect(0, 0, width, height)); 89 | } 90 | } 91 | 92 | private void updateRectangles() { 93 | 94 | DateTime start = DateTime.Now; 95 | const int padding = 1; 96 | 97 | if (mPacker == null) 98 | mPacker = new RectanglePacker((int) sliderWidth.value, (int)sliderHeight.value, padding); 99 | else 100 | mPacker.reset((int) sliderWidth.value, (int) sliderHeight.value, padding); 101 | 102 | for (int i = 0; i < RECTANGLE_COUNT; i++) 103 | mPacker.insertRectangle((int) mRectangles[i].width, (int) mRectangles[i].height, i); 104 | 105 | mPacker.packRectangles(); 106 | 107 | DateTime end = DateTime.Now; 108 | 109 | if (mPacker.rectangleCount > 0) { 110 | 111 | packingTimeText.text = mPacker.rectangleCount + " rectangles packed in " + (end - start).Milliseconds + "ms"; 112 | 113 | mTexture.SetPixels32(mFillColor); 114 | IntegerRectangle rect = new IntegerRectangle(); 115 | Color32[] tmpColor; 116 | 117 | for (int j = 0; j < mPacker.rectangleCount; j++) { 118 | 119 | rect = mPacker.getRectangle(j, rect); 120 | 121 | int size = rect.width * rect.height; 122 | 123 | tmpColor = new Color32[size]; 124 | for (int k = 0; k < size; ++k) 125 | tmpColor[k] = Color.black; 126 | 127 | mTexture.SetPixels32(rect.x, rect.y, rect.width, rect.height, tmpColor); 128 | 129 | int index = mPacker.getRectangleId(j); 130 | Color color = convertHexToRGBA((uint) (0xFF171703 + (((18 * ((index + 4) % 13)) << 16) + ((31 * ((index * 3) % 8)) << 8) + 63 * (((index + 1) * 3) % 5)))); 131 | 132 | size -= 4; 133 | 134 | tmpColor = new Color32[size]; 135 | for (int k = 0; k < size; ++k) 136 | tmpColor[k] = color; 137 | 138 | mTexture.SetPixels32(rect.x + 1, rect.y + 1, rect.width - 2, rect.height - 2, tmpColor); 139 | 140 | } 141 | 142 | mTexture.Apply(); 143 | } 144 | } 145 | 146 | private Color32 convertHexToRGBA(uint color) { 147 | 148 | return new Color32( 149 | (byte)((color >> 16) & 0xFF), 150 | (byte)((color >> 8) & 0xFF), 151 | (byte)((color) & 0xFF), 152 | (byte)((color >> 24) & 0xFF) 153 | ); 154 | } 155 | 156 | } 157 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Scripts/RectanglePackingExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 789a4386042bd41e1b45135103017f8f 3 | timeCreated: 1483965017 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d33bc44b70e24ef5996e8a56f8bea4c 3 | folderAsset: yes 4 | timeCreated: 1484657236 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b933721ef91e4f08ba869732f11dbbc 3 | folderAsset: yes 4 | timeCreated: 1484060693 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0001.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0001.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46c8ed023b2af4e7ea0f578d3178c2d5 3 | timeCreated: 1484058904 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0002.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0002.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0272ed2c0c56e4ba4b14ecf90f63f458 3 | timeCreated: 1484058904 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0003.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0003.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81329780b59794f3ebc47c4b090771fd 3 | timeCreated: 1484058905 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0004.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0004.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c5a5133aed964beeaf64df8222e220a 3 | timeCreated: 1484058905 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0005.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0005.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d3c048ab4ff64b02bebcf51d6bb5fd2 3 | timeCreated: 1484058904 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0006.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0006.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9eaa036a819e344e39048b1a9cd50033 3 | timeCreated: 1484058905 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0007.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0007.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fb0d85e44af74d4bb4e80fb70564ca1 3 | timeCreated: 1484058905 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0008.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0008.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af7bb686a2e9d420eb1a0ea17b75e8d9 3 | timeCreated: 1484058905 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0009.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0009.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a8f58114a4074819b86890b7208b875 3 | timeCreated: 1484058904 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0010.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0010.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6960294fb4a5f4eb6901b001bb862e32 3 | timeCreated: 1484058904 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DaVikingCode/UnityRuntimeSpriteSheetsGenerator/e8680765e0bfc13bf9286bf3521301201a676abe/Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0011.png -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Demos/Sprites/Textures/walking0011.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c8af3bd03c9040fdbd02b78de065e09 3 | timeCreated: 1484058905 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: WebGL 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | spritePackingTag: 98 | userData: 99 | assetBundleName: 100 | assetBundleVariant: 101 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6811943f9cd6542eea8bf0482c66d2d3 3 | folderAsset: yes 4 | timeCreated: 1483611252 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0546dac03719b49759dfd62a9bfe48e1 3 | folderAsset: yes 4 | timeCreated: 1484152048 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker/AssetPacker.cs: -------------------------------------------------------------------------------- 1 | using DaVikingCode.RectanglePacking; 2 | using System; 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using System.IO; 6 | using UnityEngine; 7 | using UnityEngine.Events; 8 | 9 | namespace DaVikingCode.AssetPacker { 10 | 11 | public class AssetPacker : MonoBehaviour { 12 | 13 | public UnityEvent OnProcessCompleted; 14 | public float pixelsPerUnit = 100.0f; 15 | 16 | public bool useCache = false; 17 | public string cacheName = ""; 18 | public int cacheVersion = 1; 19 | public bool deletePreviousCacheVersion = true; 20 | 21 | protected Dictionary mSprites = new Dictionary(); 22 | protected List itemsToRaster = new List(); 23 | 24 | protected bool allow4096Textures = false; 25 | 26 | public void AddTextureToPack(string file, string customID = null) { 27 | 28 | itemsToRaster.Add(new TextureToPack(file, customID != null ? customID : Path.GetFileNameWithoutExtension(file))); 29 | } 30 | 31 | public void AddTexturesToPack(string[] files) { 32 | 33 | foreach (string file in files) 34 | AddTextureToPack(file); 35 | } 36 | 37 | public void Process(bool allow4096Textures = false) { 38 | 39 | this.allow4096Textures = allow4096Textures; 40 | 41 | if (useCache) { 42 | 43 | if (cacheName == "") 44 | throw new Exception("No cache name specified"); 45 | 46 | string path = Application.persistentDataPath + "/AssetPacker/" + cacheName + "/" + cacheVersion + "/"; 47 | 48 | bool cacheExist = Directory.Exists(path); 49 | 50 | if (!cacheExist) 51 | StartCoroutine(createPack(path)); 52 | else 53 | StartCoroutine(loadPack(path)); 54 | 55 | } else 56 | StartCoroutine(createPack()); 57 | 58 | } 59 | 60 | protected IEnumerator createPack(string savePath = "") { 61 | 62 | if (savePath != "") { 63 | 64 | if (deletePreviousCacheVersion && Directory.Exists(Application.persistentDataPath + "/AssetPacker/" + cacheName + "/")) 65 | foreach (string dirPath in Directory.GetDirectories(Application.persistentDataPath + "/AssetPacker/" + cacheName + "/", "*", SearchOption.AllDirectories)) 66 | Directory.Delete(dirPath, true); 67 | 68 | Directory.CreateDirectory(savePath); 69 | } 70 | 71 | List textures = new List(); 72 | List images = new List(); 73 | 74 | foreach (TextureToPack itemToRaster in itemsToRaster) { 75 | 76 | WWW loader = new WWW("file:///" + itemToRaster.file); 77 | 78 | yield return loader; 79 | 80 | textures.Add(loader.texture); 81 | images.Add(itemToRaster.id); 82 | } 83 | 84 | int textureSize = allow4096Textures ? 4096 : 2048; 85 | 86 | List rectangles = new List(); 87 | for (int i = 0; i < textures.Count; i++) 88 | if (textures[i].width > textureSize || textures[i].height > textureSize) 89 | throw new Exception("A texture size is bigger than the sprite sheet size!"); 90 | else 91 | rectangles.Add(new Rect(0, 0, textures[i].width, textures[i].height)); 92 | 93 | const int padding = 1; 94 | 95 | int numSpriteSheet = 0; 96 | while (rectangles.Count > 0) { 97 | 98 | Texture2D texture = new Texture2D(textureSize, textureSize, TextureFormat.ARGB32, false); 99 | Color32[] fillColor = texture.GetPixels32(); 100 | for (int i = 0; i < fillColor.Length; ++i) 101 | fillColor[i] = Color.clear; 102 | 103 | RectanglePacker packer = new RectanglePacker(texture.width, texture.height, padding); 104 | 105 | for (int i = 0; i < rectangles.Count; i++) 106 | packer.insertRectangle((int) rectangles[i].width, (int) rectangles[i].height, i); 107 | 108 | packer.packRectangles(); 109 | 110 | if (packer.rectangleCount > 0) { 111 | 112 | texture.SetPixels32(fillColor); 113 | IntegerRectangle rect = new IntegerRectangle(); 114 | List textureAssets = new List(); 115 | 116 | List garbageRect = new List(); 117 | List garabeTextures = new List(); 118 | List garbageImages = new List(); 119 | 120 | for (int j = 0; j < packer.rectangleCount; j++) { 121 | 122 | rect = packer.getRectangle(j, rect); 123 | 124 | int index = packer.getRectangleId(j); 125 | 126 | texture.SetPixels32(rect.x, rect.y, rect.width, rect.height, textures[index].GetPixels32()); 127 | 128 | TextureAsset textureAsset = new TextureAsset(); 129 | textureAsset.x = rect.x; 130 | textureAsset.y = rect.y; 131 | textureAsset.width = rect.width; 132 | textureAsset.height = rect.height; 133 | textureAsset.name = images[index]; 134 | 135 | textureAssets.Add(textureAsset); 136 | 137 | garbageRect.Add(rectangles[index]); 138 | garabeTextures.Add(textures[index]); 139 | garbageImages.Add(images[index]); 140 | } 141 | 142 | foreach (Rect garbage in garbageRect) 143 | rectangles.Remove(garbage); 144 | 145 | foreach (Texture2D garbage in garabeTextures) 146 | textures.Remove(garbage); 147 | 148 | foreach (string garbage in garbageImages) 149 | images.Remove(garbage); 150 | 151 | texture.Apply(); 152 | 153 | if (savePath != "") { 154 | 155 | File.WriteAllBytes(savePath + "/data" + numSpriteSheet + ".png", texture.EncodeToPNG()); 156 | File.WriteAllText(savePath + "/data" + numSpriteSheet + ".json", JsonUtility.ToJson(new TextureAssets(textureAssets.ToArray()))); 157 | ++numSpriteSheet; 158 | } 159 | 160 | foreach (TextureAsset textureAsset in textureAssets) 161 | mSprites.Add(textureAsset.name, Sprite.Create(texture, new Rect(textureAsset.x, textureAsset.y, textureAsset.width, textureAsset.height), Vector2.zero, pixelsPerUnit, 0, SpriteMeshType.FullRect)); 162 | } 163 | 164 | } 165 | 166 | OnProcessCompleted.Invoke(); 167 | } 168 | 169 | protected IEnumerator loadPack(string savePath) { 170 | 171 | int numFiles = Directory.GetFiles(savePath).Length; 172 | 173 | for (int i = 0; i < numFiles / 2; ++i) { 174 | 175 | WWW loaderTexture = new WWW("file:///" + savePath + "/data" + i + ".png"); 176 | yield return loaderTexture; 177 | 178 | WWW loaderJSON = new WWW("file:///" + savePath + "/data" + i + ".json"); 179 | yield return loaderJSON; 180 | 181 | TextureAssets textureAssets = JsonUtility.FromJson (loaderJSON.text); 182 | 183 | Texture2D t = loaderTexture.texture; // prevent creating a new Texture2D each time. 184 | foreach (TextureAsset textureAsset in textureAssets.assets) 185 | mSprites.Add(textureAsset.name, Sprite.Create(t, new Rect(textureAsset.x, textureAsset.y, textureAsset.width, textureAsset.height), Vector2.zero, pixelsPerUnit, 0, SpriteMeshType.FullRect)); 186 | } 187 | 188 | yield return null; 189 | 190 | OnProcessCompleted.Invoke(); 191 | } 192 | 193 | public void Dispose() { 194 | 195 | foreach (var asset in mSprites) 196 | Destroy(asset.Value.texture); 197 | 198 | mSprites.Clear(); 199 | } 200 | 201 | void Destroy() { 202 | 203 | Dispose(); 204 | } 205 | 206 | public Sprite GetSprite(string id) { 207 | 208 | Sprite sprite = null; 209 | 210 | mSprites.TryGetValue (id, out sprite); 211 | 212 | return sprite; 213 | } 214 | 215 | public Sprite[] GetSprites(string prefix) { 216 | 217 | List spriteNames = new List(); 218 | foreach (var asset in mSprites) 219 | if (asset.Key.StartsWith(prefix)) 220 | spriteNames.Add(asset.Key); 221 | 222 | spriteNames.Sort(StringComparer.Ordinal); 223 | 224 | List sprites = new List(); 225 | Sprite sprite; 226 | for (int i = 0; i < spriteNames.Count; ++i) { 227 | 228 | mSprites.TryGetValue(spriteNames[i], out sprite); 229 | 230 | sprites.Add(sprite); 231 | } 232 | 233 | return sprites.ToArray(); 234 | } 235 | } 236 | } 237 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker/AssetPacker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74f2e23464b984a9eaaed29b14be63f5 3 | timeCreated: 1484223495 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker/TextureAsset.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace DaVikingCode.AssetPacker { 4 | 5 | [Serializable] 6 | public class TextureAssets { 7 | 8 | public TextureAsset[] assets; 9 | 10 | public TextureAssets (TextureAsset[] assets) { 11 | 12 | this.assets = assets; 13 | } 14 | } 15 | 16 | [Serializable] 17 | public class TextureAsset { 18 | 19 | public int x; 20 | public int y; 21 | public int width; 22 | public int height; 23 | public string name; 24 | } 25 | } -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker/TextureAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cbe4258fbd824f3ea9d1368e9bd6335 3 | timeCreated: 1484152089 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker/TextureToPack.cs: -------------------------------------------------------------------------------- 1 | namespace DaVikingCode.AssetPacker { 2 | 3 | public class TextureToPack { 4 | 5 | public string file; 6 | public string id; 7 | 8 | public TextureToPack(string file, string id) { 9 | 10 | this.file = file; 11 | this.id = id; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/AssetPacker/TextureToPack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53af3e867696b4df18e65f009c19b15b 3 | timeCreated: 1484224308 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 711536c637f824e39b4bcf5839cc9112 3 | folderAsset: yes 4 | timeCreated: 1484056639 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking/IntegerRectangle.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * Integer rectangle 3 | * 4 | * Copyright 2012 Ville Koskela. All rights reserved. 5 | * Ported to Unity by Da Viking Code. 6 | * 7 | * Email: ville@villekoskela.org 8 | * Blog: http://villekoskela.org 9 | * Twitter: @villekoskelaorg 10 | * 11 | * You may redistribute, use and/or modify this source code freely 12 | * but this copyright statement must not be removed from the source files. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 24 | * 25 | */ 26 | namespace DaVikingCode.RectanglePacking { 27 | 28 | /** 29 | * Class used to store rectangles values inside rectangle packer 30 | * ID parameter needed to connect rectangle with the originally inserted rectangle 31 | */ 32 | public class IntegerRectangle { 33 | 34 | public int x; 35 | public int y; 36 | public int width; 37 | public int height; 38 | public int right; 39 | public int bottom; 40 | public int id; 41 | 42 | public IntegerRectangle(int x = 0, int y = 0, int width = 0, int height = 0) { 43 | 44 | this.x = x; 45 | this.y = y; 46 | this.width = width; 47 | this.height = height; 48 | this.right = x + width; 49 | this.bottom = y + height; 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking/IntegerRectangle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 308ac80707dbc4d9d925be4962e8dcc3 3 | timeCreated: 1483611285 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking/RectanglePacker.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * Rectangle packer 3 | * 4 | * Copyright 2012 Ville Koskela. All rights reserved. 5 | * Ported to Unity by Da Viking Code. 6 | * 7 | * Email: ville@villekoskela.org 8 | * Blog: http://villekoskela.org 9 | * Twitter: @villekoskelaorg 10 | * 11 | * You may redistribute, use and/or modify this source code freely 12 | * but this copyright statement must not be removed from the source files. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 24 | * 25 | */ 26 | using System.Collections.Generic; 27 | 28 | namespace DaVikingCode.RectanglePacking { 29 | 30 | /** 31 | * Class used to pack rectangles within container rectangle with close to optimal solution. 32 | */ 33 | public class RectanglePacker { 34 | 35 | static public readonly string VERSION = "1.3.0"; 36 | 37 | private int mWidth = 0; 38 | private int mHeight = 0; 39 | private int mPadding = 8; 40 | 41 | private int mPackedWidth = 0; 42 | private int mPackedHeight = 0; 43 | 44 | private List mInsertList = new List(); 45 | 46 | private List mInsertedRectangles = new List(); 47 | private List mFreeAreas = new List(); 48 | private List mNewFreeAreas = new List(); 49 | 50 | private IntegerRectangle mOutsideRectangle; 51 | 52 | private List mSortableSizeStack = new List(); 53 | private List mRectangleStack = new List(); 54 | 55 | public int rectangleCount { get { return mInsertedRectangles.Count; } } 56 | 57 | public int packedWidth { get { return mPackedWidth; } } 58 | public int packedHeight { get { return mPackedHeight; } } 59 | 60 | public int padding { get { return mPadding; } } 61 | 62 | public RectanglePacker(int width, int height, int padding = 0) { 63 | 64 | mOutsideRectangle = new IntegerRectangle(width + 1, height + 1, 0, 0); 65 | reset(width, height, padding); 66 | } 67 | 68 | public void reset(int width, int height, int padding = 0) { 69 | 70 | while (mInsertedRectangles.Count > 0) 71 | freeRectangle(mInsertedRectangles.Pop()); 72 | 73 | while (mFreeAreas.Count > 0) 74 | freeRectangle(mFreeAreas.Pop()); 75 | 76 | mWidth = width; 77 | mHeight = height; 78 | 79 | mPackedWidth = 0; 80 | mPackedHeight = 0; 81 | 82 | mFreeAreas.Add(allocateRectangle(0, 0, mWidth, mHeight)); 83 | 84 | while (mInsertList.Count > 0) 85 | freeSize(mInsertList.Pop()); 86 | 87 | mPadding = padding; 88 | } 89 | 90 | public IntegerRectangle getRectangle(int index, IntegerRectangle rectangle) { 91 | 92 | IntegerRectangle inserted = mInsertedRectangles[index]; 93 | 94 | rectangle.x = inserted.x; 95 | rectangle.y = inserted.y; 96 | rectangle.width = inserted.width; 97 | rectangle.height = inserted.height; 98 | 99 | return rectangle; 100 | } 101 | 102 | public int getRectangleId(int index) { 103 | 104 | IntegerRectangle inserted = mInsertedRectangles[index]; 105 | return inserted.id; 106 | } 107 | 108 | public void insertRectangle(int width, int height, int id) { 109 | 110 | SortableSize sortableSize = allocateSize(width, height, id); 111 | mInsertList.Add(sortableSize); 112 | } 113 | 114 | public int packRectangles(bool sort = true) { 115 | 116 | if (sort) 117 | mInsertList.Sort((emp1, emp2)=>emp1.width.CompareTo(emp2.width)); 118 | 119 | while (mInsertList.Count > 0) { 120 | 121 | SortableSize sortableSize = mInsertList.Pop(); 122 | int width = sortableSize.width; 123 | int height = sortableSize.height; 124 | 125 | int index = getFreeAreaIndex(width, height); 126 | if (index >= 0) { 127 | 128 | IntegerRectangle freeArea = mFreeAreas[index]; 129 | IntegerRectangle target = allocateRectangle(freeArea.x, freeArea.y, width, height); 130 | target.id = sortableSize.id; 131 | 132 | // Generate the new free areas, these are parts of the old ones intersected or touched by the target 133 | generateNewFreeAreas(target, mFreeAreas, mNewFreeAreas); 134 | 135 | while (mNewFreeAreas.Count > 0) 136 | mFreeAreas.Add(mNewFreeAreas.Pop()); 137 | 138 | mInsertedRectangles.Add(target); 139 | 140 | if (target.right > mPackedWidth) 141 | mPackedWidth = target.right; 142 | 143 | if (target.bottom > mPackedHeight) 144 | mPackedHeight = target.bottom; 145 | } 146 | 147 | freeSize(sortableSize); 148 | } 149 | 150 | return rectangleCount; 151 | } 152 | 153 | private void filterSelfSubAreas(List areas) { 154 | 155 | for (int i = areas.Count - 1; i >= 0; i--) { 156 | 157 | IntegerRectangle filtered = areas[i]; 158 | for (int j = areas.Count - 1; j >= 0; j--) { 159 | 160 | if (i != j) { 161 | 162 | IntegerRectangle area = areas[j]; 163 | if (filtered.x >= area.x && filtered.y >= area.y && filtered.right <= area.right && filtered.bottom <= area.bottom) { 164 | 165 | freeRectangle(filtered); 166 | IntegerRectangle topOfStack = areas.Pop(); 167 | if (i < areas.Count) { 168 | 169 | // Move the one on the top to the freed position 170 | areas[i] = topOfStack; 171 | } 172 | break; 173 | } 174 | } 175 | } 176 | } 177 | } 178 | 179 | private void generateNewFreeAreas(IntegerRectangle target, List areas, List results) { 180 | 181 | // Increase dimensions by one to get the areas on right / bottom this rectangle touches 182 | // Also add the padding here 183 | int x = target.x; 184 | int y = target.y; 185 | int right = target.right + 1 + mPadding; 186 | int bottom = target.bottom + 1 + mPadding; 187 | 188 | IntegerRectangle targetWithPadding = null; 189 | if (mPadding == 0) 190 | targetWithPadding = target; 191 | 192 | for (int i = areas.Count - 1; i >= 0; i--) { 193 | 194 | IntegerRectangle area = areas[i]; 195 | if (!(x >= area.right || right <= area.x || y >= area.bottom || bottom <= area.y)) { 196 | 197 | if (targetWithPadding == null) 198 | targetWithPadding = allocateRectangle(target.x, target.y, target.width + mPadding, target.height + mPadding); 199 | 200 | generateDividedAreas(targetWithPadding, area, results); 201 | IntegerRectangle topOfStack = areas.Pop(); 202 | if (i < areas.Count) { 203 | 204 | // Move the one on the top to the freed position 205 | areas[i] = topOfStack; 206 | } 207 | } 208 | } 209 | 210 | if (targetWithPadding != null && targetWithPadding != target) 211 | freeRectangle(targetWithPadding); 212 | 213 | filterSelfSubAreas(results); 214 | } 215 | 216 | private void generateDividedAreas(IntegerRectangle divider, IntegerRectangle area, List results) { 217 | 218 | int count = 0; 219 | 220 | int rightDelta = area.right - divider.right; 221 | if (rightDelta > 0) { 222 | results.Add(allocateRectangle(divider.right, area.y, rightDelta, area.height)); 223 | count++; 224 | } 225 | 226 | int leftDelta = divider.x - area.x; 227 | if (leftDelta > 0) { 228 | results.Add(allocateRectangle(area.x, area.y, leftDelta, area.height)); 229 | count++; 230 | } 231 | 232 | int bottomDelta = area.bottom - divider.bottom; 233 | if (bottomDelta > 0) { 234 | results.Add(allocateRectangle(area.x, divider.bottom, area.width, bottomDelta)); 235 | count++; 236 | } 237 | 238 | int topDelta = divider.y - area.y; 239 | if (topDelta > 0) { 240 | results.Add(allocateRectangle(area.x, area.y, area.width, topDelta)); 241 | count++; 242 | } 243 | 244 | if (count == 0 && (divider.width < area.width || divider.height < area.height)) { 245 | 246 | // Only touching the area, store the area itself 247 | results.Add(area); 248 | 249 | } else 250 | freeRectangle(area); 251 | } 252 | 253 | private int getFreeAreaIndex(int width, int height) { 254 | 255 | IntegerRectangle best = mOutsideRectangle; 256 | int index = -1; 257 | 258 | int paddedWidth = width + mPadding; 259 | int paddedHeight = height + mPadding; 260 | 261 | int count = mFreeAreas.Count; 262 | for (int i = count - 1; i >= 0; i--) { 263 | 264 | IntegerRectangle free = mFreeAreas[i]; 265 | if (free.x < mPackedWidth || free.y < mPackedHeight) { 266 | 267 | // Within the packed area, padding required 268 | if (free.x < best.x && paddedWidth <= free.width && paddedHeight <= free.height) { 269 | 270 | index = i; 271 | if ((paddedWidth == free.width && free.width <= free.height && free.right < mWidth) || (paddedHeight == free.height && free.height <= free.width)) 272 | break; 273 | 274 | best = free; 275 | } 276 | 277 | } else { 278 | 279 | // Outside the current packed area, no padding required 280 | if (free.x < best.x && width <= free.width && height <= free.height) { 281 | 282 | index = i; 283 | if ((width == free.width && free.width <= free.height && free.right < mWidth) || (height == free.height && free.height <= free.width)) 284 | break; 285 | 286 | best = free; 287 | } 288 | } 289 | } 290 | 291 | return index; 292 | } 293 | 294 | private IntegerRectangle allocateRectangle(int x, int y, int width, int height) { 295 | 296 | if (mRectangleStack.Count > 0) { 297 | 298 | IntegerRectangle rectangle = mRectangleStack.Pop(); 299 | rectangle.x = x; 300 | rectangle.y = y; 301 | rectangle.width = width; 302 | rectangle.height = height; 303 | rectangle.right = x + width; 304 | rectangle.bottom = y + height; 305 | 306 | return rectangle; 307 | } 308 | 309 | return new IntegerRectangle(x, y, width, height); 310 | } 311 | 312 | private void freeRectangle(IntegerRectangle rectangle) { 313 | 314 | mRectangleStack.Add(rectangle); 315 | } 316 | 317 | private SortableSize allocateSize(int width, int height, int id) { 318 | 319 | if (mSortableSizeStack.Count > 0) { 320 | 321 | SortableSize size = mSortableSizeStack.Pop(); 322 | size.width = width; 323 | size.height = height; 324 | size.id = id; 325 | 326 | return size; 327 | } 328 | 329 | return new SortableSize(width, height, id); 330 | } 331 | 332 | private void freeSize(SortableSize size) { 333 | 334 | mSortableSizeStack.Add(size); 335 | } 336 | } 337 | 338 | static class ListExtension { 339 | 340 | static public T Pop(this List list) { 341 | 342 | int index = list.Count - 1; 343 | 344 | T r = list[index]; 345 | list.RemoveAt(index); 346 | return r; 347 | } 348 | 349 | } 350 | } -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking/RectanglePacker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1523b45d215b44e4a0e5c9a462a7126 3 | timeCreated: 1483611552 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking/SortableSize.cs: -------------------------------------------------------------------------------- 1 | /** 2 | * Sortable size 3 | * 4 | * Copyright 2012 Ville Koskela. All rights reserved. 5 | * Ported to Unity by Da Viking Code. 6 | * 7 | * Email: ville@villekoskela.org 8 | * Blog: http://villekoskela.org 9 | * Twitter: @villekoskelaorg 10 | * 11 | * You may redistribute, use and/or modify this source code freely 12 | * but this copyright statement must not be removed from the source files. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 24 | * 25 | */ 26 | namespace DaVikingCode.RectanglePacking { 27 | 28 | /** 29 | * Class used for sorting the inserted rectangles based on the dimensions 30 | */ 31 | public class SortableSize { 32 | 33 | public int width; 34 | public int height; 35 | public int id; 36 | 37 | public SortableSize(int width, int height, int id) { 38 | 39 | this.width = width; 40 | this.height = height; 41 | this.id = id; 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/RuntimeSpriteSheetsGenerator/Scripts/RectanglePacking/SortableSize.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6260815a395f4afd873579eb3658eea 3 | timeCreated: 1483611465 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Da Viking Code 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_DisableAudio: 0 16 | m_VirtualizeEffects: 1 17 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes/RectanglePacking.unity 10 | - enabled: 1 11 | path: Assets/RuntimeSpriteSheetsGenerator/Demos/Scenes/AssetPacker.unity 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_DefaultBehaviorMode: 1 10 | m_SpritePackerMode: 2 11 | m_SpritePackerPaddingPower: 1 12 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 13 | m_ProjectGenerationRootNamespace: 14 | m_UserGeneratedProjectSuffix: 15 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_TierSettings_Tier1: 43 | renderingPath: 1 44 | useCascadedShadowMaps: 1 45 | m_TierSettings_Tier2: 46 | renderingPath: 1 47 | useCascadedShadowMaps: 1 48 | m_TierSettings_Tier3: 49 | renderingPath: 1 50 | useCascadedShadowMaps: 1 51 | m_DefaultRenderingPath: 1 52 | m_DefaultMobileRenderingPath: 1 53 | m_TierSettings: [] 54 | m_LightmapStripping: 0 55 | m_FogStripping: 0 56 | m_LightmapKeepPlain: 1 57 | m_LightmapKeepDirCombined: 1 58 | m_LightmapKeepDirSeparate: 1 59 | m_LightmapKeepDynamicPlain: 1 60 | m_LightmapKeepDynamicDirCombined: 1 61 | m_LightmapKeepDynamicDirSeparate: 1 62 | m_FogKeepLinear: 1 63 | m_FogKeepExp: 1 64 | m_FogKeepExp2: 1 65 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_MinPenetrationForPenalty: 0.01 17 | m_BaumgarteScale: 0.2 18 | m_BaumgarteTimeOfImpactScale: 0.75 19 | m_TimeToSleep: 0.5 20 | m_LinearSleepTolerance: 0.01 21 | m_AngularSleepTolerance: 2 22 | m_QueriesHitTriggers: 1 23 | m_QueriesStartInColliders: 1 24 | m_ChangeStopsCallbacks: 0 25 | m_AlwaysShowColliders: 0 26 | m_ShowColliderSleep: 1 27 | m_ShowColliderContacts: 0 28 | m_ShowColliderAABB: 0 29 | m_ContactArrowScale: 0.2 30 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 31 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 32 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 33 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 34 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 35 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 10 7 | productGUID: 7b9e27ceeb79c4ad4a6024733138382e 8 | AndroidProfiler: 0 9 | defaultScreenOrientation: 4 10 | targetDevice: 2 11 | useOnDemandResources: 0 12 | accelerometerFrequency: 60 13 | companyName: Da Viking Code 14 | productName: RuntimeSpriteSheetsGenerator 15 | defaultCursor: {fileID: 0} 16 | cursorHotspot: {x: 0, y: 0} 17 | m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1} 18 | m_ShowUnitySplashScreen: 1 19 | m_ShowUnitySplashLogo: 1 20 | m_SplashScreenOverlayOpacity: 1 21 | m_SplashScreenAnimation: 1 22 | m_SplashScreenLogoStyle: 1 23 | m_SplashScreenDrawMode: 0 24 | m_SplashScreenBackgroundAnimationZoom: 1 25 | m_SplashScreenLogoAnimationZoom: 1 26 | m_SplashScreenBackgroundLandscapeAspect: 1 27 | m_SplashScreenBackgroundPortraitAspect: 1 28 | m_SplashScreenBackgroundLandscapeUvs: 29 | serializedVersion: 2 30 | x: 0 31 | y: 0 32 | width: 1 33 | height: 1 34 | m_SplashScreenBackgroundPortraitUvs: 35 | serializedVersion: 2 36 | x: 0 37 | y: 0 38 | width: 1 39 | height: 1 40 | m_SplashScreenLogos: [] 41 | m_SplashScreenBackgroundLandscape: {fileID: 0} 42 | m_SplashScreenBackgroundPortrait: {fileID: 0} 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_MobileMTRendering: 0 53 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 54 | iosShowActivityIndicatorOnLoading: -1 55 | androidShowActivityIndicatorOnLoading: -1 56 | tizenShowActivityIndicatorOnLoading: -1 57 | iosAppInBackgroundBehavior: 0 58 | displayResolutionDialog: 1 59 | iosAllowHTTPDownload: 1 60 | allowedAutorotateToPortrait: 1 61 | allowedAutorotateToPortraitUpsideDown: 1 62 | allowedAutorotateToLandscapeRight: 1 63 | allowedAutorotateToLandscapeLeft: 1 64 | useOSAutorotation: 1 65 | use32BitDisplayBuffer: 1 66 | disableDepthAndStencilBuffers: 0 67 | defaultIsFullScreen: 1 68 | defaultIsNativeResolution: 1 69 | runInBackground: 0 70 | captureSingleScreen: 0 71 | muteOtherAudioSources: 0 72 | Prepare IOS For Recording: 0 73 | submitAnalytics: 1 74 | usePlayerLog: 1 75 | bakeCollisionMeshes: 0 76 | forceSingleInstance: 0 77 | resizableWindow: 0 78 | useMacAppStoreValidation: 0 79 | gpuSkinning: 0 80 | graphicsJobs: 0 81 | xboxPIXTextureCapture: 0 82 | xboxEnableAvatar: 0 83 | xboxEnableKinect: 0 84 | xboxEnableKinectAutoTracking: 0 85 | xboxEnableFitness: 0 86 | visibleInBackground: 0 87 | allowFullscreenSwitch: 1 88 | macFullscreenMode: 2 89 | d3d9FullscreenMode: 1 90 | d3d11FullscreenMode: 1 91 | xboxSpeechDB: 0 92 | xboxEnableHeadOrientation: 0 93 | xboxEnableGuest: 0 94 | xboxEnablePIXSampling: 0 95 | n3dsDisableStereoscopicView: 0 96 | n3dsEnableSharedListOpt: 1 97 | n3dsEnableVSync: 0 98 | uiUse16BitDepthBuffer: 0 99 | ignoreAlphaClear: 0 100 | xboxOneResolution: 0 101 | xboxOneMonoLoggingLevel: 0 102 | xboxOneLoggingLevel: 1 103 | videoMemoryForVertexBuffers: 0 104 | psp2PowerMode: 0 105 | psp2AcquireBGM: 1 106 | wiiUTVResolution: 0 107 | wiiUGamePadMSAA: 1 108 | wiiUSupportsNunchuk: 0 109 | wiiUSupportsClassicController: 0 110 | wiiUSupportsBalanceBoard: 0 111 | wiiUSupportsMotionPlus: 0 112 | wiiUSupportsProController: 0 113 | wiiUAllowScreenCapture: 1 114 | wiiUControllerCount: 0 115 | m_SupportedAspectRatios: 116 | 4:3: 1 117 | 5:4: 1 118 | 16:10: 1 119 | 16:9: 1 120 | Others: 1 121 | bundleIdentifier: com.davikingcode.RuntimeSpriteSheetsGenerator 122 | bundleVersion: 1.0 123 | preloadedAssets: [] 124 | metroInputSource: 0 125 | m_HolographicPauseOnTrackingLoss: 1 126 | xboxOneDisableKinectGpuReservation: 0 127 | protectGraphicsMemory: 0 128 | AndroidBundleVersionCode: 1 129 | AndroidMinSdkVersion: 9 130 | AndroidPreferredInstallLocation: 1 131 | aotOptions: 132 | apiCompatibilityLevel: 2 133 | stripEngineCode: 1 134 | iPhoneStrippingLevel: 0 135 | iPhoneScriptCallOptimization: 0 136 | iPhoneBuildNumber: 0 137 | ForceInternetPermission: 0 138 | ForceSDCardPermission: 0 139 | CreateWallpaper: 0 140 | APKExpansionFiles: 0 141 | preloadShaders: 0 142 | StripUnusedMeshComponents: 0 143 | VertexChannelCompressionMask: 144 | serializedVersion: 2 145 | m_Bits: 238 146 | iPhoneSdkVersion: 988 147 | iOSTargetOSVersionString: 148 | tvOSSdkVersion: 0 149 | tvOSRequireExtendedGameController: 0 150 | tvOSTargetOSVersionString: 151 | uIPrerenderedIcon: 0 152 | uIRequiresPersistentWiFi: 0 153 | uIRequiresFullScreen: 1 154 | uIStatusBarHidden: 1 155 | uIExitOnSuspend: 0 156 | uIStatusBarStyle: 0 157 | iPhoneSplashScreen: {fileID: 0} 158 | iPhoneHighResSplashScreen: {fileID: 0} 159 | iPhoneTallHighResSplashScreen: {fileID: 0} 160 | iPhone47inSplashScreen: {fileID: 0} 161 | iPhone55inPortraitSplashScreen: {fileID: 0} 162 | iPhone55inLandscapeSplashScreen: {fileID: 0} 163 | iPadPortraitSplashScreen: {fileID: 0} 164 | iPadHighResPortraitSplashScreen: {fileID: 0} 165 | iPadLandscapeSplashScreen: {fileID: 0} 166 | iPadHighResLandscapeSplashScreen: {fileID: 0} 167 | appleTVSplashScreen: {fileID: 0} 168 | tvOSSmallIconLayers: [] 169 | tvOSLargeIconLayers: [] 170 | tvOSTopShelfImageLayers: [] 171 | tvOSTopShelfImageWideLayers: [] 172 | iOSLaunchScreenType: 0 173 | iOSLaunchScreenPortrait: {fileID: 0} 174 | iOSLaunchScreenLandscape: {fileID: 0} 175 | iOSLaunchScreenBackgroundColor: 176 | serializedVersion: 2 177 | rgba: 0 178 | iOSLaunchScreenFillPct: 100 179 | iOSLaunchScreenSize: 100 180 | iOSLaunchScreenCustomXibPath: 181 | iOSLaunchScreeniPadType: 0 182 | iOSLaunchScreeniPadImage: {fileID: 0} 183 | iOSLaunchScreeniPadBackgroundColor: 184 | serializedVersion: 2 185 | rgba: 0 186 | iOSLaunchScreeniPadFillPct: 100 187 | iOSLaunchScreeniPadSize: 100 188 | iOSLaunchScreeniPadCustomXibPath: 189 | iOSDeviceRequirements: [] 190 | iOSURLSchemes: [] 191 | iOSBackgroundModes: 0 192 | iOSMetalForceHardShadows: 0 193 | appleDeveloperTeamID: 194 | AndroidTargetDevice: 0 195 | AndroidSplashScreenScale: 0 196 | androidSplashScreen: {fileID: 0} 197 | AndroidKeystoreName: 198 | AndroidKeyaliasName: 199 | AndroidTVCompatibility: 1 200 | AndroidIsGame: 1 201 | androidEnableBanner: 1 202 | m_AndroidBanners: 203 | - width: 320 204 | height: 180 205 | banner: {fileID: 0} 206 | androidGamepadSupportLevel: 0 207 | resolutionDialogBanner: {fileID: 0} 208 | m_BuildTargetIcons: [] 209 | m_BuildTargetBatching: [] 210 | m_BuildTargetGraphicsAPIs: [] 211 | m_BuildTargetVRSettings: [] 212 | openGLRequireES31: 0 213 | openGLRequireES31AEP: 0 214 | webPlayerTemplate: APPLICATION:Default 215 | m_TemplateCustomTags: {} 216 | wiiUTitleID: 0005000011000000 217 | wiiUGroupID: 00010000 218 | wiiUCommonSaveSize: 4096 219 | wiiUAccountSaveSize: 2048 220 | wiiUOlvAccessKey: 0 221 | wiiUTinCode: 0 222 | wiiUJoinGameId: 0 223 | wiiUJoinGameModeMask: 0000000000000000 224 | wiiUCommonBossSize: 0 225 | wiiUAccountBossSize: 0 226 | wiiUAddOnUniqueIDs: [] 227 | wiiUMainThreadStackSize: 3072 228 | wiiULoaderThreadStackSize: 1024 229 | wiiUSystemHeapSize: 128 230 | wiiUTVStartupScreen: {fileID: 0} 231 | wiiUGamePadStartupScreen: {fileID: 0} 232 | wiiUDrcBufferDisabled: 0 233 | wiiUProfilerLibPath: 234 | actionOnDotNetUnhandledException: 1 235 | enableInternalProfiler: 0 236 | logObjCUncaughtExceptions: 1 237 | enableCrashReportAPI: 0 238 | cameraUsageDescription: 239 | locationUsageDescription: 240 | microphoneUsageDescription: 241 | XboxTitleId: 242 | XboxImageXexPath: 243 | XboxSpaPath: 244 | XboxGenerateSpa: 0 245 | XboxDeployKinectResources: 0 246 | XboxSplashScreen: {fileID: 0} 247 | xboxEnableSpeech: 0 248 | xboxAdditionalTitleMemorySize: 0 249 | xboxDeployKinectHeadOrientation: 0 250 | xboxDeployKinectHeadPosition: 0 251 | ps4NPAgeRating: 12 252 | ps4NPTitleSecret: 253 | ps4NPTrophyPackPath: 254 | ps4ParentalLevel: 1 255 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 256 | ps4Category: 0 257 | ps4MasterVersion: 01.00 258 | ps4AppVersion: 01.00 259 | ps4AppType: 0 260 | ps4ParamSfxPath: 261 | ps4VideoOutPixelFormat: 0 262 | ps4VideoOutInitialWidth: 1920 263 | ps4VideoOutReprojectionRate: 120 264 | ps4PronunciationXMLPath: 265 | ps4PronunciationSIGPath: 266 | ps4BackgroundImagePath: 267 | ps4StartupImagePath: 268 | ps4SaveDataImagePath: 269 | ps4SdkOverride: 270 | ps4BGMPath: 271 | ps4ShareFilePath: 272 | ps4ShareOverlayImagePath: 273 | ps4PrivacyGuardImagePath: 274 | ps4NPtitleDatPath: 275 | ps4RemotePlayKeyAssignment: -1 276 | ps4RemotePlayKeyMappingDir: 277 | ps4PlayTogetherPlayerCount: 0 278 | ps4EnterButtonAssignment: 1 279 | ps4ApplicationParam1: 0 280 | ps4ApplicationParam2: 0 281 | ps4ApplicationParam3: 0 282 | ps4ApplicationParam4: 0 283 | ps4DownloadDataSize: 0 284 | ps4GarlicHeapSize: 2048 285 | ps4Passcode: 5PN2qmWqBlQ9wQj99nsQzldVI5ZuGXbE 286 | ps4UseDebugIl2cppLibs: 0 287 | ps4pnSessions: 1 288 | ps4pnPresence: 1 289 | ps4pnFriends: 1 290 | ps4pnGameCustomData: 1 291 | playerPrefsSupport: 0 292 | restrictedAudioUsageRights: 0 293 | ps4UseResolutionFallback: 0 294 | ps4ReprojectionSupport: 0 295 | ps4UseAudio3dBackend: 0 296 | ps4SocialScreenEnabled: 0 297 | ps4ScriptOptimizationLevel: 3 298 | ps4Audio3dVirtualSpeakerCount: 14 299 | ps4attribCpuUsage: 0 300 | ps4PatchPkgPath: 301 | ps4PatchLatestPkgPath: 302 | ps4PatchChangeinfoPath: 303 | ps4PatchDayOne: 0 304 | ps4attribUserManagement: 0 305 | ps4attribMoveSupport: 0 306 | ps4attrib3DSupport: 0 307 | ps4attribShareSupport: 0 308 | ps4attribExclusiveVR: 0 309 | ps4disableAutoHideSplash: 0 310 | ps4IncludedModules: [] 311 | monoEnv: 312 | psp2Splashimage: {fileID: 0} 313 | psp2NPTrophyPackPath: 314 | psp2NPSupportGBMorGJP: 0 315 | psp2NPAgeRating: 12 316 | psp2NPTitleDatPath: 317 | psp2NPCommsID: 318 | psp2NPCommunicationsID: 319 | psp2NPCommsPassphrase: 320 | psp2NPCommsSig: 321 | psp2ParamSfxPath: 322 | psp2ManualPath: 323 | psp2LiveAreaGatePath: 324 | psp2LiveAreaBackroundPath: 325 | psp2LiveAreaPath: 326 | psp2LiveAreaTrialPath: 327 | psp2PatchChangeInfoPath: 328 | psp2PatchOriginalPackage: 329 | psp2PackagePassword: WRK5RhRXdCdG5nG5azdNMK66MuCV6GXi 330 | psp2KeystoneFile: 331 | psp2MemoryExpansionMode: 0 332 | psp2DRMType: 0 333 | psp2StorageType: 0 334 | psp2MediaCapacity: 0 335 | psp2DLCConfigPath: 336 | psp2ThumbnailPath: 337 | psp2BackgroundPath: 338 | psp2SoundPath: 339 | psp2TrophyCommId: 340 | psp2TrophyPackagePath: 341 | psp2PackagedResourcesPath: 342 | psp2SaveDataQuota: 10240 343 | psp2ParentalLevel: 1 344 | psp2ShortTitle: Not Set 345 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 346 | psp2Category: 0 347 | psp2MasterVersion: 01.00 348 | psp2AppVersion: 01.00 349 | psp2TVBootMode: 0 350 | psp2EnterButtonAssignment: 2 351 | psp2TVDisableEmu: 0 352 | psp2AllowTwitterDialog: 1 353 | psp2Upgradable: 0 354 | psp2HealthWarning: 0 355 | psp2UseLibLocation: 0 356 | psp2InfoBarOnStartup: 0 357 | psp2InfoBarColor: 0 358 | psp2UseDebugIl2cppLibs: 0 359 | psmSplashimage: {fileID: 0} 360 | splashScreenBackgroundSourceLandscape: {fileID: 0} 361 | splashScreenBackgroundSourcePortrait: {fileID: 0} 362 | spritePackerPolicy: 363 | webGLMemorySize: 256 364 | webGLExceptionSupport: 1 365 | webGLDataCaching: 0 366 | webGLDebugSymbols: 0 367 | webGLEmscriptenArgs: 368 | webGLModulesDirectory: 369 | webGLTemplate: APPLICATION:Default 370 | webGLAnalyzeBuildSize: 0 371 | webGLUseEmbeddedResources: 0 372 | webGLUseWasm: 0 373 | webGLCompressionFormat: 1 374 | scriptingDefineSymbols: {} 375 | platformArchitecture: {} 376 | scriptingBackend: {} 377 | incrementalIl2cppBuild: {} 378 | additionalIl2CppArgs: 379 | m_RenderingPath: 1 380 | m_MobileRenderingPath: 1 381 | metroPackageName: SpriteSheetRuntimeGenerator 382 | metroPackageVersion: 383 | metroCertificatePath: 384 | metroCertificatePassword: 385 | metroCertificateSubject: 386 | metroCertificateIssuer: 387 | metroCertificateNotAfter: 0000000000000000 388 | metroApplicationDescription: SpriteSheetRuntimeGenerator 389 | wsaImages: {} 390 | metroTileShortName: 391 | metroCommandLineArgsFile: 392 | metroTileShowName: 0 393 | metroMediumTileShowName: 0 394 | metroLargeTileShowName: 0 395 | metroWideTileShowName: 0 396 | metroDefaultTileSize: 1 397 | metroTileForegroundText: 2 398 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 399 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 400 | a: 1} 401 | metroSplashScreenUseBackgroundColor: 0 402 | platformCapabilities: {} 403 | metroFTAName: 404 | metroFTAFileTypes: [] 405 | metroProtocolName: 406 | metroCompilationOverrides: 1 407 | tizenProductDescription: 408 | tizenProductURL: 409 | tizenSigningProfileName: 410 | tizenGPSPermissions: 0 411 | tizenMicrophonePermissions: 0 412 | tizenDeploymentTarget: 413 | tizenDeploymentTargetType: 0 414 | tizenMinOSVersion: 0 415 | n3dsUseExtSaveData: 0 416 | n3dsCompressStaticMem: 1 417 | n3dsExtSaveDataNumber: 0x12345 418 | n3dsStackSize: 131072 419 | n3dsTargetPlatform: 2 420 | n3dsRegion: 7 421 | n3dsMediaSize: 0 422 | n3dsLogoStyle: 3 423 | n3dsTitle: GameName 424 | n3dsProductCode: 425 | n3dsApplicationId: 0xFF3FF 426 | stvDeviceAddress: 427 | stvProductDescription: 428 | stvProductAuthor: 429 | stvProductAuthorEmail: 430 | stvProductLink: 431 | stvProductCategory: 0 432 | XboxOneProductId: 433 | XboxOneUpdateKey: 434 | XboxOneSandboxId: 435 | XboxOneContentId: 436 | XboxOneTitleId: 437 | XboxOneSCId: 438 | XboxOneGameOsOverridePath: 439 | XboxOnePackagingOverridePath: 440 | XboxOneAppManifestOverridePath: 441 | XboxOnePackageEncryption: 0 442 | XboxOnePackageUpdateGranularity: 2 443 | XboxOneDescription: 444 | XboxOneLanguage: 445 | - enus 446 | XboxOneCapability: [] 447 | XboxOneGameRating: {} 448 | XboxOneIsContentPackage: 0 449 | XboxOneEnableGPUVariability: 0 450 | XboxOneSockets: {} 451 | XboxOneSplashScreen: {fileID: 0} 452 | XboxOneAllowedProductIds: [] 453 | XboxOnePersistentLocalStorageSize: 0 454 | vrEditorSettings: {} 455 | cloudServicesEnabled: {} 456 | cloudProjectId: 457 | projectName: 458 | organizationId: 459 | cloudEnabled: 0 460 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.5.0f3 2 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | blendWeights: 1 21 | textureQuality: 1 22 | anisotropicTextures: 0 23 | antiAliasing: 0 24 | softParticles: 0 25 | softVegetation: 0 26 | realtimeReflectionProbes: 0 27 | billboardsFaceCameraPosition: 0 28 | vSyncCount: 0 29 | lodBias: 0.3 30 | maximumLODLevel: 0 31 | particleRaycastBudget: 4 32 | asyncUploadTimeSlice: 2 33 | asyncUploadBufferSize: 4 34 | excludedTargetPlatforms: [] 35 | - serializedVersion: 2 36 | name: Fast 37 | pixelLightCount: 0 38 | shadows: 0 39 | shadowResolution: 0 40 | shadowProjection: 1 41 | shadowCascades: 1 42 | shadowDistance: 20 43 | shadowNearPlaneOffset: 3 44 | shadowCascade2Split: 0.33333334 45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 46 | blendWeights: 2 47 | textureQuality: 0 48 | anisotropicTextures: 0 49 | antiAliasing: 0 50 | softParticles: 0 51 | softVegetation: 0 52 | realtimeReflectionProbes: 0 53 | billboardsFaceCameraPosition: 0 54 | vSyncCount: 0 55 | lodBias: 0.4 56 | maximumLODLevel: 0 57 | particleRaycastBudget: 16 58 | asyncUploadTimeSlice: 2 59 | asyncUploadBufferSize: 4 60 | excludedTargetPlatforms: [] 61 | - serializedVersion: 2 62 | name: Simple 63 | pixelLightCount: 1 64 | shadows: 1 65 | shadowResolution: 0 66 | shadowProjection: 1 67 | shadowCascades: 1 68 | shadowDistance: 20 69 | shadowNearPlaneOffset: 3 70 | shadowCascade2Split: 0.33333334 71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 72 | blendWeights: 2 73 | textureQuality: 0 74 | anisotropicTextures: 1 75 | antiAliasing: 0 76 | softParticles: 0 77 | softVegetation: 0 78 | realtimeReflectionProbes: 0 79 | billboardsFaceCameraPosition: 0 80 | vSyncCount: 1 81 | lodBias: 0.7 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 64 84 | asyncUploadTimeSlice: 2 85 | asyncUploadBufferSize: 4 86 | excludedTargetPlatforms: [] 87 | - serializedVersion: 2 88 | name: Good 89 | pixelLightCount: 2 90 | shadows: 2 91 | shadowResolution: 1 92 | shadowProjection: 1 93 | shadowCascades: 2 94 | shadowDistance: 40 95 | shadowNearPlaneOffset: 3 96 | shadowCascade2Split: 0.33333334 97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 98 | blendWeights: 2 99 | textureQuality: 0 100 | anisotropicTextures: 1 101 | antiAliasing: 0 102 | softParticles: 0 103 | softVegetation: 1 104 | realtimeReflectionProbes: 1 105 | billboardsFaceCameraPosition: 1 106 | vSyncCount: 1 107 | lodBias: 1 108 | maximumLODLevel: 0 109 | particleRaycastBudget: 256 110 | asyncUploadTimeSlice: 2 111 | asyncUploadBufferSize: 4 112 | excludedTargetPlatforms: [] 113 | - serializedVersion: 2 114 | name: Beautiful 115 | pixelLightCount: 3 116 | shadows: 2 117 | shadowResolution: 2 118 | shadowProjection: 1 119 | shadowCascades: 2 120 | shadowDistance: 70 121 | shadowNearPlaneOffset: 3 122 | shadowCascade2Split: 0.33333334 123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 124 | blendWeights: 4 125 | textureQuality: 0 126 | anisotropicTextures: 2 127 | antiAliasing: 2 128 | softParticles: 1 129 | softVegetation: 1 130 | realtimeReflectionProbes: 1 131 | billboardsFaceCameraPosition: 1 132 | vSyncCount: 1 133 | lodBias: 1.5 134 | maximumLODLevel: 0 135 | particleRaycastBudget: 1024 136 | asyncUploadTimeSlice: 2 137 | asyncUploadBufferSize: 4 138 | excludedTargetPlatforms: [] 139 | - serializedVersion: 2 140 | name: Fantastic 141 | pixelLightCount: 4 142 | shadows: 2 143 | shadowResolution: 2 144 | shadowProjection: 1 145 | shadowCascades: 4 146 | shadowDistance: 150 147 | shadowNearPlaneOffset: 3 148 | shadowCascade2Split: 0.33333334 149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 150 | blendWeights: 4 151 | textureQuality: 0 152 | anisotropicTextures: 2 153 | antiAliasing: 2 154 | softParticles: 1 155 | softVegetation: 1 156 | realtimeReflectionProbes: 1 157 | billboardsFaceCameraPosition: 1 158 | vSyncCount: 1 159 | lodBias: 2 160 | maximumLODLevel: 0 161 | particleRaycastBudget: 4096 162 | asyncUploadTimeSlice: 2 163 | asyncUploadBufferSize: 4 164 | excludedTargetPlatforms: [] 165 | m_PerPlatformDefaultQuality: 166 | Android: 2 167 | Nintendo 3DS: 5 168 | PS4: 5 169 | PSM: 5 170 | PSP2: 2 171 | Samsung TV: 2 172 | Standalone: 5 173 | Tizen: 2 174 | Web: 5 175 | WebGL: 3 176 | WiiU: 5 177 | Windows Store Apps: 5 178 | XboxOne: 5 179 | iPhone: 2 180 | tvOS: 5 181 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | CrashReportingSettings: 11 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 12 | m_Enabled: 0 13 | m_CaptureEditorExceptions: 1 14 | UnityPurchasingSettings: 15 | m_Enabled: 0 16 | m_TestMode: 0 17 | UnityAnalyticsSettings: 18 | m_Enabled: 0 19 | m_InitializeOnStartup: 1 20 | m_TestMode: 0 21 | m_TestEventUrl: 22 | m_TestConfigUrl: 23 | UnityAdsSettings: 24 | m_Enabled: 0 25 | m_InitializeOnStartup: 1 26 | m_TestMode: 0 27 | m_EnabledPlatforms: 4294967295 28 | m_IosGameId: 29 | m_AndroidGameId: 30 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | Unity Runtime SpriteSheets Generator 2 | ==================================== 3 | 4 | Unity and plugins provide many great ways to build Sprite Sheets. However they're used directly into Unity Editor or with an external software which is perfect in many case, but none provide the ability to generate SpriteSheets at runtime. 5 | 6 | The RectanglePacking algorithm is a port of the AS3 version made by [Ville Koskela](https://github.com/villekoskelaorg/RectanglePacking). Assets used in the demo come from [Kenney](http://kenney.nl/). 7 | 8 | You could combine the generated Sprite Sheets.png with a [pngquant](https://pngquant.org/) compression via this script [PngQuantNativeProcess](https://github.com/DaVikingCode/PngQuantNativeProcess). 9 | 10 | Please note that Unity provides a [Texture2D.PackTextures method](https://docs.unity3d.com/ScriptReference/Texture2D.PackTextures.html), I didn't test it nor made benchmark performances. 11 | 12 | Example: 13 | -------- 14 | Add the `AssetPacker` component to your GameObject: 15 | ![AssetPacker](http://davikingcode.com/blog/wp-content/uploads/2017/01/AssetPacker.png) 16 | ```csharp 17 | using DaVikingCode.AssetPacker; 18 | using System.Collections; 19 | using System.Collections.Generic; 20 | using System.IO; 21 | using UnityEngine; 22 | using UnityEngine.UI; 23 | 24 | public class AssetPackerExample : MonoBehaviour { 25 | 26 | public Image anim; 27 | 28 | AssetPacker assetPacker; 29 | 30 | void Start () { 31 | 32 | string[] files = Directory.GetFiles(Application.persistentDataPath + "/Textures", "*.png"); 33 | 34 | assetPacker = GetComponent(); 35 | 36 | assetPacker.OnProcessCompleted.AddListener(LaunchAnimations); 37 | 38 | assetPacker.AddTexturesToPack(files); 39 | assetPacker.Process(); 40 | } 41 | 42 | void LaunchAnimations() { 43 | 44 | StartCoroutine(LoadAnimation()); 45 | } 46 | 47 | IEnumerator LoadAnimation() { 48 | 49 | Sprite[] sprites = assetPacker.GetSprites("walking"); 50 | 51 | int i = 0; 52 | while (i < sprites.Length) { 53 | 54 | anim.sprite = sprites[i++]; 55 | 56 | yield return new WaitForSeconds(0.1f); 57 | 58 | // loop 59 | if (i == sprites.Length) 60 | i = 0; 61 | } 62 | } 63 | } 64 | 65 | ``` 66 | --------------------------------------------------------------------------------