diff --git a/Assets/Escape Room Engine/Portal/Portal Frame.blend b/Assets/Escape Room Engine/Portal/Portal Frame.blend
new file mode 100644
index 0000000..1f29a1f
Binary files /dev/null and b/Assets/Escape Room Engine/Portal/Portal Frame.blend differ
diff --git a/Assets/Escape Room Engine/Portal/Portal Frame.blend.meta b/Assets/Escape Room Engine/Portal/Portal Frame.blend.meta
new file mode 100644
index 0000000..142c7f3
--- /dev/null
+++ b/Assets/Escape Room Engine/Portal/Portal Frame.blend.meta
@@ -0,0 +1,106 @@
+fileFormatVersion: 2
+guid: a2052daf99b37934fb434aaffa9e75f2
+ModelImporter:
+ serializedVersion: 21300
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 1
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Escape Room Engine/Portal/Portal Frame.blend1 b/Assets/Escape Room Engine/Portal/Portal Frame.blend1
new file mode 100644
index 0000000..7331275
Binary files /dev/null and b/Assets/Escape Room Engine/Portal/Portal Frame.blend1 differ
diff --git a/Assets/Escape Room Engine/Portal/Portal Frame.blend1.meta b/Assets/Escape Room Engine/Portal/Portal Frame.blend1.meta
new file mode 100644
index 0000000..05f0e61
--- /dev/null
+++ b/Assets/Escape Room Engine/Portal/Portal Frame.blend1.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e56607a291566fb47bc0f9f8ab41485c
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Escape Room Engine/Portal/Portal.cs b/Assets/Escape Room Engine/Portal/Portal.cs
index 211ed8d..1a9d686 100644
--- a/Assets/Escape Room Engine/Portal/Portal.cs
+++ b/Assets/Escape Room Engine/Portal/Portal.cs
@@ -1,10 +1,14 @@
using System;
using UnityEngine;
+using UnityEngine.Rendering;
+using UnityEngine.Rendering.Universal;
namespace Escape_Room_Engine.Portal
{
public class Portal : MonoBehaviour
{
+ private static readonly Matrix4x4 HalfRotation = Matrix4x4.Rotate(Quaternion.Euler(0, 180, 0));
+
///
/// The portal that is connected with this one.
///
@@ -12,25 +16,65 @@ namespace Escape_Room_Engine.Portal
///
/// The main camera to take the position for the portal camera from.
///
- [SerializeField] private Transform playerCamera;
+ [SerializeField] private Camera playerCamera;
///
/// The camera that will draw the view for this portal.
///
- [SerializeField] private Transform portalCamera;
+ [SerializeField] private Camera portalCamera;
+ ///
+ /// The quad where the rendered texture will be drawn on.
+ ///
+ [SerializeField] private MeshRenderer portalQuad;
- private void Start()
+ private RenderTexture _texture;
+
+ private void Awake()
{
// check whether the other portal is set up
if (!other || other.other != this) throw new Exception("Other Portal not set up correctly.");
// check whether the player camera is set up
if (!playerCamera) throw new Exception("No camera initialised.");
+
+ // create render texture
+ _texture = new RenderTexture(Screen.width, Screen.height, 24, RenderTextureFormat.ARGB32);
}
- private void Update()
+ private void Start()
{
- var portalCameraMatrix = transform.localToWorldMatrix * other.transform.worldToLocalMatrix *
- playerCamera.localToWorldMatrix;
- portalCamera.SetPositionAndRotation(portalCameraMatrix.GetPosition(), portalCameraMatrix.rotation);
+ // assign render texture
+ portalCamera.targetTexture = _texture;
+ other.portalQuad.material.mainTexture = _texture;
+ }
+
+ private void OnEnable()
+ {
+ RenderPipelineManager.beginCameraRendering += Render;
+ }
+
+ private void OnDisable()
+ {
+ RenderPipelineManager.beginCameraRendering -= Render;
+ }
+
+ private void Render(ScriptableRenderContext scriptableRenderContext, Camera camera)
+ {
+ var t = transform;
+
+ // position portal camera
+ var portalCameraMatrix = t.localToWorldMatrix * HalfRotation * other.transform.worldToLocalMatrix *
+ playerCamera.transform.localToWorldMatrix;
+ portalCamera.transform.SetPositionAndRotation(portalCameraMatrix.GetPosition(), portalCameraMatrix.rotation);
+
+ // set camera clip plane to portal (otherwise the wall behind the portal would be rendered)
+ // calculating the clip plane: https://computergraphics.stackexchange.com/a/1506
+ var n = -t.forward; // clip plane normal
+ var portalPlane = new Plane(n, t.position); // clip plane in world space
+ var clipPlane = portalCamera.worldToCameraMatrix.inverse.transpose *
+ new Vector4(n.x, n.y, n.z, portalPlane.distance); // vector format clip plane in camera space
+ portalCamera.projectionMatrix = playerCamera.CalculateObliqueMatrix(clipPlane);
+
+ // render portal view
+ UniversalRenderPipeline.RenderSingleCamera(scriptableRenderContext, portalCamera);
}
}
}
diff --git a/Assets/Escape Room Engine/Portal/Portal.mat b/Assets/Escape Room Engine/Portal/Portal.mat
index 6568a71..9f7ed7b 100644
--- a/Assets/Escape Room Engine/Portal/Portal.mat
+++ b/Assets/Escape Room Engine/Portal/Portal.mat
@@ -1,18 +1,5 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &-3251226002000317928
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 5
--- !u!21 &2100000
Material:
serializedVersion: 8
@@ -21,15 +8,14 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Portal
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+ m_Shader: {fileID: 4800000, guid: 732968a50c15e194ba1e39cf62976ac1, type: 3}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
- stringTagMap:
- RenderType: Opaque
+ stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
@@ -78,6 +64,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _Texture:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -94,6 +84,7 @@ Material:
m_Floats:
- _AlphaClip: 0
- _Blend: 0
+ - _BlendOp: 0
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
@@ -111,6 +102,7 @@ Material:
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
+ - _SampleGI: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
@@ -119,8 +111,21 @@ Material:
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- - _BaseColor: {r: 1, g: 0, b: 1, a: 1}
- - _Color: {r: 1, g: 0, b: 1, a: 1}
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
+--- !u!114 &8905466428277890777
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 5
diff --git a/Assets/Escape Room Engine/Portal/Portal.prefab b/Assets/Escape Room Engine/Portal/Portal.prefab
index cb225b7..6f790eb 100644
--- a/Assets/Escape Room Engine/Portal/Portal.prefab
+++ b/Assets/Escape Room Engine/Portal/Portal.prefab
@@ -31,6 +31,7 @@ Transform:
m_Children:
- {fileID: 8885472774183339771}
- {fileID: 2398425302420252226}
+ - {fileID: 2168933888955393262}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -47,7 +48,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
other: {fileID: 0}
- portalCamera: {fileID: 2398425302420252226}
+ playerCamera: {fileID: 0}
+ portalCamera: {fileID: 7791795762741173939}
+ portalQuad: {fileID: 6216133567950691622}
--- !u!1 &6911937082098131204
GameObject:
m_ObjectHideFlags: 0
@@ -59,9 +62,8 @@ GameObject:
- component: {fileID: 8885472774183339771}
- component: {fileID: 1178153191156473883}
- component: {fileID: 6216133567950691622}
- - component: {fileID: 8624812738712999080}
m_Layer: 0
- m_Name: Portal Plane
+ m_Name: Quad
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -132,20 +134,6 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!64 &8624812738712999080
-MeshCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 6911937082098131204}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- serializedVersion: 4
- m_Convex: 0
- m_CookingOptions: 30
- m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &7398326895463990628
GameObject:
m_ObjectHideFlags: 0
@@ -186,7 +174,7 @@ Camera:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7398326895463990628}
- m_Enabled: 1
+ m_Enabled: 0
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
@@ -255,3 +243,78 @@ MonoBehaviour:
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
+--- !u!1001 &1842852527293547269
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 2246995198243242195}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.0000031292439
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -180
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ propertyPath: m_Name
+ value: Portal Frame
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: a2052daf99b37934fb434aaffa9e75f2, type: 3}
+--- !u!4 &2168933888955393262 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
+ type: 3}
+ m_PrefabInstance: {fileID: 1842852527293547269}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Escape Room Engine/Portal/PortalShader.shader b/Assets/Escape Room Engine/Portal/PortalShader.shader
new file mode 100644
index 0000000..de5571b
--- /dev/null
+++ b/Assets/Escape Room Engine/Portal/PortalShader.shader
@@ -0,0 +1,55 @@
+Shader "Escape Room Engine/Portal"
+{
+ Properties
+ {
+ _MainTex("Portal Texture", 2D) = "" {}
+ }
+
+ SubShader
+ {
+ Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "Queue" = "Geometry" }
+
+ Pass
+ {
+ // stencil the portal surface to cut it out from the portal frame
+ Stencil
+ {
+ Ref 1
+ Pass replace
+ }
+
+ HLSLPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
+
+ uniform sampler2D _MainTex;
+
+ struct Attributes
+ {
+ float4 vertex : POSITION;
+ };
+
+ struct Varyings
+ {
+ float4 vertex : SV_POSITION;
+ float4 screen : TEXCOORD0;
+ };
+
+ Varyings vert(Attributes IN)
+ {
+ Varyings OUT;
+ OUT.vertex = TransformObjectToHClip(IN.vertex.xyz);
+ OUT.screen = ComputeScreenPos(OUT.vertex);
+ return OUT;
+ }
+
+ half4 frag(Varyings IN) : SV_Target
+ {
+ return tex2D(_MainTex, IN.screen.xy / IN.screen.w);
+ }
+ ENDHLSL
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Escape Room Engine/Portal/PortalShader.shader.meta b/Assets/Escape Room Engine/Portal/PortalShader.shader.meta
new file mode 100644
index 0000000..448528d
--- /dev/null
+++ b/Assets/Escape Room Engine/Portal/PortalShader.shader.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 732968a50c15e194ba1e39cf62976ac1
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ preprocessorOverride: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/PortalScene.unity b/Assets/Scenes/PortalScene.unity
index 0b929e7..2762807 100644
--- a/Assets/Scenes/PortalScene.unity
+++ b/Assets/Scenes/PortalScene.unity
@@ -152,9 +152,9 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1199088360}
- - {fileID: 2061968364}
- - {fileID: 2122913238}
- {fileID: 7295752538729181700}
+ - {fileID: 2061968364}
+ - {fileID: 1363513912}
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
@@ -929,9 +929,9 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
+ - {fileID: 1281318075}
- {fileID: 1497564844}
- {fileID: 1424415512}
- - {fileID: 1281318075}
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
@@ -2948,7 +2948,7 @@ MonoBehaviour:
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
- m_AllowXRRendering: 1
+ m_AllowXRRendering: 0
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
@@ -2967,14 +2967,14 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1199088356}
- m_LocalRotation: {x: 0.08715579, y: 0.000000029802322, z: -0.0000000037252903, w: 0.9961947}
- m_LocalPosition: {x: -0, y: 1.7, z: -1.5000002}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: 1.193, z: -2.275}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 52010741}
m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 10, y: 90, z: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1274381185
GameObject:
m_ObjectHideFlags: 0
@@ -3058,16 +3058,16 @@ PrefabInstance:
- target: {fileID: 1249363658, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
propertyPath: playerCamera
value:
- objectReference: {fileID: 1199088360}
+ objectReference: {fileID: 1199088357}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
propertyPath: m_RootOrder
- value: 2
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
propertyPath: m_LocalRotation.w
- value: -1
+ value: 0.00000590086
objectReference: {fileID: 0}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
@@ -3077,7 +3077,7 @@ PrefabInstance:
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
propertyPath: m_LocalRotation.y
- value: -0.0000028312206
+ value: -1
objectReference: {fileID: 0}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
@@ -3092,7 +3092,7 @@ PrefabInstance:
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
- value: -360
+ value: -899.999
objectReference: {fileID: 0}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
@@ -3124,6 +3124,103 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ae59cddbf8fa37549bb38b1039feeb34, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &1363513911
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1363513912}
+ - component: {fileID: 1363513915}
+ - component: {fileID: 1363513914}
+ - component: {fileID: 1363513913}
+ m_Layer: 0
+ m_Name: Sphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1363513912
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1363513911}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -1}
+ m_LocalScale: {x: 0.53154, y: 0.53154, z: 0.53154}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 52010741}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!135 &1363513913
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1363513911}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1363513914
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1363513911}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ 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: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1363513915
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1363513911}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1392299501
GameObject:
m_ObjectHideFlags: 0
@@ -3378,14 +3475,14 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1424415511}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 1.242}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 148891876}
- {fileID: 1719908311}
m_Father: {fileID: 289664351}
- m_RootOrder: 1
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1497564843
GameObject:
@@ -3419,7 +3516,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 289664351}
- m_RootOrder: 0
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &1497564845
MeshCollider:
@@ -3888,7 +3985,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 52010741}
- m_RootOrder: 1
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!64 &2061968365
MeshCollider:
@@ -3954,104 +4051,6 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2061968363}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
---- !u!1 &2122913237
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2122913238}
- - component: {fileID: 2122913241}
- - component: {fileID: 2122913240}
- - component: {fileID: 2122913239}
- m_Layer: 0
- m_Name: Cylinder
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &2122913238
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2122913237}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -0, y: 0.6, z: -0.5}
- m_LocalScale: {x: 0.1, y: 0.6, z: 0.1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 52010741}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!136 &2122913239
-CapsuleCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2122913237}
- m_Material: {fileID: 0}
- m_IsTrigger: 0
- m_Enabled: 1
- m_Radius: 0.5000001
- m_Height: 2
- m_Direction: 1
- m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
---- !u!23 &2122913240
-MeshRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2122913237}
- m_Enabled: 1
- m_CastShadows: 1
- m_ReceiveShadows: 1
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 2
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- 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: 3
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_AdditionalVertexStreams: {fileID: 0}
---- !u!33 &2122913241
-MeshFilter:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2122913237}
- m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &2123804751
GameObject:
m_ObjectHideFlags: 0
@@ -4300,11 +4299,11 @@ PrefabInstance:
- target: {fileID: 1249363658, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
propertyPath: playerCamera
value:
- objectReference: {fileID: 1199088360}
+ objectReference: {fileID: 1199088357}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
propertyPath: m_RootOrder
- value: 3
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
type: 3}
diff --git a/ProjectSettings/VisualScriptingSettings.asset b/ProjectSettings/VisualScriptingSettings.asset
new file mode 100644
index 0000000..3905cd8
--- /dev/null
+++ b/ProjectSettings/VisualScriptingSettings.asset
@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &1
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 65bae8b9f1bd244b3a27e92af4b23b2a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _data:
+ _json: '{"dictionary":{"aotSafeMode":{"$content":true,"$type":"System.Boolean"},"favoriteMembers":{"$content":[],"$type":"System.Collections.Generic.HashSet`1[[Unity.VisualScripting.Member,
+ Unity.VisualScripting.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"assemblyOptions":{"$content":["mscorlib","Assembly-CSharp-firstpass","Assembly-CSharp","UnityEngine","UnityEngine.CoreModule","UnityEngine.InputModule","UnityEngine.ClusterInputModule","UnityEngine.InputLegacyModule","UnityEngine.PhysicsModule","UnityEngine.Physics2DModule","UnityEngine.TerrainPhysicsModule","UnityEngine.VehiclesModule","UnityEngine.AudioModule","UnityEngine.AnimationModule","UnityEngine.VideoModule","UnityEngine.DirectorModule","UnityEngine.Timeline","UnityEngine.ParticleSystemModule","UnityEngine.ParticlesLegacyModule","UnityEngine.WindModule","UnityEngine.ClothModule","UnityEngine.TilemapModule","UnityEngine.SpriteMaskModule","UnityEngine.TerrainModule","UnityEngine.ImageConversionModule","UnityEngine.TextRenderingModule","UnityEngine.ClusterRendererModule","UnityEngine.ScreenCaptureModule","UnityEngine.AIModule","UnityEngine.UI","UnityEngine.UIModule","UnityEngine.IMGUIModule","UnityEngine.UIElementsModule","UnityEngine.StyleSheetsModule","UnityEngine.VR","UnityEngine.VRModule","UnityEngine.ARModule","UnityEngine.HoloLens","UnityEngine.SpatialTracking","UnityEngine.GoogleAudioSpatializer","UnityEngine.Networking","UnityEngine.Analytics","UnityEngine.Advertisements","UnityEngine.Purchasing","UnityEngine.UnityConnectModule","UnityEngine.UnityAnalyticsModule","UnityEngine.GameCenterModule","UnityEngine.AccessibilityModule","UnityEngine.AndroidJNIModule","UnityEngine.AssetBundleModule","UnityEngine.FileSystemHttpModule","UnityEngine.JSONSerializeModule","UnityEngine.UmbraModule","Unity.Timeline","Unity.Timeline.Editor","Cinemachine","com.unity.cinemachine.Editor","Unity.InputSystem","Unity.TextMeshPro","Unity.VisualScripting.Core","Unity.VisualScripting.Flow","Unity.VisualScripting.State"],"$type":"System.Collections.Generic.List`1[[Unity.VisualScripting.LooseAssemblyName,
+ Unity.VisualScripting.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"typeOptions":{"$content":["System.Object","System.Boolean","System.Int32","System.Single","System.String","UnityEngine.Vector2","UnityEngine.Vector3","UnityEngine.Vector4","UnityEngine.Quaternion","UnityEngine.Matrix4x4","UnityEngine.Rect","UnityEngine.Bounds","UnityEngine.Color","UnityEngine.AnimationCurve","UnityEngine.LayerMask","UnityEngine.Ray","UnityEngine.Ray2D","UnityEngine.RaycastHit","UnityEngine.RaycastHit2D","UnityEngine.ContactPoint","UnityEngine.ContactPoint2D","UnityEngine.ParticleCollisionEvent","UnityEngine.SceneManagement.Scene","UnityEngine.Application","UnityEngine.Resources","UnityEngine.Mathf","UnityEngine.Debug","UnityEngine.Input","UnityEngine.Touch","UnityEngine.Screen","UnityEngine.Cursor","UnityEngine.Time","UnityEngine.Random","UnityEngine.Physics","UnityEngine.Physics2D","UnityEngine.SceneManagement.SceneManager","UnityEngine.GUI","UnityEngine.GUILayout","UnityEngine.GUIUtility","UnityEngine.Audio.AudioMixerGroup","UnityEngine.AI.NavMesh","UnityEngine.Gizmos","UnityEngine.AnimatorStateInfo","UnityEngine.EventSystems.BaseEventData","UnityEngine.EventSystems.PointerEventData","UnityEngine.EventSystems.AxisEventData","System.Collections.IList","System.Collections.IDictionary","Unity.VisualScripting.AotList","Unity.VisualScripting.AotDictionary","System.Exception"],"$type":"System.Collections.Generic.List`1[[System.Type,
+ mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"projectSetupCompleted":{"$content":false,"$type":"System.Boolean"},"savedVersion":{"major":1,"minor":7,"patch":8,"label":null,"increment":0,"$type":"Unity.VisualScripting.SemanticVersion"}}}'
+ _objectReferences: []