portal travelling
This commit is contained in:
@@ -4,10 +4,10 @@ namespace Escape_Room_Engine.Portal
|
||||
{
|
||||
public class PlayerCamera : MonoBehaviour
|
||||
{
|
||||
public Camera camera;
|
||||
public new Camera camera;
|
||||
[SerializeField] private Transform leftEye, rightEye;
|
||||
|
||||
public Transform getEyeTransform(Camera.StereoscopicEye eye) =>
|
||||
public Transform GetEyeTransform(Camera.StereoscopicEye eye) =>
|
||||
eye == Camera.StereoscopicEye.Left ? leftEye : rightEye;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -51,7 +51,7 @@ ModelImporter:
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
bakeAxisConversion: 1
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
|
||||
Binary file not shown.
BIN
Assets/Escape Room Engine/Portal/Portal Screen.blend
Normal file
BIN
Assets/Escape Room Engine/Portal/Portal Screen.blend
Normal file
Binary file not shown.
106
Assets/Escape Room Engine/Portal/Portal Screen.blend.meta
Normal file
106
Assets/Escape Room Engine/Portal/Portal Screen.blend.meta
Normal file
@@ -0,0 +1,106 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 45a0860e0db749d4881818b0d8d3d0b4
|
||||
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: 1
|
||||
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:
|
||||
BIN
Assets/Escape Room Engine/Portal/Portal Screen.blend1
Normal file
BIN
Assets/Escape Room Engine/Portal/Portal Screen.blend1
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b5ae4b2ffa7168645b783530527a95fc
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,23 +1,74 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Escape_Room_Engine.Portal
|
||||
{
|
||||
[RequireComponent(typeof(Collider))]
|
||||
public class Portal : MonoBehaviour
|
||||
{
|
||||
public static readonly Matrix4x4 HalfRotation = Matrix4x4.Rotate(Quaternion.Euler(0, 180, 0));
|
||||
|
||||
/// <summary>
|
||||
/// The portal that is connected with this one.
|
||||
/// </summary>
|
||||
public Portal other;
|
||||
public Portal linkedPortal;
|
||||
/// <summary>
|
||||
/// The camera that will draw the view for this portal.
|
||||
/// </summary>
|
||||
public PortalCamera portalCamera;
|
||||
|
||||
private readonly List<PortalDriver> _closePortalDrivers = new();
|
||||
|
||||
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.");
|
||||
if (!linkedPortal || linkedPortal.linkedPortal != this) throw new Exception("Other portal not set up correctly.");
|
||||
|
||||
// check whether the collider is set up correctly
|
||||
if (!GetComponent<Collider>().isTrigger) throw new Exception("Collider must be a trigger.");
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
for (var i = 0; i < _closePortalDrivers.Count; i++)
|
||||
{
|
||||
var portalDriver = _closePortalDrivers[i];
|
||||
var side = CalculateSide(portalDriver.transform);
|
||||
if (portalDriver.entrySide < 0 && side >= 0) // must have entered from the front and exited the back
|
||||
{
|
||||
_closePortalDrivers.Remove(portalDriver);
|
||||
linkedPortal._closePortalDrivers.Add(portalDriver);
|
||||
portalDriver.entrySide = -1;
|
||||
portalDriver.Teleport(this, linkedPortal);
|
||||
i--; // decrease the loop counter because the list is one element smaller now
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
var portalDriver = other.GetComponent<PortalDriver>();
|
||||
if (portalDriver && !_closePortalDrivers.Contains(portalDriver))
|
||||
{
|
||||
_closePortalDrivers.Add(portalDriver);
|
||||
portalDriver.entrySide = CalculateSide(portalDriver.transform);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider other)
|
||||
{
|
||||
var portalDriver = other.GetComponent<PortalDriver>();
|
||||
if (portalDriver)
|
||||
{
|
||||
_closePortalDrivers.Remove(portalDriver);
|
||||
}
|
||||
}
|
||||
|
||||
private int CalculateSide(Transform portalDriverTransform)
|
||||
{
|
||||
var t = transform;
|
||||
return Math.Sign(Vector3.Dot(t.forward, portalDriverTransform.position - t.position));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,10 @@ Material:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _LeftTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
@@ -60,6 +64,10 @@ Material:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _RightTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
@@ -109,6 +117,7 @@ Material:
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZTest: 4
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
||||
@@ -10,6 +10,7 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 2246995198243242195}
|
||||
- component: {fileID: 1249363658}
|
||||
- component: {fileID: 7604291350124895408}
|
||||
m_Layer: 0
|
||||
m_Name: Portal
|
||||
m_TagString: Untagged
|
||||
@@ -29,9 +30,9 @@ Transform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8885472774183339771}
|
||||
- {fileID: 4697416823958963037}
|
||||
- {fileID: 9135323956734471646}
|
||||
- {fileID: 2398425302420252226}
|
||||
- {fileID: 2168933888955393262}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -47,91 +48,21 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: ae59cddbf8fa37549bb38b1039feeb34, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
other: {fileID: 0}
|
||||
linkedPortal: {fileID: 0}
|
||||
portalCamera: {fileID: 17691322601746172}
|
||||
--- !u!1 &6911937082098131204
|
||||
GameObject:
|
||||
--- !u!65 &7604291350124895408
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8885472774183339771}
|
||||
- component: {fileID: 1178153191156473883}
|
||||
- component: {fileID: 6216133567950691622}
|
||||
m_Layer: 0
|
||||
m_Name: Quad
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8885472774183339771
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6911937082098131204}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: 0}
|
||||
m_LocalScale: {x: 1, y: 2, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2246995198243242195}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1178153191156473883
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6911937082098131204}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6216133567950691622
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6911937082098131204}
|
||||
m_GameObject: {fileID: 5635962022185625128}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 1
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
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: 603cda73335499d4980d9b171eaffe0d, 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}
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 2, z: 0.1}
|
||||
m_Center: {x: 0, y: 1, z: -0.05}
|
||||
--- !u!1 &7398326895463990628
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -164,7 +95,7 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2246995198243242195}
|
||||
m_RootOrder: 1
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!20 &7791795762741173939
|
||||
Camera:
|
||||
@@ -254,10 +185,61 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: ad60e3973ab83f3468637a06970d7f1f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
minNearClipPlane: 0.02
|
||||
minNearClipPlane: 0.0001
|
||||
portal: {fileID: 1249363658}
|
||||
portalQuad: {fileID: 6216133567950691622}
|
||||
--- !u!1001 &1842852527293547269
|
||||
screen: {fileID: 5871497001431693362}
|
||||
--- !u!1001 &5096432983393035446
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2246995198243242195}
|
||||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7511558181221131132, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 603cda73335499d4980d9b171eaffe0d, type: 2}
|
||||
- target: {fileID: 919132149155446097, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Portal Screen
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 45a0860e0db749d4881818b0d8d3d0b4, type: 3}
|
||||
--- !u!4 &4697416823958963037 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 5096432983393035446}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!23 &5871497001431693362 stripped
|
||||
MeshRenderer:
|
||||
m_CorrespondingSourceObject: {fileID: -7511558181221131132, guid: 45a0860e0db749d4881818b0d8d3d0b4,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 5096432983393035446}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8740793916703066677
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
@@ -267,7 +249,7 @@ PrefabInstance:
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
@@ -287,22 +269,22 @@ PrefabInstance:
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.0000031292439
|
||||
value: 0.7071067
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
value: 0.7071068
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
@@ -312,7 +294,7 @@ PrefabInstance:
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: -180
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
@@ -326,9 +308,9 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: a2052daf99b37934fb434aaffa9e75f2, type: 3}
|
||||
--- !u!4 &2168933888955393262 stripped
|
||||
--- !u!4 &9135323956734471646 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a2052daf99b37934fb434aaffa9e75f2,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 1842852527293547269}
|
||||
m_PrefabInstance: {fileID: 8740793916703066677}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
||||
@@ -10,7 +10,6 @@ namespace Escape_Room_Engine.Portal
|
||||
[RequireComponent(typeof(Camera))]
|
||||
public class PortalCamera : MonoBehaviour
|
||||
{
|
||||
private static readonly Matrix4x4 HalfRotation = Matrix4x4.Rotate(Quaternion.Euler(0, 180, 0));
|
||||
private static readonly Camera.StereoscopicEye[] Eyes =
|
||||
{ Camera.StereoscopicEye.Left, Camera.StereoscopicEye.Right };
|
||||
private static readonly Dictionary<Camera.StereoscopicEye, int> EyeTextureNames = new()
|
||||
@@ -22,15 +21,15 @@ namespace Escape_Room_Engine.Portal
|
||||
/// <summary>
|
||||
/// The minimum near clip plane distance to be used when calculating the oblique clip plane.
|
||||
/// </summary>
|
||||
public float minNearClipPlane = 0.02f;
|
||||
public float minNearClipPlane = 0.0001f;
|
||||
/// <summary>
|
||||
/// The portal this camera renders through.
|
||||
/// </summary>
|
||||
[SerializeField] private Portal portal;
|
||||
/// <summary>
|
||||
/// The quad where the rendered texture will be drawn on.
|
||||
/// The mesh where the rendered texture will be drawn on.
|
||||
/// </summary>
|
||||
[SerializeField] private MeshRenderer portalQuad;
|
||||
[SerializeField] private MeshRenderer screen;
|
||||
|
||||
private PlayerCamera _playerCamera;
|
||||
private Camera _camera;
|
||||
@@ -56,16 +55,18 @@ namespace Escape_Room_Engine.Portal
|
||||
RenderPipelineManager.beginCameraRendering -= Render;
|
||||
}
|
||||
|
||||
private void Render(ScriptableRenderContext scriptableRenderContext, Camera camera)
|
||||
private void Render(ScriptableRenderContext scriptableRenderContext, Camera _)
|
||||
{
|
||||
// check whether the portal plane is visible from the player camera
|
||||
var frustumPlanes = GeometryUtility.CalculateFrustumPlanes(_playerCamera.camera);
|
||||
if (!GeometryUtility.TestPlanesAABB(frustumPlanes, portal.other.portalCamera.portalQuad.bounds))
|
||||
if (!GeometryUtility.TestPlanesAABB(frustumPlanes, portal.linkedPortal.portalCamera.screen.bounds))
|
||||
// don't render this portal if it is not visible
|
||||
return;
|
||||
|
||||
var t = portal.transform;
|
||||
|
||||
screen.enabled = false;
|
||||
|
||||
foreach (var eye in Eyes)
|
||||
{
|
||||
// create portal texture if it doesn't exist yet
|
||||
@@ -75,15 +76,15 @@ namespace Escape_Room_Engine.Portal
|
||||
{
|
||||
_textures.Add(eye,
|
||||
new RenderTexture(XRSettings.eyeTextureWidth, XRSettings.eyeTextureHeight, 24));
|
||||
portal.other.portalCamera.portalQuad.material.SetTexture(EyeTextureNames[eye], _textures[eye]);
|
||||
portal.linkedPortal.portalCamera.screen.material.SetTexture(EyeTextureNames[eye], _textures[eye]);
|
||||
}
|
||||
else // no texture was created so nothing should be rendered
|
||||
continue;
|
||||
}
|
||||
|
||||
// position portal camera
|
||||
var m = t.localToWorldMatrix * HalfRotation * portal.other.transform.worldToLocalMatrix *
|
||||
_playerCamera.getEyeTransform(eye).localToWorldMatrix;
|
||||
var m = t.localToWorldMatrix * Portal.HalfRotation * portal.linkedPortal.transform.worldToLocalMatrix *
|
||||
_playerCamera.GetEyeTransform(eye).localToWorldMatrix;
|
||||
transform.SetPositionAndRotation(m.GetPosition(), m.rotation);
|
||||
_camera.projectionMatrix = _playerCamera.camera.GetStereoProjectionMatrix(eye);
|
||||
|
||||
@@ -93,7 +94,7 @@ namespace Escape_Room_Engine.Portal
|
||||
var portalPlane = new Plane(n, t.position); // clip plane in world space
|
||||
var clipPlane = _camera.worldToCameraMatrix.inverse.transpose *
|
||||
new Vector4(n.x, n.y, n.z, portalPlane.distance); // vector format clip plane in camera space
|
||||
if (Math.Abs(portalPlane.GetDistanceToPoint(transform.position)) >= minNearClipPlane)
|
||||
if (-portalPlane.GetDistanceToPoint(transform.position) >= minNearClipPlane)
|
||||
// only adjust the near clip plane if it doesn't intersect with the camera
|
||||
_camera.projectionMatrix = _camera.CalculateObliqueMatrix(clipPlane);
|
||||
|
||||
@@ -101,6 +102,8 @@ namespace Escape_Room_Engine.Portal
|
||||
_camera.targetTexture = _textures[eye];
|
||||
UniversalRenderPipeline.RenderSingleCamera(scriptableRenderContext, _camera);
|
||||
}
|
||||
|
||||
screen.enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
38
Assets/Escape Room Engine/Portal/PortalDriver.cs
Normal file
38
Assets/Escape Room Engine/Portal/PortalDriver.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Escape_Room_Engine.Portal
|
||||
{
|
||||
[RequireComponent(typeof(Collider), typeof(Rigidbody))]
|
||||
public class PortalDriver : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// The object that will be transported through the portal. Usually either this object or a parent offset object.
|
||||
/// </summary>
|
||||
[SerializeField] private Transform traveller;
|
||||
|
||||
/// <summary>
|
||||
/// The side of the portal this became tracked on.
|
||||
/// </summary>
|
||||
[HideInInspector] public int entrySide;
|
||||
|
||||
/// <summary>
|
||||
/// A reference to the collider of this portal driver.
|
||||
/// </summary>
|
||||
public Collider Collider { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
// check whether the collider is set up correctly
|
||||
Collider = GetComponent<Collider>();
|
||||
if (Collider.isTrigger) throw new Exception("Collider must not be a trigger.");
|
||||
}
|
||||
|
||||
public void Teleport(Portal from, Portal to)
|
||||
{
|
||||
var m = to.transform.localToWorldMatrix * Portal.HalfRotation * from.transform.worldToLocalMatrix *
|
||||
traveller.localToWorldMatrix;
|
||||
traveller.transform.SetPositionAndRotation(m.GetPosition(), m.rotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Escape Room Engine/Portal/PortalDriver.cs.meta
Normal file
11
Assets/Escape Room Engine/Portal/PortalDriver.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1bacec3b1d81cef43972d5dfc26a467b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -119,8 +119,8 @@ Material:
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.06666667, g: 0.5411765, b: 0.69803923, a: 1}
|
||||
- _Color: {r: 0.06666665, g: 0.5411765, b: 0.69803923, a: 1}
|
||||
- _BaseColor: {r: 1, g: 0.81960785, b: 0.4, a: 1}
|
||||
- _Color: {r: 1, g: 0.81960785, b: 0.39999998, 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: []
|
||||
|
||||
126
Assets/Escape Room Engine/Test Assets/World A.mat
Normal file
126
Assets/Escape Room Engine/Test Assets/World A.mat
Normal file
@@ -0,0 +1,126 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7976852360178017470
|
||||
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
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: World A
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
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}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.06666667, g: 0.5411765, b: 0.69803923, a: 1}
|
||||
- _Color: {r: 0.06666665, g: 0.5411765, b: 0.69803923, 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: []
|
||||
8
Assets/Escape Room Engine/Test Assets/World A.mat.meta
Normal file
8
Assets/Escape Room Engine/Test Assets/World A.mat.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aee171c2a9e1c9d43b3f93b3cfc61500
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
126
Assets/Escape Room Engine/Test Assets/World B.mat
Normal file
126
Assets/Escape Room Engine/Test Assets/World B.mat
Normal file
@@ -0,0 +1,126 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7976852360178017470
|
||||
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
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: World B
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
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}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.9372549, g: 0.2784314, b: 0.43529412, a: 1}
|
||||
- _Color: {r: 0.9372549, g: 0.27843136, b: 0.4352941, 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: []
|
||||
8
Assets/Escape Room Engine/Test Assets/World B.mat.meta
Normal file
8
Assets/Escape Room Engine/Test Assets/World B.mat.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 041825dc2cc50844f9aa0075a3004bb1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -256,7 +256,7 @@ Transform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1199088360}
|
||||
- {fileID: 1169383893}
|
||||
- {fileID: 7295752538729181700}
|
||||
- {fileID: 2061968364}
|
||||
- {fileID: 1363513912}
|
||||
@@ -845,6 +845,9 @@ GameObject:
|
||||
- component: {fileID: 250613601}
|
||||
- component: {fileID: 250613600}
|
||||
- component: {fileID: 250613604}
|
||||
- component: {fileID: 250613605}
|
||||
- component: {fileID: 250613606}
|
||||
- component: {fileID: 250613607}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
@@ -1055,6 +1058,49 @@ MonoBehaviour:
|
||||
camera: {fileID: 250613603}
|
||||
leftEye: {fileID: 49933502}
|
||||
rightEye: {fileID: 1755438915}
|
||||
--- !u!114 &250613605
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 250613598}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1bacec3b1d81cef43972d5dfc26a467b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
traveller: {fileID: 62537129}
|
||||
entrySide: 0
|
||||
--- !u!135 &250613606
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 250613598}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.05
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!54 &250613607
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 250613598}
|
||||
serializedVersion: 2
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_UseGravity: 0
|
||||
m_IsKinematic: 1
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
--- !u!1 &289664350
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2812,6 +2858,38 @@ MeshFilter:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1023639977}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &1169383892
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1169383893}
|
||||
m_Layer: 0
|
||||
m_Name: Test Camera Offset
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!4 &1169383893
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1169383892}
|
||||
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:
|
||||
- {fileID: 1199088360}
|
||||
m_Father: {fileID: 52010741}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1186837739
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3055,6 +3133,9 @@ GameObject:
|
||||
- component: {fileID: 1199088359}
|
||||
- component: {fileID: 1199088358}
|
||||
- component: {fileID: 1199088361}
|
||||
- component: {fileID: 1199088362}
|
||||
- component: {fileID: 1199088363}
|
||||
- component: {fileID: 1199088364}
|
||||
m_Layer: 0
|
||||
m_Name: Test Camera
|
||||
m_TagString: MainCamera
|
||||
@@ -3085,7 +3166,7 @@ Camera:
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
near clip plane: 0.01
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
@@ -3153,16 +3234,16 @@ Transform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1199088356}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 1.193, z: -2.275}
|
||||
m_LocalRotation: {x: 0.0697579, y: -0, z: -0, w: 0.99756396}
|
||||
m_LocalPosition: {x: 0, y: 1.193, z: -2.275}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 195513902}
|
||||
- {fileID: 817509151}
|
||||
m_Father: {fileID: 52010741}
|
||||
m_Father: {fileID: 1169383893}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 8, y: 0, z: 0}
|
||||
--- !u!114 &1199088361
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3178,6 +3259,49 @@ MonoBehaviour:
|
||||
camera: {fileID: 1199088357}
|
||||
leftEye: {fileID: 195513902}
|
||||
rightEye: {fileID: 817509151}
|
||||
--- !u!114 &1199088362
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1199088356}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1bacec3b1d81cef43972d5dfc26a467b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
traveller: {fileID: 1169383893}
|
||||
entrySide: 0
|
||||
--- !u!135 &1199088363
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1199088356}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.05
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!54 &1199088364
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1199088356}
|
||||
serializedVersion: 2
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_UseGravity: 0
|
||||
m_IsKinematic: 1
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
--- !u!1 &1274381185
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3195,7 +3319,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1274381186
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3258,15 +3382,29 @@ PrefabInstance:
|
||||
propertyPath: camera
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1249363658, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
|
||||
propertyPath: linkedPortal
|
||||
value:
|
||||
objectReference: {fileID: 7295752538729181702}
|
||||
- target: {fileID: 1249363658, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
|
||||
propertyPath: playerCamera
|
||||
value:
|
||||
objectReference: {fileID: 1199088357}
|
||||
- target: {fileID: 1889810494552553078, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 041825dc2cc50844f9aa0075a3004bb1, type: 2}
|
||||
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.001
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
@@ -3302,11 +3440,26 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2708038842397463387, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 041825dc2cc50844f9aa0075a3004bb1, type: 2}
|
||||
- target: {fileID: 5635962022185625128, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Portal 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7579483879678998835, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 041825dc2cc50844f9aa0075a3004bb1, type: 2}
|
||||
- target: {fileID: 7965773041589933745, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 041825dc2cc50844f9aa0075a3004bb1, type: 2}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
|
||||
--- !u!4 &1281318075 stripped
|
||||
@@ -3394,7 +3547,7 @@ MeshRenderer:
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
- {fileID: 2100000, guid: aee171c2a9e1c9d43b3f93b3cfc61500, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
@@ -3755,7 +3908,7 @@ MeshRenderer:
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
- {fileID: 2100000, guid: 041825dc2cc50844f9aa0075a3004bb1, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
@@ -3896,7 +4049,7 @@ MeshRenderer:
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
- {fileID: 2100000, guid: 041825dc2cc50844f9aa0075a3004bb1, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
@@ -4329,7 +4482,7 @@ MeshRenderer:
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
- {fileID: 2100000, guid: aee171c2a9e1c9d43b3f93b3cfc61500, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
@@ -4604,15 +4757,29 @@ PrefabInstance:
|
||||
propertyPath: camera
|
||||
value:
|
||||
objectReference: {fileID: 1199088357}
|
||||
- target: {fileID: 1249363658, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
|
||||
propertyPath: linkedPortal
|
||||
value:
|
||||
objectReference: {fileID: 1281318076}
|
||||
- target: {fileID: 1249363658, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
|
||||
propertyPath: playerCamera
|
||||
value:
|
||||
objectReference: {fileID: 1199088357}
|
||||
- target: {fileID: 1889810494552553078, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: aee171c2a9e1c9d43b3f93b3cfc61500, type: 2}
|
||||
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.001
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2246995198243242195, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
@@ -4628,11 +4795,26 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2708038842397463387, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: aee171c2a9e1c9d43b3f93b3cfc61500, type: 2}
|
||||
- target: {fileID: 5635962022185625128, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Portal 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7579483879678998835, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: aee171c2a9e1c9d43b3f93b3cfc61500, type: 2}
|
||||
- target: {fileID: 7965773041589933745, guid: c50e7df1078c96f46bc6825f7e422fb7,
|
||||
type: 3}
|
||||
propertyPath: m_Materials.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: aee171c2a9e1c9d43b3f93b3cfc61500, type: 2}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: c50e7df1078c96f46bc6825f7e422fb7, type: 3}
|
||||
--- !u!4 &7295752538729181700 stripped
|
||||
|
||||
@@ -12,7 +12,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3}
|
||||
m_Name: SSAO
|
||||
m_EditorClassIdentifier:
|
||||
m_Active: 1
|
||||
m_Active: 0
|
||||
m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
|
||||
m_Settings:
|
||||
Downsample: 0
|
||||
@@ -59,7 +59,7 @@ MonoBehaviour:
|
||||
type: 3}
|
||||
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||
type: 3}
|
||||
m_AssetVersion: 1
|
||||
m_AssetVersion: 2
|
||||
m_OpaqueLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
@@ -76,6 +76,7 @@ MonoBehaviour:
|
||||
m_ShadowTransparentReceive: 1
|
||||
m_RenderingMode: 0
|
||||
m_DepthPrimingMode: 0
|
||||
m_CopyDepthMode: 0
|
||||
m_AccurateGbufferNormals: 0
|
||||
m_ClusteredRendering: 0
|
||||
m_TileSize: 32
|
||||
|
||||
@@ -39,7 +39,7 @@ MonoBehaviour:
|
||||
m_AdditionalLightsShadowResolutionTierHigh: 512
|
||||
m_ReflectionProbeBlending: 1
|
||||
m_ReflectionProbeBoxProjection: 1
|
||||
m_ShadowDistance: 150
|
||||
m_ShadowDistance: 10
|
||||
m_ShadowCascadeCount: 4
|
||||
m_Cascade2Split: 0.25
|
||||
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||
|
||||
Reference in New Issue
Block a user