diff --git a/Assets/Prefabs/GameCanvas.prefab b/Assets/Prefabs/GameCanvas.prefab index 32eda56..bfde9db 100644 --- a/Assets/Prefabs/GameCanvas.prefab +++ b/Assets/Prefabs/GameCanvas.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 1862862063758533551} - component: {fileID: 1850279079604088768} - m_Layer: 0 + m_Layer: 5 m_Name: Spawner m_TagString: Untagged m_Icon: {fileID: 0} @@ -59,6 +59,7 @@ MonoBehaviour: k__BackingField: 2 - k__BackingField: InterfaceOff.TriviaWindow k__BackingField: 4 + k__BackingField: {fileID: 3239915826142415764} k__BackingField: 0 k__BackingField: 1 --- !u!1 &2020022267469913571 @@ -70,7 +71,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3614641596273148411} - m_Layer: 0 + m_Layer: 5 m_Name: GameCanvas m_TagString: Untagged m_Icon: {fileID: 0} @@ -131,6 +132,41 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3239915826142415764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1680159658511062866} + m_Layer: 5 + m_Name: Spawned + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1680159658511062866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3239915826142415764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 834552907522022778} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &3563736642392842882 GameObject: m_ObjectHideFlags: 0 @@ -261,6 +297,8 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5018153252802778155} + - {fileID: 1680159658511062866} + - {fileID: 1389147469433647468} m_Father: {fileID: 3614641596273148411} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -440,3 +478,78 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 2, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &7696438193072300722 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1389147469433647468} + - component: {fileID: 7173024211597662773} + - component: {fileID: 833602854707986350} + m_Layer: 5 + m_Name: Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1389147469433647468 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7696438193072300722} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 834552907522022778} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7173024211597662773 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7696438193072300722} + m_CullTransparentMesh: 1 +--- !u!114 &833602854707986350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7696438193072300722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.5019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Scenes/WorldScene.unity b/Assets/Scenes/WorldScene.unity index 3b8c52b..1ba4745 100644 --- a/Assets/Scenes/WorldScene.unity +++ b/Assets/Scenes/WorldScene.unity @@ -334,6 +334,16 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 1013965729963872153, guid: 2b0bfd2786fee6740a799a99023f5000, + type: 3} + propertyPath: ExternalCamera + value: + objectReference: {fileID: 782229190} + - target: {fileID: 1013965729963872153, guid: 2b0bfd2786fee6740a799a99023f5000, + type: 3} + propertyPath: FrontLayerImage + value: + objectReference: {fileID: 1484681361} - target: {fileID: 1013965729963872153, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} propertyPath: ActiveWindowSpawner @@ -362,17 +372,17 @@ PrefabInstance: - target: {fileID: 1807660236798938897, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1807660236798938897, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1807660236798938897, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1807660236798938897, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} @@ -399,6 +409,238 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2b0bfd2786fee6740a799a99023f5000, type: 3} +--- !u!1001 &739366992 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 782229191} + m_Modifications: + - target: {fileID: 228621501325938318, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_Name + value: ShieldBar + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalPosition.x + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalPosition.y + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalPosition.z + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c0a03ce6c4f39224299267b83719ceb7, type: 3} +--- !u!1 &782229187 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 782229191} + - component: {fileID: 782229190} + - component: {fileID: 782229189} + - component: {fileID: 782229188} + m_Layer: 0 + m_Name: ExternalCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &782229188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782229187} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 23 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 0 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!20 &782229189 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782229187} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &782229190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782229187} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cfd8d92b06194cf98ee7011df76811cc, type: 3} + m_Name: + m_EditorClassIdentifier: + ExternalCam: {fileID: 782229189} +--- !u!4 &782229191 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782229187} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 100, y: 0, z: 100} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1003288350} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1003288350 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4417313079524746681, guid: c0a03ce6c4f39224299267b83719ceb7, + type: 3} + m_PrefabInstance: {fileID: 739366992} + m_PrefabAsset: {fileID: 0} --- !u!4 &1004516925 stripped Transform: m_CorrespondingSourceObject: {fileID: 4872202698225962268, guid: ffc439d5d7c92f14aa90c763e1cde8d2, @@ -941,6 +1183,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 42603e4f95b24efa85355a04450c20e2, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1484681361 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 833602854707986350, guid: e29ce1fe47a855c4e907d4312c9e9d6e, + type: 3} + m_PrefabInstance: {fileID: 1758685209} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1758685209 PrefabInstance: m_ObjectHideFlags: 0 @@ -1688,3 +1942,4 @@ SceneRoots: - {fileID: 1909908770} - {fileID: 1758685209} - {fileID: 193820555} + - {fileID: 782229191} diff --git a/Assets/Scripts/ExternalCamera.cs b/Assets/Scripts/ExternalCamera.cs new file mode 100644 index 0000000..c4b7fbb --- /dev/null +++ b/Assets/Scripts/ExternalCamera.cs @@ -0,0 +1,19 @@ +using System; +using UnityEngine; + +namespace InterfaceOff.WorldScene +{ + public class ExternalCamera : MonoBehaviour + { + [SerializeField] private Camera ExternalCam; + private RenderTexture RenderTexture; + + private void Awake() + { + RenderTexture = new RenderTexture(width: 1920, height: 1080, depth: 16); + ExternalCam.targetTexture = RenderTexture; + } + + public Texture GetTexture() => RenderTexture; + } +} \ No newline at end of file diff --git a/Assets/Scripts/ExternalCamera.cs.meta b/Assets/Scripts/ExternalCamera.cs.meta new file mode 100644 index 0000000..09ec17a --- /dev/null +++ b/Assets/Scripts/ExternalCamera.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cfd8d92b06194cf98ee7011df76811cc +timeCreated: 1768912839 \ No newline at end of file diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index cc638c4..dcbc2aa 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,6 +1,8 @@ -using System.IO; +using System; +using System.IO; using System.Linq; using UnityEngine; +using UnityEngine.UI; namespace InterfaceOff.WorldScene { @@ -8,13 +10,15 @@ namespace InterfaceOff.WorldScene { private static PlayerController Instance; private PlayerFrameInfo[] Frames; - + [SerializeField] private WindowSpawner ActiveWindowSpawner; [SerializeField] private LineRenderer BulletTracerRenderer; [SerializeField] private Transform BulletTracerStart; [SerializeField] private Transform BulletTracerEnd; [field: SerializeField] public int FrameIndex { get; private set; } [SerializeField] private int[] DeathIndices; + [SerializeField] private ExternalCamera ExternalCamera; + [SerializeField] private Image FrontLayerImage; private const int MAX_WINDOWS = 20; @@ -23,6 +27,8 @@ namespace InterfaceOff.WorldScene private void Awake() { + /* Hides the cursor as a custom one is used */ + /* Loads the JSON, temporary. TODO: Insert the JSON into this .cs file */ string json = File.ReadAllText(Application.dataPath + "/Resources/playerframe.json"); Frames = JsonUtility.FromJson(json).FrameInfo; @@ -66,5 +72,10 @@ namespace InterfaceOff.WorldScene BulletTracerRenderer.enabled = Frames[FrameIndex].ShootGun; } } + + private void LateUpdate() + { + FrontLayerImage.material.mainTexture = ExternalCamera.GetTexture(); + } } } \ No newline at end of file diff --git a/Assets/Scripts/WindowSpawner.cs b/Assets/Scripts/WindowSpawner.cs index d576931..0dcc41d 100644 --- a/Assets/Scripts/WindowSpawner.cs +++ b/Assets/Scripts/WindowSpawner.cs @@ -20,6 +20,7 @@ namespace InterfaceOff [field: SerializeField] private Canvas GameCanvas { get; set; } [field: SerializeField] private GameObject DeathInfo { get; set; } [field: SerializeField] private SpawnableWindowType[] WindowTypes { get; set; } + [field: SerializeField] private GameObject Parent { get; set; } private int TotalSpawnWeight { get; set; } [field: SerializeField] public int SpawnedWindowCount { get; private set; } @@ -63,7 +64,7 @@ namespace InterfaceOff private void SpawnNewRandomWindow() { /* Creates the gameobject with a random class */ - GameObject go = Instantiate(SampleChild, GameCanvas.transform); + GameObject go = Instantiate(SampleChild, Parent.transform); go.SetActive(true); Type type = GetRandomWindowType(); @@ -121,7 +122,7 @@ namespace InterfaceOff { /* Destroys all children and stops them from spawning */ AutoSpawn = false; - foreach (Transform child in GameCanvas.transform) + foreach (Transform child in Parent.transform) { WindowBase window = child.GetComponent(); if (DebugUtils.IsNotNull(window))