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: []