diff --git a/The project/Assets/Prefabs.meta b/The project/Assets/Prefabs.meta new file mode 100644 index 00000000..4a208534 --- /dev/null +++ b/The project/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5939f2b8303b5cd46afe044fb9d1709e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/The project/Assets/Prefabs/TickSystem.prefab b/The project/Assets/Prefabs/TickSystem.prefab new file mode 100644 index 00000000..c5d90ef9 --- /dev/null +++ b/The project/Assets/Prefabs/TickSystem.prefab @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8737336274644796263 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8737336274644796262} + - component: {fileID: 5760747931768097249} + m_Layer: 0 + m_Name: TickSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8737336274644796262 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8737336274644796263} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5760747931768097249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8737336274644796263} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 39caa37523bdee54ba2bb4f591cf9ece, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/The project/Assets/Prefabs/TickSystem.prefab.meta b/The project/Assets/Prefabs/TickSystem.prefab.meta new file mode 100644 index 00000000..7da5b06a --- /dev/null +++ b/The project/Assets/Prefabs/TickSystem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 519502c6f18d5e44eb800aefd848a6e6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/The project/Assets/Scenes/SpartaqS.unity b/The project/Assets/Scenes/SpartaqS.unity index df6246b5..aa2d012b 100644 --- a/The project/Assets/Scenes/SpartaqS.unity +++ b/The project/Assets/Scenes/SpartaqS.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -133,6 +133,7 @@ GameObject: m_Component: - component: {fileID: 62685116} - component: {fileID: 62685115} + - component: {fileID: 62685117} m_Layer: 0 m_Name: Directional Light m_TagString: Untagged @@ -217,6 +218,26 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &62685117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 62685114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} --- !u!1 &574213518 GameObject: m_ObjectHideFlags: 0 @@ -301,3 +322,116 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1030936245 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1030936246} + - component: {fileID: 1030936247} + m_Layer: 0 + m_Name: ExampleTickReceiver + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1030936246 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1030936245} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1030936247 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1030936245} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a1201c89332e3f946a28bbc1294750be, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1051848805 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796262, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8737336274644796263, guid: 519502c6f18d5e44eb800aefd848a6e6, + type: 3} + propertyPath: m_Name + value: TickSystem + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 519502c6f18d5e44eb800aefd848a6e6, type: 3} diff --git a/The project/Assets/Scripts.meta b/The project/Assets/Scripts.meta new file mode 100644 index 00000000..d428c7c3 --- /dev/null +++ b/The project/Assets/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0249b4cbd93f42540a182f30adbb10bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/The project/Assets/Scripts/TickSystem.meta b/The project/Assets/Scripts/TickSystem.meta new file mode 100644 index 00000000..c6b45ef3 --- /dev/null +++ b/The project/Assets/Scripts/TickSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc4af0d1e4dd3f8468007cefdc0e62d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/The project/Assets/Scripts/TickSystem/ExampleTickReceiver.cs b/The project/Assets/Scripts/TickSystem/ExampleTickReceiver.cs new file mode 100644 index 00000000..e38f2a5e --- /dev/null +++ b/The project/Assets/Scripts/TickSystem/ExampleTickReceiver.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ExampleTickReceiver : MonoBehaviour +{ + void Awake() + { + TickSystem.OnTick += HandleTick; + } + + private void HandleTick(TickSystem.OnTickEventArgs tickEventArgs) + { + Debug.Log($"Example of tick #{tickEventArgs.tickNumber} being handled"); + } +} diff --git a/The project/Assets/Scripts/TickSystem/ExampleTickReceiver.cs.meta b/The project/Assets/Scripts/TickSystem/ExampleTickReceiver.cs.meta new file mode 100644 index 00000000..33791f66 --- /dev/null +++ b/The project/Assets/Scripts/TickSystem/ExampleTickReceiver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1201c89332e3f946a28bbc1294750be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/The project/Assets/Scripts/TickSystem/TickSystem.cs b/The project/Assets/Scripts/TickSystem/TickSystem.cs new file mode 100644 index 00000000..d0e1c423 --- /dev/null +++ b/The project/Assets/Scripts/TickSystem/TickSystem.cs @@ -0,0 +1,46 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System; + +public class TickSystem : MonoBehaviour +{ + public class OnTickEventArgs : EventArgs + { + public int tickNumber; + } + + public static Action OnTick; + + private const float TICK_PERIOD = 0.2f; // seconds between ticks + private int tick; // keep track of total ticks that have happened + public static TickSystem Instance; + + private void Awake() // needs to be called by a scene initializer + { + if (Instance != null) // a TickSystem already exitst + { + Debug.LogError("A TickSystem already exists, FIX YOUR TIME SPAWNING"); + Destroy(gameObject); + }//else this is the first TickSystem that has awoken in this scene + Instance = this; + tickTimer = 0f; + tick = 0; + } + + private float tickTimer = 0f; + + // Update is called once per frame + void Update() + { + tickTimer += Time.deltaTime; + if (tickTimer >= TICK_PERIOD) + { + tickTimer -= TICK_PERIOD; + tick++; + + OnTick?.Invoke(new OnTickEventArgs { tickNumber = tick }); + } + } +} + diff --git a/The project/Assets/Scripts/TickSystem/TickSystem.cs.meta b/The project/Assets/Scripts/TickSystem/TickSystem.cs.meta new file mode 100644 index 00000000..5d564d27 --- /dev/null +++ b/The project/Assets/Scripts/TickSystem/TickSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 39caa37523bdee54ba2bb4f591cf9ece +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: