Added 3d pseduo canvas

This commit is contained in:
Pasha Bibko
2026-01-20 13:59:02 +00:00
parent bc1c12d97b
commit fe2a5179ee
6 changed files with 411 additions and 9 deletions

View File

@@ -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:
<SpawnWeight>k__BackingField: 2
- <Typename>k__BackingField: InterfaceOff.TriviaWindow
<SpawnWeight>k__BackingField: 4
<Parent>k__BackingField: {fileID: 3239915826142415764}
<SpawnedWindowCount>k__BackingField: 0
<AutoSpawn>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

View File

@@ -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}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: cfd8d92b06194cf98ee7011df76811cc
timeCreated: 1768912839

View File

@@ -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<PlayerFrameInfoArray>(json).FrameInfo;
@@ -66,5 +72,10 @@ namespace InterfaceOff.WorldScene
BulletTracerRenderer.enabled = Frames[FrameIndex].ShootGun;
}
}
private void LateUpdate()
{
FrontLayerImage.material.mainTexture = ExternalCamera.GetTexture();
}
}
}

View File

@@ -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<WindowBase>();
if (DebugUtils.IsNotNull(window))