From 034746d9eca9b64a62a9590bed78f2ac587b3806 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Fri, 26 Jul 2024 07:54:42 +0700 Subject: [PATCH] Setup scene, spawn sprites within different zones, NOOP burst compile flow --- .gitignore | 3 +- Assets/Art/Tilemap_Flat.png.meta | 2 +- Assets/Art/Warrior_Blue.png.meta | 2 +- Assets/Code/Game.cs | 122 +++++++++++++++-- Assets/Code/Jobs.cs | 42 ++++++ Assets/Code/Jobs.cs.meta | 11 ++ Assets/Prefabs.meta | 8 ++ Assets/Prefabs/WarriorBlue.prefab | 108 +++++++++++++++ Assets/Prefabs/WarriorBlue.prefab.meta | 7 + Assets/Scenes/SampleScene.unity | 183 ++++++++++--------------- HOURS.org | 37 +++-- ProjectSettings/EditorSettings.asset | 24 +++- 12 files changed, 404 insertions(+), 145 deletions(-) create mode 100644 Assets/Code/Jobs.cs create mode 100644 Assets/Code/Jobs.cs.meta create mode 100644 Assets/Prefabs.meta create mode 100644 Assets/Prefabs/WarriorBlue.prefab create mode 100644 Assets/Prefabs/WarriorBlue.prefab.meta diff --git a/.gitignore b/.gitignore index 4b93f74..0ce13af 100644 --- a/.gitignore +++ b/.gitignore @@ -70,4 +70,5 @@ crashlytics-build.properties # Temporary auto-generated Android Assets /[Aa]ssets/[Ss]treamingAssets/aa.meta -/[Aa]ssets/[Ss]treamingAssets/aa/* \ No newline at end of file +/[Aa]ssets/[Ss]treamingAssets/aa/* +/Profiling/ diff --git a/Assets/Art/Tilemap_Flat.png.meta b/Assets/Art/Tilemap_Flat.png.meta index 98de3b1..b5c599f 100644 --- a/Assets/Art/Tilemap_Flat.png.meta +++ b/Assets/Art/Tilemap_Flat.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/Assets/Art/Warrior_Blue.png.meta b/Assets/Art/Warrior_Blue.png.meta index 2f59fab..d0c186d 100644 --- a/Assets/Art/Warrior_Blue.png.meta +++ b/Assets/Art/Warrior_Blue.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/Assets/Code/Game.cs b/Assets/Code/Game.cs index be36783..81a310a 100644 --- a/Assets/Code/Game.cs +++ b/Assets/Code/Game.cs @@ -1,21 +1,123 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; +using Unity.Collections; +using Unity.Burst; +using Unity.Jobs; +using Unity.Mathematics; -public class Spawner : MonoBehaviour +public class Game : MonoBehaviour { - public static Transform[] TargetTransforms; - public static Transform[] SeekerTransforms; + [SerializeField] private int numBlues; + [SerializeField] private int numReds; + [SerializeField] private GameObject bluePrefab; + [SerializeField] private GameObject redPrefab; + [SerializeField] private Rect[] areasOfTheMap; - public GameObject SeekerPrefab; - public GameObject TargetPrefab; - - public int NumSeekers; - public int NumTargets; - public Vector2 Bounds; + private int maxQuadTreeSize; + private Transform[] blueTransforms; + private Transform[] redTransforms; + private NativeArray bluePositions; + private NativeArray redPositions; + private NativeArray quadTree; + private NativeArray nearestEnemyOfBlueIndex; + private NativeArray nearestEnemyOfRedIndex; public void Start() { - Random.InitState(123); + blueTransforms = new Transform[numBlues]; + redTransforms = new Transform[numReds]; + int nearestPowerOf2(int n) + { + int a = (int)(Math.Log(n) / Math.Log(2)); + return (int)Math.Pow(2, a) == n + ? n + : (int)Math.Pow(2, a + 1); + } + + maxQuadTreeSize = nearestPowerOf2(numBlues + numReds); + + // This is actually the size of the max subdivisions + int maxSubDivisions = 5; + maxQuadTreeSize = (int)Math.Pow(4, maxSubDivisions); + + Debug.Log(maxQuadTreeSize); + void InstantiatePrefabs(int amount, GameObject prefab, Transform[] transforms, Rect area) { + for (int i = 0; i < amount; i++) { + var go = GameObject.Instantiate(prefab); + transforms[i] = go.transform; + float randX = UnityEngine.Random.Range(area.x, area.x + area.width); + float randY = UnityEngine.Random.Range(area.y, area.y + area.height); + go.transform.localPosition = new Vector3(randX, 0, randY); + } + }; + InstantiatePrefabs(numBlues, bluePrefab, blueTransforms, areasOfTheMap[0]); + InstantiatePrefabs(numReds, redPrefab, redTransforms, areasOfTheMap[1]); + + bluePositions = new NativeArray(numBlues, Allocator.Persistent); + redPositions = new NativeArray(numReds, Allocator.Persistent); + quadTree = new NativeArray(maxQuadTreeSize, Allocator.Persistent); + nearestEnemyOfBlueIndex = new NativeArray(numBlues, Allocator.Persistent); + nearestEnemyOfRedIndex = new NativeArray(numReds, Allocator.Persistent); } + + float2 Vec3ToF2(Vector3 v) => new float2(v.x, v.z); + + public void Update() + { + int i = 0; + int min = numBlues > numReds ? numBlues : numReds; + while (i < min) + { + bluePositions[i] = Vec3ToF2(blueTransforms[i].localPosition); + redPositions[i] = Vec3ToF2(redTransforms[i].localPosition); + i++; + } + while (i < numBlues) + { + bluePositions[i] = Vec3ToF2(blueTransforms[i].localPosition); + i++; + } + while (i < numReds) + { + redPositions[i] = Vec3ToF2(redTransforms[i].localPosition); + i++; + } + + var constructJob = new ConstructQuadTreeJob + { + positions = bluePositions, + quadTree = quadTree, + }; + + var constructHandle = constructJob.Schedule(maxQuadTreeSize, 100); + constructHandle.Complete(); + + var findEnemyJob = new FindNearestEnemyQuadTreeJob + { + bluePositions = bluePositions, + redPositions = redPositions, + quadTree = quadTree, + nearestEnemyOfBlueIndex = nearestEnemyOfBlueIndex, + nearestEnemyOfRedIndex = nearestEnemyOfRedIndex, + }; + + var findRedsHandle = findEnemyJob.Schedule(numBlues, 100); + // We don't have a dependency on findRedsHandle, but we do have to wait for both + // findReds and findBlues to finish + findRedsHandle.Complete(); + var findBluesHandle = findEnemyJob.Schedule(numReds, 100); + + findBluesHandle.Complete(); + } + + public void OnDestroy() + { + bluePositions.Dispose(); + redPositions.Dispose(); + quadTree.Dispose(); + } + + } diff --git a/Assets/Code/Jobs.cs b/Assets/Code/Jobs.cs new file mode 100644 index 0000000..ea4de59 --- /dev/null +++ b/Assets/Code/Jobs.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using Unity.Burst; +using Unity.Collections; +using Unity.Jobs; +using Unity.Mathematics; + +[BurstCompile] +public struct ConstructQuadTreeJob : IJobParallelFor +{ + [ReadOnly] public Rect rect; + [ReadOnly] public NativeArray positions; + public NativeArray quadTree; + public NativeArray sortedIndices; + + const int capacity = 4; + + public void Execute(int index) + { + for (int i = 0; i < positions.Length; i++) {} + // [ (0, ) ] + // A + // B C + // D E F G + // [A, B, C, D, E, F, G] + } +} + +[BurstCompile] +public struct FindNearestEnemyQuadTreeJob : IJobParallelFor +{ + [ReadOnly] public NativeArray bluePositions; + [ReadOnly] public NativeArray redPositions; + [ReadOnly] public NativeArray quadTree; + public NativeArray nearestEnemyOfBlueIndex; + public NativeArray nearestEnemyOfRedIndex; + + public void Execute(int index) + { + } +} diff --git a/Assets/Code/Jobs.cs.meta b/Assets/Code/Jobs.cs.meta new file mode 100644 index 0000000..a51dc1d --- /dev/null +++ b/Assets/Code/Jobs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ee0bc3e248979e608384f1909937548 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs.meta b/Assets/Prefabs.meta new file mode 100644 index 0000000..bd30552 --- /dev/null +++ b/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8412b201912c19b1a98bc5974315fcdf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/WarriorBlue.prefab b/Assets/Prefabs/WarriorBlue.prefab new file mode 100644 index 0000000..65c9da8 --- /dev/null +++ b/Assets/Prefabs/WarriorBlue.prefab @@ -0,0 +1,108 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8037548089323100954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5811437263681021583} + - component: {fileID: 2291066461439633894} + - component: {fileID: 4383269291504636345} + m_Layer: 0 + m_Name: WarriorBlue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5811437263681021583 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8037548089323100954} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 2.52, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2291066461439633894 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8037548089323100954} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 701340171, guid: eed416df131ecfe9b8b17ac0177632a4, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 12, y: 12} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!95 &4383269291504636345 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8037548089323100954} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 7577fcc648eb40dfbb8bbf6b2e7433b8, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 diff --git a/Assets/Prefabs/WarriorBlue.prefab.meta b/Assets/Prefabs/WarriorBlue.prefab.meta new file mode 100644 index 0000000..ae3dc1a --- /dev/null +++ b/Assets/Prefabs/WarriorBlue.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a0b682c7fa1c889aa8b13984f67838b3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 76f5b64..d2f3abb 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -159,7 +159,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -208,13 +208,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} serializedVersion: 2 - m_LocalRotation: {x: 0.27781588, y: 0.36497167, z: -0.1150751, w: 0.8811196} - m_LocalPosition: {x: -41.98, y: 27.72, z: -29.310001} + m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535} + m_LocalPosition: {x: -0.5, y: 246.1, z: 11.9} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 819485403} - m_LocalEulerAnglesHint: {x: 35, y: 45, z: 0} + m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0} --- !u!114 &330585547 MonoBehaviour: m_ObjectHideFlags: 0 @@ -348,7 +348,7 @@ Transform: m_GameObject: {fileID: 410087039} serializedVersion: 2 m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 2, z: 10} + m_LocalPosition: {x: 55.25, y: 18.88, z: 10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -460,6 +460,67 @@ Transform: m_Children: [] m_Father: {fileID: 819485403} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1758785727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1758785729} + - component: {fileID: 1758785728} + m_Layer: 0 + m_Name: Game + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1758785728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758785727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6416af1f82bd7145b826e75ca0b5a895, type: 3} + m_Name: + m_EditorClassIdentifier: + numBlues: 500 + numReds: 500 + bluePrefab: {fileID: 8037548089323100954, guid: a0b682c7fa1c889aa8b13984f67838b3, + type: 3} + redPrefab: {fileID: 8037548089323100954, guid: a0b682c7fa1c889aa8b13984f67838b3, + type: 3} + areasOfTheMap: + - serializedVersion: 2 + x: 0 + y: 0 + width: 500 + height: 150 + - serializedVersion: 2 + x: 0 + y: 250 + width: 500 + height: 150 +--- !u!4 &1758785729 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758785727} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.3736994, y: 2.6230762, z: -10.393191} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1815362051 GameObject: m_ObjectHideFlags: 0 @@ -523,7 +584,7 @@ SpriteRenderer: m_FlipX: 0 m_FlipY: 0 m_DrawMode: 2 - m_Size: {x: 98.83509, y: 91.66369} + m_Size: {x: 546.7592, y: 461.9418} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 @@ -538,122 +599,16 @@ Transform: m_GameObject: {fileID: 1815362051} serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: -0.7071068} - m_LocalPosition: {x: 0, y: -0, z: 0} + m_LocalPosition: {x: 251, y: 0, z: 198} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 270, y: 0, z: 0} ---- !u!1 &2058548787 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2058548789} - - component: {fileID: 2058548788} - - component: {fileID: 2058548790} - m_Layer: 0 - m_Name: WarriorBlue - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!212 &2058548788 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2058548787} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 1 - m_Sprite: {fileID: 701340171, guid: eed416df131ecfe9b8b17ac0177632a4, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 12, y: 12} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!4 &2058548789 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2058548787} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 2.52, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!95 &2058548790 -Animator: - serializedVersion: 5 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2058548787} - m_Enabled: 1 - m_Avatar: {fileID: 0} - m_Controller: {fileID: 9100000, guid: 7577fcc648eb40dfbb8bbf6b2e7433b8, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_StabilizeFeet: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorStateOnDisable: 0 - m_WriteDefaultValuesOnDisable: 0 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 819485403} + - {fileID: 1758785729} - {fileID: 1815362053} - - {fileID: 2058548789} diff --git a/HOURS.org b/HOURS.org index 18190d0..571851f 100644 --- a/HOURS.org +++ b/HOURS.org @@ -1,21 +1,34 @@ #+STARTUP overview nohidedrawers * Tiny Swords - DOTS Hours -#+BEGIN: clocktable :scope subtree :maxlevel 4 :block thisweek -#+CAPTION: Clock summary at [2024-07-18 Thu 16:28], for week 2024-W29. -| Headline | Time | | | -|------------------------+-------+-------+------| -| *Total time* | *10:55* | | | -|------------------------+-------+-------+------| -| Hyperscale Hours | 10:55 | | | -| \_ July | | 10:55 | | -| \_ <2024-07-15 Mon> | | | 1:07 | -| \_ <2024-07-16 Tue> | | | 4:36 | -| \_ <2024-07-17 Wed> | | | 1:56 | -| \_ <2024-07-18 Thu> | | | 3:16 | +#+BEGIN: clocktable :scope subtree :maxlevel 4 :block thismonth +#+CAPTION: Clock summary at [2024-07-25 Thu 05:16], for July 2024. +| Headline | Time | | | +|--------------------------+------+------+------| +| *Total time* | *6:31* | | | +|--------------------------+------+------+------| +| Tiny Swords - DOTS Hours | 6:31 | | | +| \_ July | | 6:31 | | +| \_ <2024-07-23 Tue> | | | 3:44 | +| \_ <2024-07-24 Wed> | | | 2:47 | #+END: ** July *** <2024-07-23 Tue> :LOGBOOK: +CLOCK: [2024-07-23 Tue 19:20]--[2024-07-23 Tue 20:15] => 0:55 +CLOCK: [2024-07-23 Tue 17:57]--[2024-07-23 Tue 19:11] => 1:14 CLOCK: [2024-07-23 Tue 15:15]--[2024-07-23 Tue 16:50] => 1:35 :END: +*** <2024-07-24 Wed> +:LOGBOOK: +CLOCK: [2024-07-24 Wed 19:50]--[2024-07-24 Wed 20:44] => 0:54 +CLOCK: [2024-07-24 Wed 17:30]--[2024-07-24 Wed 19:23] => 1:53 +:END: +*** <2024-07-25 Thu> +:LOGBOOK: +CLOCK: [2024-07-25 Thu 05:30]--[2024-07-25 Thu 06:22] => 0:52 +:END: +*** <2024-07-26 Fri> +:LOGBOOK: +CLOCK: [2024-07-26 Fri 07:20] +:END: diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset index c8da44e..9e6ab81 100644 --- a/ProjectSettings/EditorSettings.asset +++ b/ProjectSettings/EditorSettings.asset @@ -3,33 +3,45 @@ --- !u!159 &1 EditorSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 - m_ExternalVersionControlSupport: Visible Meta Files + serializedVersion: 12 m_SerializationMode: 2 m_LineEndingsForNewScripts: 2 m_DefaultBehaviorMode: 0 m_PrefabRegularEnvironment: {fileID: 0} m_PrefabUIEnvironment: {fileID: 0} m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 m_EtcTextureCompressorBehavior: 1 m_EtcTextureFastCompressor: 1 m_EtcTextureNormalCompressor: 2 m_EtcTextureBestCompressor: 4 m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp m_ProjectGenerationRootNamespace: - m_CollabEditorSettings: - inProgressEnabled: 1 m_EnableTextureStreamingInEditMode: 1 m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 m_AsyncShaderCompilation: 1 - m_EnterPlayModeOptionsEnabled: 0 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 m_EnterPlayModeOptions: 3 - m_ShowLightmapResolutionOverlay: 1 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 0 + m_DisableCookiesInLightmapper: 1 m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 m_CacheServerMode: 0 m_CacheServerEndpoint: m_CacheServerNamespacePrefix: default m_CacheServerEnableDownload: 1 m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0