mirror of
https://github.com/PashaBibko/The-Mobius-Line.git
synced 2026-04-03 17:39:03 +00:00
Epilepsy sim
This commit is contained in:
@@ -10,9 +10,10 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 6525768614182165007}
|
- component: {fileID: 6525768614182165007}
|
||||||
- component: {fileID: 4470023418895194988}
|
- component: {fileID: 4470023418895194988}
|
||||||
m_Layer: 0
|
- component: {fileID: 5568742943214540714}
|
||||||
|
m_Layer: 12
|
||||||
m_Name: Manager
|
m_Name: Manager
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
@@ -47,41 +48,29 @@ MonoBehaviour:
|
|||||||
m_OtherPortal: {fileID: 0}
|
m_OtherPortal: {fileID: 0}
|
||||||
m_CameraPrefab: {fileID: 1179287573507601862, guid: 1a28b9e152b1d3d419d1881ea498fcbf, type: 3}
|
m_CameraPrefab: {fileID: 1179287573507601862, guid: 1a28b9e152b1d3d419d1881ea498fcbf, type: 3}
|
||||||
m_PortalRenderer: {fileID: 4162196787169641245}
|
m_PortalRenderer: {fileID: 4162196787169641245}
|
||||||
|
m_PlayerTag:
|
||||||
m_PlayerPoint: {fileID: 6158405577604730568}
|
m_PlayerPoint: {fileID: 6158405577604730568}
|
||||||
m_Pos: {fileID: 8037706452414992202}
|
--- !u!65 &5568742943214540714
|
||||||
m_Rot: {fileID: 7913558143758367436}
|
BoxCollider:
|
||||||
--- !u!1 &1109503274534853756
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
serializedVersion: 6
|
m_GameObject: {fileID: 854078383130308031}
|
||||||
m_Component:
|
m_Material: {fileID: 0}
|
||||||
- component: {fileID: 7913558143758367436}
|
m_IncludeLayers:
|
||||||
m_Layer: 0
|
serializedVersion: 2
|
||||||
m_Name: Rot
|
m_Bits: 0
|
||||||
m_TagString: Untagged
|
m_ExcludeLayers:
|
||||||
m_Icon: {fileID: 0}
|
serializedVersion: 2
|
||||||
m_NavMeshLayer: 0
|
m_Bits: 0
|
||||||
m_StaticEditorFlags: 0
|
m_LayerOverridePriority: 0
|
||||||
m_IsActive: 1
|
m_IsTrigger: 1
|
||||||
--- !u!4 &7913558143758367436
|
m_ProvidesContacts: 0
|
||||||
Transform:
|
m_Enabled: 1
|
||||||
m_ObjectHideFlags: 0
|
serializedVersion: 3
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_Size: {x: 10, y: 10, z: 0.1}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_Center: {x: 0, y: 5, z: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1109503274534853756}
|
|
||||||
serializedVersion: 2
|
|
||||||
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: 8037706452414992202}
|
|
||||||
m_Father: {fileID: 3117384245817137028}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &2957412639318883996
|
--- !u!1 &2957412639318883996
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -91,9 +80,9 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 6158405577604730568}
|
- component: {fileID: 6158405577604730568}
|
||||||
m_Layer: 0
|
m_Layer: 12
|
||||||
m_Name: PlayerPos
|
m_Name: PlayerPos
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
@@ -124,9 +113,9 @@ GameObject:
|
|||||||
- component: {fileID: 2772991262862259612}
|
- component: {fileID: 2772991262862259612}
|
||||||
- component: {fileID: 5956259521933674024}
|
- component: {fileID: 5956259521933674024}
|
||||||
- component: {fileID: 4162196787169641245}
|
- component: {fileID: 4162196787169641245}
|
||||||
m_Layer: 0
|
m_Layer: 12
|
||||||
m_Name: RenderSurface
|
m_Name: RenderSurface
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
@@ -196,37 +185,6 @@ MeshRenderer:
|
|||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_AdditionalVertexStreams: {fileID: 0}
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
--- !u!1 &4970227605924577730
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 8037706452414992202}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Pos
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &8037706452414992202
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4970227605924577730}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 7913558143758367436}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &5834152528747782185
|
--- !u!1 &5834152528747782185
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -236,9 +194,9 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 3117384245817137028}
|
- component: {fileID: 3117384245817137028}
|
||||||
m_Layer: 0
|
m_Layer: 12
|
||||||
m_Name: Portal
|
m_Name: Portal
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
@@ -258,7 +216,6 @@ Transform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 6525768614182165007}
|
- {fileID: 6525768614182165007}
|
||||||
- {fileID: 2772991262862259612}
|
- {fileID: 2772991262862259612}
|
||||||
- {fileID: 7913558143758367436}
|
|
||||||
- {fileID: 6158405577604730568}
|
- {fileID: 6158405577604730568}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ GameObject:
|
|||||||
- component: {fileID: 1896638422029351328}
|
- component: {fileID: 1896638422029351328}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Sphere
|
m_Name: Sphere
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
@@ -94,7 +94,7 @@ GameObject:
|
|||||||
- component: {fileID: 8674285141076725919}
|
- component: {fileID: 8674285141076725919}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: PortalCam
|
m_Name: PortalCam
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
@@ -129,7 +129,7 @@ GameObject:
|
|||||||
- component: {fileID: 1977297312153635828}
|
- component: {fileID: 1977297312153635828}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Camera
|
m_Name: Camera
|
||||||
m_TagString: Untagged
|
m_TagString: Portal
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,10 @@ public partial class PlayerMovement : MonoBehaviour
|
|||||||
{
|
{
|
||||||
private void OnTriggerStay(Collider other)
|
private void OnTriggerStay(Collider other)
|
||||||
{
|
{
|
||||||
m_WallCollisions.Add(other);
|
// Stops it trying to find the normals of portals
|
||||||
|
// if (other.CompareTag("Portal")) { return; }
|
||||||
|
|
||||||
|
// Else adds it to the list
|
||||||
|
// m_WallCollisions.Add(other);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,9 +82,27 @@ public partial class PlayerMovement : MonoBehaviour
|
|||||||
//
|
//
|
||||||
Vector3 m_WallNormal;
|
Vector3 m_WallNormal;
|
||||||
|
|
||||||
|
// Only instance of the player
|
||||||
|
static PlayerMovement s_Instance;
|
||||||
|
|
||||||
|
public static Transform Orientation() => s_Instance.m_Orientation;
|
||||||
|
public static Vector3 Pos() => s_Instance.transform.position;
|
||||||
|
public static void SetPos(Vector3 v) => s_Instance.transform.parent.position = v;
|
||||||
|
public static GameObject Object() => s_Instance.gameObject;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
// Checks there is not more than one player at one time
|
||||||
|
if (s_Instance != null)
|
||||||
|
{
|
||||||
|
Debug.LogError("Multiple players");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sets it to the instance
|
||||||
|
s_Instance = this;
|
||||||
|
|
||||||
// Stops the rigidbody from rotatating when we don't want it to
|
// Stops the rigidbody from rotatating when we don't want it to
|
||||||
m_Body.freezeRotation = true;
|
m_Body.freezeRotation = true;
|
||||||
|
|
||||||
|
|||||||
@@ -31,8 +31,7 @@ public partial class PlayerMovement : MonoBehaviour
|
|||||||
Vector3 point = closest.ClosestPoint(transform.position);
|
Vector3 point = closest.ClosestPoint(transform.position);
|
||||||
Vector3 dir = point - transform.position;
|
Vector3 dir = point - transform.position;
|
||||||
|
|
||||||
RaycastHit hit;
|
if (Physics.Raycast(transform.position, dir.normalized, out RaycastHit hit, (m_WallCheckDistance * 2.0f) + 1.0f, m_GroundMask))
|
||||||
if (Physics.Raycast(transform.position, dir.normalized, out hit, (m_WallCheckDistance * 2.0f) + 1.0f, m_GroundMask))
|
|
||||||
{
|
{
|
||||||
normal = hit.normal;
|
normal = hit.normal;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -21,12 +21,10 @@ public class PortalCamera : MonoBehaviour
|
|||||||
// Initialistion function for the camera
|
// Initialistion function for the camera
|
||||||
public void InitCamera(MeshRenderer renderer, PortalManager creator, Vector3 rot)
|
public void InitCamera(MeshRenderer renderer, PortalManager creator, Vector3 rot)
|
||||||
{
|
{
|
||||||
Debug.Log(rot);
|
// Transfers the passed rotation to be stored within the class
|
||||||
|
|
||||||
//
|
|
||||||
m_Rot = rot;
|
m_Rot = rot;
|
||||||
|
|
||||||
//
|
// Stores both portals
|
||||||
m_CapturePortal = creator.Linked();
|
m_CapturePortal = creator.Linked();
|
||||||
m_DisplayPortal = creator;
|
m_DisplayPortal = creator;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using UnityEditor.UIElements;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class PortalManager : MonoBehaviour
|
public class PortalManager : MonoBehaviour
|
||||||
@@ -12,10 +13,17 @@ public class PortalManager : MonoBehaviour
|
|||||||
[Header("Points")]
|
[Header("Points")]
|
||||||
[SerializeField] Transform m_PlayerPoint;
|
[SerializeField] Transform m_PlayerPoint;
|
||||||
|
|
||||||
|
// Private variables //
|
||||||
|
|
||||||
PortalManager m_OtherManager;
|
PortalManager m_OtherManager;
|
||||||
PortalCamera m_PortalCamera;
|
PortalCamera m_PortalCamera;
|
||||||
|
|
||||||
|
bool m_PlayerOverlapping = false;
|
||||||
|
|
||||||
|
// Gets the other end of the portal
|
||||||
public PortalManager Linked() => m_OtherManager;
|
public PortalManager Linked() => m_OtherManager;
|
||||||
|
|
||||||
|
// Gets the location of the player relative to the portal
|
||||||
public Vector3 PlayerOffset() => m_PlayerPoint.localPosition;
|
public Vector3 PlayerOffset() => m_PlayerPoint.localPosition;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
@@ -40,6 +48,54 @@ public class PortalManager : MonoBehaviour
|
|||||||
// Updates is called every frame
|
// Updates is called every frame
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
|
// Updates the player position relative to the portal
|
||||||
m_PlayerPoint.position = CameraController.Instance().transform.position;
|
m_PlayerPoint.position = CameraController.Instance().transform.position;
|
||||||
|
|
||||||
|
// Checks if the player is overlapping with the portal
|
||||||
|
if (m_PlayerOverlapping)
|
||||||
|
{
|
||||||
|
Vector3 difference = PlayerMovement.Pos() - transform.position;
|
||||||
|
float dotProduct = Vector3.Dot(transform.up, difference);
|
||||||
|
|
||||||
|
// If this is true the player has crossed the portal
|
||||||
|
if (dotProduct < 0f || true)
|
||||||
|
{
|
||||||
|
Debug.Log("Teleported player");
|
||||||
|
|
||||||
|
// Rotates the player
|
||||||
|
float rotDif = -Quaternion.Angle(transform.rotation, m_OtherManager.transform.rotation);
|
||||||
|
rotDif += 180.0f;
|
||||||
|
PlayerMovement.Orientation().Rotate(Vector3.up, rotDif);
|
||||||
|
|
||||||
|
// Teleports the player
|
||||||
|
Vector3 offset = Quaternion.Euler(0f, rotDif, 0f) * difference;
|
||||||
|
PlayerMovement.SetPos(m_OtherManager.transform.position + offset);
|
||||||
|
|
||||||
|
// Stops the overlapping as it has ended
|
||||||
|
m_PlayerOverlapping = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Log("Player was not teleported");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// When something enters the portal
|
||||||
|
private void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
// Changing the state if it is not the player will causes issues
|
||||||
|
if (other.CompareTag(PlayerMovement.Object().tag) == false) { return; }
|
||||||
|
m_PlayerOverlapping = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When something exits the portal
|
||||||
|
private void OnTriggerExit(Collider other)
|
||||||
|
{
|
||||||
|
// Changing the state if it is not the player will causes issues
|
||||||
|
if (other.CompareTag(PlayerMovement.Object().tag) == false) { return; }
|
||||||
|
m_PlayerOverlapping = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
--- !u!78 &1
|
--- !u!78 &1
|
||||||
TagManager:
|
TagManager:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
tags: []
|
tags:
|
||||||
|
- Portal
|
||||||
|
- NoTag
|
||||||
layers:
|
layers:
|
||||||
- Default
|
- Default
|
||||||
- TransparentFX
|
- TransparentFX
|
||||||
@@ -17,7 +19,7 @@ TagManager:
|
|||||||
- Player
|
- Player
|
||||||
- Ground
|
- Ground
|
||||||
- Slope
|
- Slope
|
||||||
-
|
- Portal
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|||||||
Reference in New Issue
Block a user