32 Commits

Author SHA1 Message Date
Marouette
dc8d53a710 Merge pull request #4 from CrowMate/feat/root-enemies
Feat/root enemies
2026-05-04 20:54:48 +02:00
Pierre Ryssen
e9187351a6 fix (sphere): remove the sphere 2026-05-04 22:17:59 +02:00
Pierre Ryssen
4d4a54094e feat (material): add a vine around the player and set a material on it 2026-05-04 21:10:41 +02:00
Pierre Ryssen
360b30370a feat (orbiting spere): create a sphere that orbiting around thats mimic the living root behaviour 2026-05-03 17:10:19 +02:00
Pierre Ryssen
af01c1ee76 feat (root crawler): start the vine grip around the player body when it enter in the slowdown area 2026-05-03 15:14:29 +02:00
Pierre Ryssen
6b3913fe2b feat (rootCrawler): create a sphere with a trailing line 2026-05-03 14:12:07 +02:00
Pierre Ryssen
203f3e548b feat (slowdown): reduce the animation speed when in the slowdown area 2026-05-01 22:04:56 +02:00
Pierre Ryssen
94c28dca2f refactor (slowndow): create a function in movement script to apply the slowdown 'keep the logic' 2026-05-01 21:53:19 +02:00
Pierre Ryssen
f120b487ec feat (root enemies): entrave the jump of the player when in area 2026-04-30 18:48:17 +02:00
Pierre Ryssen
7f2c58f864 feat (rootEnemies): create a slowdown area that slow the player 2026-04-29 23:16:46 +02:00
Pierre Ryssen
7a4f79ac6b feat (architecture): create an 'Enemies' directory and 'LivingRoot' directory in Script 2026-04-26 18:34:11 +02:00
Pierre Ryssen
14310f742f feat: add the personnal devroom directory 2026-04-26 18:22:56 +02:00
Pierre Ryssen
4a3f0ec740 feat (.gitignore): add the DevRoom/Perso/ in the .gitignore 2026-04-26 16:20:34 +02:00
Marouette
2a5d8a0944 Merge pull request #3 from CrowMate/Prototype
Prototype
2026-04-26 15:35:35 +02:00
cceee1df1b Merge pull request 'fix: remove merge confilct from PC_Renderer.asset' (#10) from fix-compilation-issue into Prototype
Reviewed-on: #10
Reviewed-by: Pierre1901 <pierre.ryssen@crowmate.fr>
Reviewed-by: BoxOfPandor <thibault.pouch@crowmate.fr>
2026-04-23 16:45:51 +02:00
timote koenig
9926d6c24f fix: remove merge confilct from PC_Renderer.asset 2026-04-23 13:51:06 +02:00
3a758bb245 Merge pull request 'feat/add-throwable-items' (#9) from feat/add-throwable-items into Prototype
Reviewed-on: #9
Reviewed-by: BoxOfPandor <thibault.pouch@crowmate.fr>
2026-04-06 21:50:27 +02:00
Pierre Ryssen
0554662c32 fix: change the typo 'teh' into 'the' in the throw script 2026-03-31 22:03:32 +02:00
Pierre Ryssen
e42114602a test: add throwable items in the dev room 2026-03-31 22:01:29 +02:00
Pierre Ryssen
f593bc2e20 perf: add a grabbable layer and set all things that can be grab in one file 2026-03-31 20:54:44 +02:00
Pierre Ryssen
cac96fd09f feat: add throwable boxs and set it as prefab 2026-03-30 23:49:36 +02:00
Pierre Ryssen
fcb0f813dd fix: sync the prototype 2026-03-30 18:01:33 +02:00
Pierre Ryssen
175162fccf Merge branch 'feat/add-juices' into Prototype 2026-03-30 17:55:17 +02:00
Pierre Ryssen
bf59f9b2da assets: mobile_RPAsset 2026-03-30 16:41:02 +02:00
Pierre Ryssen
9183a4e687 recovery: set the recovery 2026-03-30 16:40:04 +02:00
Pierre Ryssen
d0d5fccc37 feat (vision): remove the crt 2026-03-30 16:16:30 +02:00
Thibault Pouch
faf2f92521 feat: add editor-specific quit functionality to RetroMainMenuUI 2026-03-13 21:25:34 +01:00
Thibault Pouch
ffa489db0d fix : error in the menu and rename files 2026-03-13 21:23:42 +01:00
Thibault Pouch
53fd617abe feat: add RetroMainMenuUI script and associated meta file for main menu functionality 2026-03-13 19:28:19 +01:00
Thibault Pouch
64b2d63799 refactor: update text wrapping mode in RobotBootSequence and clean up CRTRendererFeature 2026-03-13 19:28:03 +01:00
Thibault Pouch
f42463176f feat: add robot boot sequence with input control management 2026-03-13 18:58:15 +01:00
Thibault Pouch
ab434be65f feat : add a cathodic efect on the player cam 2026-03-13 18:38:48 +01:00
63 changed files with 166796 additions and 20918 deletions

2
.gitignore vendored
View File

@@ -62,3 +62,5 @@ Thumbs.db.meta
# VS Code
*.vscode
.vsconfig
Assets/Level/Scenes/DevRoom/Perso/

View File

@@ -2,7 +2,7 @@
- Project name: HeadlessHazard
- Unity version: Unity 6000.3.10f1
- Active game object:
- Name: Button_3
- Tag: Untagged
- Name: Player
- Tag: Player
- Layer: Default
<!-- UNITY CODE ASSIST INSTRUCTIONS END -->

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d82ed499bde37d2bca7590ba5952894f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 91ac6bdb3a3fc30fa9e96966372092e3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cd6d6893cb79bcda4bd1aebc58cdc64e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,56 @@
using UnityEngine;
public class RootCrawler : MonoBehaviour
{
public Transform target;
public float maxHeight = 2f;
public float crawlingSpeed = 0.4f;
public float radius = 0.5f;
public float rotationSpeed = 5f;
public float noiseStrength = 0.06f;
public float noiseFrequency = 1.5f;
public int resolution = 80;
private float currentHeight = 0f;
private float noiseOffset;
private LineRenderer line;
private float angleOffset = 0f;
void Start()
{
line = GetComponent<LineRenderer>();
noiseOffset = Random.Range(0f, 100f);
}
void Update()
{
if (target == null)
return;
currentHeight += Time.deltaTime * crawlingSpeed;
currentHeight = Mathf.Clamp(currentHeight, 0f, maxHeight);
angleOffset += Time.deltaTime * 2f;
int currentResolution = Mathf.Max(2, Mathf.RoundToInt((currentHeight / maxHeight) * resolution));
line.positionCount = currentResolution;
for (int i = 0; i < currentResolution; i++) {
float t = (float)i / (currentResolution - 1);
float h = t * currentHeight;
float angle = t * rotationSpeed * maxHeight / crawlingSpeed + angleOffset;
float r = Mathf.Lerp(radius, radius * 0.5f, t);
float noiseX = (Mathf.PerlinNoise(noiseOffset + h * noiseFrequency, 0f) - 0.5f) * noiseStrength;
float noiseZ = (Mathf.PerlinNoise(0f, noiseOffset + h * noiseFrequency) - 0.5f) * noiseStrength;
float x = Mathf.Cos(angle) * r + noiseX;
float z = Mathf.Sin(angle) * r + noiseZ;
line.SetPosition(i, target.position + new Vector3(x, h - 0.8f, z));
}
float rotationMultiplier = 1f - (currentHeight / maxHeight);
angleOffset += Time.deltaTime * 2f * (rotationMultiplier + 0.1f);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 32b713897b19bfd9fbc1d58800761b20

View File

@@ -0,0 +1,63 @@
using UnityEngine;
public class SlowdownArea : MonoBehaviour
{
[Header("References")]
public float maxSlow;
public float slowSpeed;
public float timer;
public GameObject playerBody;
[Header("Root Crawler")]
public GameObject rootCrawlerPrefab;
private float baseJump;
private bool isInZone = false;
private PlayerMovement player;
private PlayerJump jump;
private GameObject currentCrawler;
private void OnTriggerEnter(Collider area)
{
if (area.CompareTag("Player")){
player = area.GetComponent<PlayerMovement>();
jump = area.GetComponent<PlayerJump>();
baseJump = 5.0f;
jump.JumpForce = 1.5f;
isInZone = true;
if (currentCrawler == null) {
currentCrawler = Instantiate(rootCrawlerPrefab, player.transform);
RootCrawler crawler = currentCrawler.GetComponent<RootCrawler>();
crawler.target = playerBody.transform;
}
}
}
private void OnTriggerExit(Collider area)
{
if (area.CompareTag("Player")) {
isInZone = false;
timer = 0f;
player.ApplySlow(1f);
player.ApplyAnimationSlow(1f);
jump.JumpForce = baseJump;
if (currentCrawler != null) {
Destroy(currentCrawler);
}
}
}
// Update is called once per frame
void Update()
{
if (!isInZone || player == null)
return;
timer += Time.deltaTime;
float t = Mathf.Clamp(timer * slowSpeed, 0f, 1f);
float multiplicator = Mathf.Lerp(1f, maxSlow, t);
player.ApplySlow(multiplicator);
player.ApplyAnimationSlow(multiplicator);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: dbfa6ebdeb68bf2f6a5c4d25311b5811

View File

@@ -55,7 +55,8 @@ public class ButtonSequenceDoorPuzzle : MonoBehaviour
if (button == null)
continue;
UnityAction action = () => OnButtonPressed(i);
int buttonIndex = i;
UnityAction action = () => OnButtonPressed(buttonIndex);
m_cachedListeners[i] = action;
button.OnInteract.AddListener(action);
}

View File

@@ -0,0 +1,72 @@
using UnityEngine;
public class BoxPickup : MonoBehaviour
{
public Transform PlayerTransform;
public Transform CameraTransform;
public Transform HandTransform;
public float ThrowForce = 10f;
public float PickupDistance = 5f;
private bool isHeld;
private Rigidbody m_rigidbody;
private PlayerInputController input;
void Start()
{
m_rigidbody = GetComponent<Rigidbody>();
input = PlayerTransform.GetComponent<PlayerInputController>();
}
void Update()
{
if (input.InteractPressed)
{
if (!isHeld)
TryPickup();
else
Drop();
}
if (input.ThrowPressed)
Throw();
}
private void TryPickup()
{
Collider[] hits = Physics.OverlapSphere(PlayerTransform.position, PickupDistance);
foreach (Collider hit in hits)
{
if (hit.transform == transform) {
Pickup();
return;
}
}
}
private void Pickup()
{
isHeld = true;
m_rigidbody.isKinematic = true;
transform.SetParent(HandTransform);
transform.localPosition = Vector3.zero;
transform.localRotation = Quaternion.identity;
}
private void Drop()
{
isHeld = false;
transform.SetParent(null);
m_rigidbody.isKinematic = false;
}
private void Throw()
{
if (!isHeld)
return;
Drop();
m_rigidbody.AddForce(PlayerTransform.forward * ThrowForce, ForceMode.Impulse);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a36af2e55a3732eb2abc110ae2365702

View File

@@ -20,7 +20,6 @@ public class PressurePlateButton : MonoBehaviour
public UnityEvent OnReleased;
private readonly HashSet<Collider> m_validCollidersOnPlate = new HashSet<Collider>();
private readonly HashSet<Collider> m_stayedThisPhysicsFrame = new HashSet<Collider>();
private bool m_isPressed;
private void Reset()
@@ -43,16 +42,8 @@ public class PressurePlateButton : MonoBehaviour
}
}
private void OnTriggerStay(Collider other)
{
if (IsValidActivator(other))
m_stayedThisPhysicsFrame.Add(other);
}
private void OnTriggerExit(Collider other)
{
m_stayedThisPhysicsFrame.Remove(other);
if (!m_validCollidersOnPlate.Remove(other))
return;
@@ -63,26 +54,6 @@ public class PressurePlateButton : MonoBehaviour
}
}
private void FixedUpdate()
{
if (m_validCollidersOnPlate.Count == 0)
{
m_stayedThisPhysicsFrame.Clear();
return;
}
m_validCollidersOnPlate.RemoveWhere(c => c == null || !c.enabled || !c.gameObject.activeInHierarchy);
m_validCollidersOnPlate.IntersectWith(m_stayedThisPhysicsFrame);
m_stayedThisPhysicsFrame.Clear();
if (m_validCollidersOnPlate.Count == 0 && m_isPressed)
{
m_isPressed = false;
OnReleased?.Invoke();
}
}
private bool IsValidActivator(Collider other)
{
if (((1 << other.gameObject.layer) & detectionMask) == 0)

View File

@@ -7,7 +7,7 @@ public class SlidingDoor : MonoBehaviour
public enum SlideDirection { Positive = 1, Negative = -1 }
[Header("Slide Settings")]
[Tooltip("Axis in parent space (or world space if no parent) the door slides along.")]
[Tooltip("Local axis the door slides along.")]
[SerializeField] private SlideAxis axis = SlideAxis.X;
[Tooltip("Which way along the axis the door opens.")]
@@ -36,7 +36,7 @@ public class SlidingDoor : MonoBehaviour
private void Awake()
{
m_closedPos = transform.localPosition;
m_openPos = m_closedPos + GetParentSpaceSlideVector() * slideDistance;
m_openPos = m_closedPos + GetSlideVector() * slideDistance;
if (startOpen)
{
@@ -86,7 +86,7 @@ public class SlidingDoor : MonoBehaviour
Open();
}
private Vector3 GetParentSpaceSlideVector()
private Vector3 GetSlideVector()
{
float sign = (float)direction;
return axis switch
@@ -98,19 +98,14 @@ public class SlidingDoor : MonoBehaviour
};
}
private Vector3 GetWorldSpaceSlideVector()
{
return transform.parent != null
? transform.parent.TransformDirection(GetParentSpaceSlideVector()).normalized
: GetParentSpaceSlideVector().normalized;
}
#if UNITY_EDITOR
private void OnDrawGizmos()
{
Vector3 worldClosed = transform.position;
Vector3 worldClosed = transform.parent != null
? transform.parent.TransformPoint(transform.localPosition)
: transform.position;
Vector3 slideVec = GetWorldSpaceSlideVector() * slideDistance;
Vector3 slideVec = transform.TransformDirection(GetSlideVector()) * slideDistance;
Gizmos.color = Color.cyan;
Gizmos.DrawLine(worldClosed, worldClosed + slideVec);
Gizmos.DrawWireSphere(worldClosed + slideVec, 0.08f);

View File

@@ -144,13 +144,12 @@ public class SubtitleSequencePlayer : MonoBehaviour
float typeTime = 0f;
int totalChars = line.text.Length;
int visibleChars = 0;
if (typewriterCharsPerSecond > 0f)
{
while (m_currentText.Length < totalChars)
{
typeTime += Time.deltaTime;
visibleChars = Mathf.Clamp(Mathf.FloorToInt(typeTime * typewriterCharsPerSecond), 0, totalChars);
int visibleChars = Mathf.Clamp(Mathf.FloorToInt(typeTime * typewriterCharsPerSecond), 0, totalChars);
m_currentText = line.text.Substring(0, visibleChars);
yield return null;
}

View File

@@ -2,18 +2,25 @@ using UnityEngine;
public class PlayerHeadController : MonoBehaviour
{
[Header("Head")]
public Transform Head;
public Transform CameraTransform;
public Transform BodyTransform;
public float ThrowForce;
public float PickupDistance;
public bool isHoldingHead;
private Rigidbody m_headRigidbody;
[Header("Grabbable")]
public Transform HandTransform; // in the future hand maybe grab items but for now its an empty object
public float ItemThrowForce = 10f;
public float ItemPickupDistance = 5f;
private bool isHoldingItem;
private Rigidbody m_itemRigidbody;
private Collider m_itemCollider;
private Transform m_currentItem;
private Rigidbody m_headRigidbody;
private Vector3 m_headInitialLocalPos;
private Quaternion m_headInitialLocalRot;
@@ -31,7 +38,6 @@ public class PlayerHeadController : MonoBehaviour
Cursor.lockState = CursorLockMode.Locked;
Vector3 offset = new Vector3(0f, -0.5f, 0.5f);
m_headInitialLocalPos = BodyTransform.localPosition + offset;
m_headInitialLocalRot = BodyTransform.localRotation;
m_headRigidbody = Head.GetComponent<Rigidbody>();
@@ -42,14 +48,20 @@ public class PlayerHeadController : MonoBehaviour
void Update()
{
if (input.HeadInteractionPressed)
{
InteractHead();
}
if (input.ThrowPressed)
{
if (input.ThrowPressed && isHoldingHead)
ThrowHead();
if (input.InteractPressed)
{
if (!isHoldingItem)
TryPickupItem();
else
DropItem();
}
if (input.ThrowPressed && isHoldingItem)
ThrowItem();
}
private void InteractHead()
@@ -60,61 +72,84 @@ public class PlayerHeadController : MonoBehaviour
DropHead();
}
private void TryPickupHead()
{
if (isHoldingHead || isHoldingItem)
return;
if (Vector3.Distance(transform.position, Head.position) <= PickupDistance)
PickupHead();
}
private void PickupHead()
{
isHoldingHead = true;
if (m_headRigidbody != null)
Destroy(m_headRigidbody);
Head.SetParent(transform);
Head.localPosition = m_headInitialLocalPos;
Head.localRotation = m_headInitialLocalRot;
}
private void DropHead()
{
Debug.Log("DropHead");
animator.SetTrigger("Throw");
isHoldingHead = false;
Head.SetParent(null);
m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
m_headRigidbody.mass = 1f;
m_headRigidbody.constraints =
RigidbodyConstraints.FreezeRotationX |
RigidbodyConstraints.FreezeRotationZ |
RigidbodyConstraints.FreezeRotationY;
}
private void ThrowHead()
{
Debug.Log("ThrowHead");
if (!isHoldingHead)
return;
DropHead();
m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
}
private void TryPickupHead()
private void TryPickupItem()
{
if (isHoldingHead)
if (isHoldingHead || isHoldingItem)
return;
int grabbableLayer = LayerMask.GetMask("Grabbable");
Collider[] hits = Physics.OverlapSphere(transform.position, ItemPickupDistance, grabbableLayer);
float distance = Vector3.Distance(transform.position, Head.position);
if (distance <= PickupDistance)
foreach (Collider hit in hits)
{
PickupHead();
m_currentItem = hit.transform;
m_itemRigidbody = hit.GetComponent<Rigidbody>();
m_itemCollider = hit.GetComponent<Collider>();
PickupItem();
return;
}
}
private void PickupHead()
private void PickupItem()
{
Debug.Log("PickupHead");
isHoldingHead = true;
isHoldingItem = true;
m_itemRigidbody.isKinematic = true;
m_itemCollider.enabled = false;
if (m_headRigidbody != null)
m_currentItem.SetParent(HandTransform);
m_currentItem.localPosition = Vector3.zero;
m_currentItem.localRotation = Quaternion.identity;
}
private void DropItem()
{
Destroy(m_headRigidbody);
isHoldingItem = false;
m_currentItem.SetParent(null);
m_itemRigidbody.isKinematic = false;
m_itemCollider.enabled = true;
m_currentItem = null;
}
Head.SetParent(transform);
Head.localPosition = m_headInitialLocalPos;
Head.localRotation = m_headInitialLocalRot;
private void ThrowItem()
{
DropItem();
m_itemRigidbody.AddForce(BodyTransform.forward * ItemThrowForce, ForceMode.Impulse);
}
}

View File

@@ -4,22 +4,27 @@ using UnityEngine.InputSystem;
public class PlayerInputController : MonoBehaviour
{
public InputActionAsset InputActions;
public bool InputEnabled { get; private set; } = true;
private InputAction m_moveAction;
private InputAction m_lookAction;
private InputAction m_jumpAction;
private InputAction m_throwAction;
private InputAction m_shiftAction;
private InputAction m_interactAction;
private InputAction m_headInteractAction;
public Vector2 MoveAmount { get; private set; }
public Vector2 LookAmount { get; private set; }
public bool JumpPressed { get; private set; }
public bool ShiftPressed { get; private set; }
public bool ThrowPressed { get; private set; }
public bool InteractPressed { get; private set; }
public bool HeadInteractionPressed { get; private set; }
private void Awake()
{
var map = InputActions.FindActionMap("Player");
@@ -29,7 +34,9 @@ public class PlayerInputController : MonoBehaviour
m_jumpAction = map.FindAction("Jump");
m_shiftAction = map.FindAction("Shift");
m_throwAction = map.FindAction("Throw");
m_interactAction = map.FindAction("Interact");
m_headInteractAction = map.FindAction("HeadInteract");
}
private void OnEnable()
@@ -44,12 +51,30 @@ public class PlayerInputController : MonoBehaviour
private void Update()
{
if (!InputEnabled)
{
MoveAmount = Vector2.zero;
LookAmount = Vector2.zero;
ShiftPressed = false;
JumpPressed = false;
ThrowPressed = false;
InteractPressed = false;
HeadInteractionPressed = false;
return;
}
MoveAmount = m_moveAction.ReadValue<Vector2>();
LookAmount = m_lookAction.ReadValue<Vector2>();
ShiftPressed = m_shiftAction.IsPressed();
JumpPressed = m_jumpAction.WasPressedThisFrame();
ThrowPressed = m_throwAction.WasPressedThisFrame();
InteractPressed = m_interactAction.WasPressedThisFrame();
HeadInteractionPressed = m_headInteractAction.WasPressedThisFrame();
}
public void SetInputEnabled(bool enabled)
{
InputEnabled = enabled;
}
}

View File

@@ -14,12 +14,19 @@ public class PlayerMovement : MonoBehaviour
private Vector3 moveDirection;
// used by root enemies (area tell -> player do)
private float baseWalkSpeed;
private float slowMultiplier = 1.0f;
private float animMultiplier = 1.0f;
private void Awake()
{
m_rigidbody = GetComponent<Rigidbody>();
input = GetComponent<PlayerInputController>();
animator = GetComponent<Animator>();
headController = GetComponent<PlayerHeadController>();
baseWalkSpeed = WalkSpeed;
animator.speed = 1.0f;
if (m_rigidbody != null)
{
@@ -27,6 +34,17 @@ public class PlayerMovement : MonoBehaviour
}
}
public void ApplySlow(float multiplier)
{
slowMultiplier = multiplier;
}
public void ApplyAnimationSlow(float multiplier)
{
animMultiplier = multiplier;
animator.speed = animMultiplier;
}
private void FixedUpdate()
{
Vector2 m_moveAmt = input.MoveAmount;
@@ -48,7 +66,7 @@ public class PlayerMovement : MonoBehaviour
if (headController.isHoldingHead)
{
m_rigidbody.MovePosition(
m_rigidbody.position + Time.deltaTime * WalkSpeed * moveDirection
m_rigidbody.position + Time.deltaTime * baseWalkSpeed * slowMultiplier * moveDirection
);
}
else
@@ -56,7 +74,7 @@ public class PlayerMovement : MonoBehaviour
if (moveDirection.magnitude >= 0.1f)
{
m_rigidbody.MovePosition(
m_rigidbody.position + Time.deltaTime * WalkSpeed * moveDirection
m_rigidbody.position + Time.deltaTime * baseWalkSpeed * slowMultiplier * moveDirection
);
Quaternion targetRotation = Quaternion.LookRotation(moveDirection);

View File

@@ -0,0 +1,264 @@
using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class RobotBootSequence : MonoBehaviour
{
[Header("References")]
public PlayerInputController InputController;
public Transform CameraTransform;
[Header("Timing")]
public bool PlayOnStart = true;
[Min(0.1f)] public float BootDuration = 2.4f;
[Min(0.1f)] public float CharacterPerSecond = 40f;
[Min(0f)] public float LinePause = 0.35f;
[Min(0f)] public float DelayBeforeReveal = 0.4f;
[Header("Motion")]
public Vector2 StartYawPitch = new Vector2(-30f, -20f);
public float RollWobble = 2.5f;
public float WobbleFrequency = 16f;
public AnimationCurve EaseCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
[Header("Boot Text")]
public Color BootTextColor = new Color(0.62f, 1f, 0.7f, 1f);
public string[] BootLines =
{
"UNIT SB-3954 | preparing startup . . .",
"verification of OS-5 . . . 4 . . . 3 . . . 2 . . . 1",
"system integrity: OK",
"motor bus: OK",
"vision pipeline: ONLINE",
"SYSTEM OK"
};
[Header("Optional Audio")]
public AudioSource BootAudioSource;
private bool m_IsPlaying;
private struct BootUI
{
public Canvas Canvas;
public RectTransform LeftPanel;
public RectTransform RightPanel;
public TextMeshProUGUI Text;
}
private void Awake()
{
if (InputController == null)
{
InputController = GetComponent<PlayerInputController>();
}
}
private void Start()
{
if (PlayOnStart)
{
StartCoroutine(PlayBootSequence());
}
}
[ContextMenu("Play Boot Sequence")]
public void PlayBootSequenceFromMenu()
{
if (!Application.isPlaying || m_IsPlaying)
{
return;
}
StartCoroutine(PlayBootSequence());
}
public IEnumerator PlayBootSequence()
{
if (m_IsPlaying)
{
yield break;
}
m_IsPlaying = true;
if (InputController != null)
{
InputController.SetInputEnabled(false);
}
if (BootAudioSource != null)
{
BootAudioSource.Play();
}
if (CameraTransform == null)
{
m_IsPlaying = false;
if (InputController != null)
{
InputController.SetInputEnabled(true);
}
yield break;
}
Quaternion gameplayRotation = CameraTransform.localRotation;
Quaternion fromRotation = Quaternion.Euler(StartYawPitch.y, StartYawPitch.x, 0f) * gameplayRotation;
CameraTransform.localRotation = fromRotation;
BootUI bootUI = CreateBootUI();
yield return StartCoroutine(PlayBootText(bootUI.Text));
if (DelayBeforeReveal > 0f)
{
yield return new WaitForSeconds(DelayBeforeReveal);
}
float elapsed = 0f;
while (elapsed < BootDuration)
{
elapsed += Time.deltaTime;
float t = Mathf.Clamp01(elapsed / BootDuration);
float eased = EaseCurve.Evaluate(t);
float wobbleFade = 1f - eased;
float roll = Mathf.Sin(Time.time * WobbleFrequency) * RollWobble * wobbleFade;
Quaternion wobbleRotation = Quaternion.Euler(0f, 0f, roll);
CameraTransform.localRotation = Quaternion.Slerp(fromRotation, gameplayRotation, eased) * wobbleRotation;
RectTransform rootRect = bootUI.Canvas.GetComponent<RectTransform>();
float halfWidth = rootRect.rect.width * 0.5f;
float leftTarget = -(halfWidth + 24f);
float rightTarget = halfWidth + 24f;
bootUI.LeftPanel.anchoredPosition = new Vector2(Mathf.Lerp(0f, leftTarget, eased), 0f);
bootUI.RightPanel.anchoredPosition = new Vector2(Mathf.Lerp(0f, rightTarget, eased), 0f);
Color textColor = bootUI.Text.color;
textColor.a = 1f - eased;
bootUI.Text.color = textColor;
yield return null;
}
CameraTransform.localRotation = gameplayRotation;
if (bootUI.Canvas != null)
{
Destroy(bootUI.Canvas.gameObject);
}
if (InputController != null)
{
InputController.SetInputEnabled(true);
}
m_IsPlaying = false;
}
private IEnumerator PlayBootText(TextMeshProUGUI label)
{
if (label == null || BootLines == null || BootLines.Length == 0)
{
yield break;
}
label.text = string.Empty;
float charDelay = CharacterPerSecond <= 0f ? 0f : 1f / CharacterPerSecond;
for (int i = 0; i < BootLines.Length; i++)
{
string line = BootLines[i];
for (int c = 0; c < line.Length; c++)
{
label.text += line[c];
if (charDelay > 0f)
{
yield return new WaitForSeconds(charDelay);
}
}
if (i < BootLines.Length - 1)
{
label.text += "\n";
}
if (LinePause > 0f)
{
yield return new WaitForSeconds(LinePause);
}
}
}
private BootUI CreateBootUI()
{
BootUI ui = new BootUI();
GameObject canvasGO = new GameObject("RobotBootCanvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster));
Canvas canvas = canvasGO.GetComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
canvas.sortingOrder = 5000;
CanvasScaler scaler = canvasGO.GetComponent<CanvasScaler>();
scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
scaler.referenceResolution = new Vector2(1920f, 1080f);
scaler.matchWidthOrHeight = 0.5f;
RectTransform root = canvasGO.GetComponent<RectTransform>();
root.anchorMin = Vector2.zero;
root.anchorMax = Vector2.one;
root.offsetMin = Vector2.zero;
root.offsetMax = Vector2.zero;
RectTransform leftPanel = CreatePanel("LeftPanel", root, true);
RectTransform rightPanel = CreatePanel("RightPanel", root, false);
TextMeshProUGUI label = CreateBootLabel(root);
ui.Canvas = canvas;
ui.LeftPanel = leftPanel;
ui.RightPanel = rightPanel;
ui.Text = label;
return ui;
}
private RectTransform CreatePanel(string panelName, RectTransform parent, bool isLeft)
{
GameObject panelGO = new GameObject(panelName, typeof(RectTransform), typeof(Image));
RectTransform rect = panelGO.GetComponent<RectTransform>();
rect.SetParent(parent, false);
rect.anchorMin = isLeft ? new Vector2(0f, 0f) : new Vector2(0.5f, 0f);
rect.anchorMax = isLeft ? new Vector2(0.5f, 1f) : new Vector2(1f, 1f);
rect.pivot = new Vector2(0.5f, 0.5f);
rect.offsetMin = Vector2.zero;
rect.offsetMax = Vector2.zero;
rect.anchoredPosition = Vector2.zero;
Image image = panelGO.GetComponent<Image>();
image.color = Color.black;
return rect;
}
private TextMeshProUGUI CreateBootLabel(RectTransform parent)
{
GameObject textGO = new GameObject("BootText", typeof(RectTransform), typeof(TextMeshProUGUI));
RectTransform rect = textGO.GetComponent<RectTransform>();
rect.SetParent(parent, false);
rect.anchorMin = new Vector2(0.13f, 0.5f);
rect.anchorMax = new Vector2(0.13f, 0.5f);
rect.pivot = new Vector2(0f, 0.5f);
rect.sizeDelta = new Vector2(980f, 380f);
TextMeshProUGUI text = textGO.GetComponent<TextMeshProUGUI>();
text.text = string.Empty;
text.fontSize = 40f;
text.alignment = TextAlignmentOptions.Left;
text.color = BootTextColor;
text.textWrappingMode = TextWrappingModes.Normal;
return text;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6ef6855cd57b4f94b47f410d47e89ff1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 97a4ae8015df4732ac9524441048a765
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,123 @@
// using UnityEngine;
// using UnityEngine.Rendering;
// using UnityEngine.Rendering.RenderGraphModule;
// using UnityEngine.Rendering.RenderGraphModule.Util;
// using UnityEngine.Rendering.Universal;
// public class CRTRendererFeature : ScriptableRendererFeature
// {
// [System.Serializable]
// public class CRTSettings
// {
// public bool EffectEnabled = true;
// public RenderPassEvent PassEvent = RenderPassEvent.AfterRenderingPostProcessing;
// public Shader CRTShader;
// [Range(0f, 1f)] public float Intensity = 0.65f;
// [Range(0f, 2f)] public float ScanlineDensity = 1.2f;
// [Range(0f, 1f)] public float ScanlineStrength = 0.18f;
// [Range(0f, 0.2f)] public float Curvature = 0.04f;
// [Range(0f, 1f)] public float VignetteStrength = 0.28f;
// [Range(0f, 0.05f)] public float ChromaticAberration = 0.004f;
// [Range(0f, 0.2f)] public float NoiseStrength = 0.03f;
// [Range(0f, 0.1f)] public float FlickerStrength = 0.015f;
// }
// class CRTPass : ScriptableRenderPass
// {
// private Material m_Material;
// private CRTSettings m_Settings;
// public void Setup(Material material, CRTSettings settings)
// {
// m_Material = material;
// m_Settings = settings;
// renderPassEvent = settings.PassEvent;
// requiresIntermediateTexture = true;
// }
// public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData)
// {
// if (m_Material == null || m_Settings == null || !m_Settings.EffectEnabled)
// {
// return;
// }
// UniversalResourceData resourceData = frameData.Get<UniversalResourceData>();
// if (resourceData.isActiveTargetBackBuffer)
// {
// return;
// }
// m_Material.SetFloat("_Intensity", m_Settings.Intensity);
// m_Material.SetFloat("_ScanlineDensity", m_Settings.ScanlineDensity);
// m_Material.SetFloat("_ScanlineStrength", m_Settings.ScanlineStrength);
// m_Material.SetFloat("_Curvature", m_Settings.Curvature);
// m_Material.SetFloat("_VignetteStrength", m_Settings.VignetteStrength);
// m_Material.SetFloat("_ChromaticAberration", m_Settings.ChromaticAberration);
// m_Material.SetFloat("_NoiseStrength", m_Settings.NoiseStrength);
// m_Material.SetFloat("_FlickerStrength", m_Settings.FlickerStrength);
// TextureHandle source = resourceData.activeColorTexture;
// TextureDesc destinationDesc = renderGraph.GetTextureDesc(source);
// destinationDesc.name = "CameraColor-CRT";
// destinationDesc.clearBuffer = false;
// TextureHandle destination = renderGraph.CreateTexture(destinationDesc);
// RenderGraphUtils.BlitMaterialParameters blitParams = new(source, destination, m_Material, 0);
// renderGraph.AddBlitPass(blitParams, "CRT Effect");
// resourceData.cameraColor = destination;
// }
// public void Dispose()
// {
// // RenderGraph path does not allocate persistent RTHandles in this pass.
// }
// }
// public CRTSettings Settings = new();
// private CRTPass m_Pass;
// private Material m_Material;
// public override void Create()
// {
// if (Settings.CRTShader == null)
// {
// Settings.CRTShader = Shader.Find("Hidden/HeadlessHazard/CRT");
// }
// if (Settings.CRTShader != null)
// {
// m_Material = CoreUtils.CreateEngineMaterial(Settings.CRTShader);
// }
// m_Pass ??= new CRTPass();
// }
// public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
// {
// if (m_Material == null || !Settings.EffectEnabled)
// {
// return;
// }
// if (renderingData.cameraData.cameraType != CameraType.Game)
// {
// return;
// }
// m_Pass.Setup(m_Material, Settings);
// renderer.EnqueuePass(m_Pass);
// }
// protected override void Dispose(bool disposing)
// {
// m_Pass?.Dispose();
// m_Pass = null;
// CoreUtils.Destroy(m_Material);
// m_Material = null;
// }
// }

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4f2de7a6cfbd47c8bc740d43bb991205
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e88664529cd503644b2b92f055895969
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,379 @@
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using TMPro;
#if ENABLE_INPUT_SYSTEM
using UnityEngine.InputSystem.UI;
#endif
public class RetroMainMenuUI : MonoBehaviour
{
private Canvas m_MenuCanvas;
private bool m_MenuActive;
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
private static void Bootstrap()
{
if (Object.FindFirstObjectByType<RetroMainMenuUI>() != null)
{
return;
}
GameObject root = new("RetroMainMenuUI");
root.AddComponent<RetroMainMenuUI>();
}
private void Awake()
{
m_MenuActive = true;
Time.timeScale = 0f;
ApplyMenuCursorState();
BuildMenu();
EnsureEventSystem();
UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoaded;
}
private void OnDestroy()
{
UnityEngine.SceneManagement.SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnSceneLoaded(UnityEngine.SceneManagement.Scene scene, UnityEngine.SceneManagement.LoadSceneMode mode)
{
// Check again when the scene finishes loading to remove any baked-in duplicate EventSystems
EnsureEventSystem();
}
private void LateUpdate()
{
if (!m_MenuActive)
{
return;
}
// Some gameplay scripts lock the cursor during Start/Update.
// Force menu cursor state while the menu is active.
ApplyMenuCursorState();
}
private void BuildMenu()
{
Color bgColor = HexToColor("001e26");
Color panelColor = HexToColor("517567");
Color titleColor = HexToColor("f3d58d");
Color TextNormalColor = HexToColor("eb9843");
Color textWarningColor = HexToColor("c12204");
Color shadowColor = HexToColor("520805");
GameObject canvasObject = new("MainMenuCanvas");
Canvas canvas = canvasObject.AddComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
canvas.sortingOrder = 10000;
m_MenuCanvas = canvas;
CanvasScaler scaler = canvasObject.AddComponent<CanvasScaler>();
scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
scaler.referenceResolution = new Vector2(1920f, 1080f);
scaler.matchWidthOrHeight = 0.5f;
canvasObject.AddComponent<GraphicRaycaster>();
// Background
GameObject background = CreateImage("Background", canvasObject.transform, bgColor);
StretchToFull(background.GetComponent<RectTransform>());
// Decorative horizontal lines (scanline aesthetic)
CreateLine("TopLine", background.transform, new Rect(0, -60, 0, 4), panelColor, AnchorPreset.TopStretch);
CreateLine("BotLine", background.transform, new Rect(0, 60, 0, 4), panelColor, AnchorPreset.BottomStretch);
// --- LEFT PANEL ---
GameObject leftPanel = new GameObject("LeftPanel", typeof(RectTransform));
leftPanel.transform.SetParent(canvasObject.transform, false);
RectTransform leftRect = leftPanel.GetComponent<RectTransform>();
leftRect.anchorMin = new Vector2(0.08f, 0.1f);
leftRect.anchorMax = new Vector2(0.45f, 0.9f);
leftRect.offsetMin = Vector2.zero;
leftRect.offsetMax = Vector2.zero;
// Title
TextMeshProUGUI titleText = CreateTMP("Title", leftPanel.transform, "HEADLESS HAZARD", titleColor, 72, TextAlignmentOptions.BottomLeft);
RectTransform titleRect = titleText.GetComponent<RectTransform>();
titleRect.anchorMin = new Vector2(0f, 0.85f);
titleRect.anchorMax = new Vector2(1f, 1f);
titleRect.offsetMin = Vector2.zero;
titleRect.offsetMax = Vector2.zero;
titleText.fontStyle = FontStyles.Bold;
// Title Shadow
TextMeshProUGUI titleShadow = CreateTMP("TitleShadow", leftPanel.transform, "HEADLESS HAZARD", shadowColor, 72, TextAlignmentOptions.BottomLeft);
RectTransform shadowRect = titleShadow.GetComponent<RectTransform>();
shadowRect.anchorMin = new Vector2(0f, 0.85f);
shadowRect.anchorMax = new Vector2(1f, 1f);
shadowRect.offsetMin = new Vector2(4f, -4f); // apply drop shadow offset
shadowRect.offsetMax = new Vector2(4f, -4f);
titleShadow.fontStyle = FontStyles.Bold;
titleShadow.transform.SetSiblingIndex(0); // push behind title
// Subtitle / Decorative Status
TextMeshProUGUI subText = CreateTMP("Subtitle", leftPanel.transform, "SYSTEM_BOOT // OS.ACTIVE_ ", panelColor, 20, TextAlignmentOptions.TopLeft);
RectTransform subRect = subText.GetComponent<RectTransform>();
subRect.anchorMin = new Vector2(0f, 0.80f);
subRect.anchorMax = new Vector2(1f, 0.85f);
subRect.offsetMin = Vector2.zero;
subRect.offsetMax = Vector2.zero;
// Button Group
GameObject buttonGroup = new("ButtonGroup", typeof(RectTransform), typeof(VerticalLayoutGroup));
buttonGroup.transform.SetParent(leftPanel.transform, false);
RectTransform groupRect = buttonGroup.GetComponent<RectTransform>();
groupRect.anchorMin = new Vector2(0f, 0f);
groupRect.anchorMax = new Vector2(1f, 0.65f);
groupRect.offsetMin = Vector2.zero;
groupRect.offsetMax = Vector2.zero;
VerticalLayoutGroup layout = buttonGroup.GetComponent<VerticalLayoutGroup>();
layout.childAlignment = TextAnchor.UpperLeft;
layout.spacing = 16f;
layout.childControlWidth = true;
layout.childControlHeight = false;
CreateTextButton(buttonGroup.transform, "> INITIALIZE_PLAY", TextNormalColor, titleColor, () =>
{
Debug.Log("Play clicked.");
OnPlayClicked();
});
CreateTextButton(buttonGroup.transform, "> CONFIGURE_PARAMS", TextNormalColor, titleColor, () =>
{
Debug.Log("Options clicked.");
});
CreateTextButton(buttonGroup.transform, "> TERMINATE_PROCESS", TextNormalColor, textWarningColor, () =>
{
Debug.Log("Quit clicked.");
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
});
// --- RIGHT PANEL (Level Info) ---
GameObject rightPanel = new GameObject("RightPanel", typeof(RectTransform));
rightPanel.transform.SetParent(canvasObject.transform, false);
RectTransform rightRect = rightPanel.GetComponent<RectTransform>();
rightRect.anchorMin = new Vector2(0.55f, 0.4f);
rightRect.anchorMax = new Vector2(0.92f, 0.82f);
rightRect.offsetMin = Vector2.zero;
rightRect.offsetMax = Vector2.zero;
// Right side Border lines
CreateLine("R_Top", rightPanel.transform, new Rect(0, 0, 0, 2), panelColor, AnchorPreset.TopStretch);
CreateLine("R_Bot", rightPanel.transform, new Rect(0, 0, 0, 2), panelColor, AnchorPreset.BottomStretch);
CreateLine("R_Left", rightPanel.transform, new Rect(0, 0, 2, 0), panelColor, AnchorPreset.LeftStretch);
CreateLine("R_Right", rightPanel.transform, new Rect(0, 0, 2, 0), panelColor, AnchorPreset.RightStretch);
// Right Panel Headers
TextMeshProUGUI headerText = CreateTMP("LevelHeader", rightPanel.transform, "CURRENT_SECTOR", panelColor, 24, TextAlignmentOptions.TopLeft);
headerText.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 1f);
headerText.GetComponent<RectTransform>().anchorMax = new Vector2(1f, 1f);
headerText.GetComponent<RectTransform>().anchoredPosition = new Vector2(20f, -20f);
// Big Level Text
TextMeshProUGUI levelText = CreateTMP("LevelNumber", rightPanel.transform, "LEVEL 01", textWarningColor, 140, TextAlignmentOptions.Center);
StretchToFull(levelText.GetComponent<RectTransform>());
levelText.fontStyle = FontStyles.Bold;
// Decorative status
TextMeshProUGUI statusText = CreateTMP("LevelStatus", rightPanel.transform, "[ STATUS: OPTIMAL ]", panelColor, 24, TextAlignmentOptions.BottomRight);
statusText.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 0f);
statusText.GetComponent<RectTransform>().anchorMax = new Vector2(1f, 0f);
statusText.GetComponent<RectTransform>().anchoredPosition = new Vector2(-20f, 20f);
}
private void OnPlayClicked()
{
m_MenuActive = false;
Time.timeScale = 1f;
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
if (m_MenuCanvas != null)
{
Destroy(m_MenuCanvas.gameObject);
}
Destroy(gameObject);
}
private static GameObject CreateTextButton(
Transform parent,
string label,
Color normalColor,
Color highlightColor,
UnityEngine.Events.UnityAction clickAction)
{
GameObject buttonObject = new(label, typeof(RectTransform), typeof(TextMeshProUGUI), typeof(Button));
buttonObject.transform.SetParent(parent, false);
RectTransform rect = buttonObject.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(0f, 60f); // Height 60, width auto-controlled by LayoutGroup
TextMeshProUGUI text = buttonObject.GetComponent<TextMeshProUGUI>();
text.text = label;
text.fontSize = 38;
text.alignment = TextAlignmentOptions.Left;
text.color = Color.white; // Button tint applies on top of white
text.textWrappingMode = TextWrappingModes.NoWrap;
Button button = buttonObject.GetComponent<Button>();
button.targetGraphic = text;
button.transition = Selectable.Transition.ColorTint;
ColorBlock colors = button.colors;
colors.normalColor = normalColor;
colors.highlightedColor = highlightColor;
colors.pressedColor = highlightColor;
colors.selectedColor = highlightColor;
colors.disabledColor = Color.gray;
colors.colorMultiplier = 1f;
colors.fadeDuration = 0.1f;
button.colors = colors;
button.onClick.AddListener(clickAction);
return buttonObject;
}
private static TextMeshProUGUI CreateTMP(string name, Transform parent, string textStr, Color color, float size, TextAlignmentOptions align)
{
GameObject go = new GameObject(name, typeof(RectTransform), typeof(TextMeshProUGUI));
go.transform.SetParent(parent, false);
TextMeshProUGUI tmp = go.GetComponent<TextMeshProUGUI>();
tmp.text = textStr;
tmp.color = color;
tmp.fontSize = size;
tmp.alignment = align;
tmp.textWrappingMode = TextWrappingModes.NoWrap;
return tmp;
}
enum AnchorPreset { TopStretch, BottomStretch, LeftStretch, RightStretch }
private static GameObject CreateLine(string name, Transform parent, Rect details, Color color, AnchorPreset preset)
{
GameObject line = CreateImage(name, parent, color);
RectTransform rect = line.GetComponent<RectTransform>();
switch (preset)
{
case AnchorPreset.TopStretch:
rect.anchorMin = new Vector2(0, 1);
rect.anchorMax = new Vector2(1, 1);
rect.sizeDelta = new Vector2(details.width, details.height);
rect.anchoredPosition = new Vector2(details.x, details.y);
break;
case AnchorPreset.BottomStretch:
rect.anchorMin = new Vector2(0, 0);
rect.anchorMax = new Vector2(1, 0);
rect.sizeDelta = new Vector2(details.width, details.height);
rect.anchoredPosition = new Vector2(details.x, details.y);
break;
case AnchorPreset.LeftStretch:
rect.anchorMin = new Vector2(0, 0);
rect.anchorMax = new Vector2(0, 1);
rect.sizeDelta = new Vector2(details.width, details.height);
rect.anchoredPosition = new Vector2(details.x, details.y);
break;
case AnchorPreset.RightStretch:
rect.anchorMin = new Vector2(1, 0);
rect.anchorMax = new Vector2(1, 1);
rect.sizeDelta = new Vector2(details.width, details.height);
rect.anchoredPosition = new Vector2(details.x, details.y);
break;
}
return line;
}
private static GameObject CreateImage(string name, Transform parent, Color color)
{
GameObject imageObject = new(name, typeof(RectTransform), typeof(Image));
imageObject.transform.SetParent(parent, false);
Image image = imageObject.GetComponent<Image>();
image.color = color;
return imageObject;
}
private static void StretchToFull(RectTransform rect)
{
rect.anchorMin = Vector2.zero;
rect.anchorMax = Vector2.one;
rect.offsetMin = Vector2.zero;
rect.offsetMax = Vector2.zero;
}
private static Color HexToColor(string hex)
{
if (ColorUtility.TryParseHtmlString("#" + hex, out Color color))
{
return color;
}
return Color.magenta;
}
private static void ApplyMenuCursorState()
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
private static void EnsureEventSystem()
{
EventSystem[] allEventSystems = Object.FindObjectsByType<EventSystem>(FindObjectsInactive.Include, FindObjectsSortMode.None);
EventSystem eventSystem;
if (allEventSystems.Length == 0)
{
GameObject eventSystemObject = new("EventSystem", typeof(EventSystem));
eventSystem = eventSystemObject.GetComponent<EventSystem>();
}
else
{
eventSystem = allEventSystems[0];
for (int i = 1; i < allEventSystems.Length; i++)
{
if (allEventSystems[i] != null)
{
Destroy(allEventSystems[i].gameObject);
}
}
}
EnsureCompatibleInputModule(eventSystem.gameObject);
}
private static void EnsureCompatibleInputModule(GameObject eventSystemObject)
{
#if ENABLE_INPUT_SYSTEM
StandaloneInputModule standaloneModule = eventSystemObject.GetComponent<StandaloneInputModule>();
if (standaloneModule != null)
{
Destroy(standaloneModule);
}
if (eventSystemObject.GetComponent<InputSystemUIInputModule>() == null)
{
eventSystemObject.AddComponent<InputSystemUIInputModule>();
}
#else
if (eventSystemObject.GetComponent<StandaloneInputModule>() == null)
{
eventSystemObject.AddComponent<StandaloneInputModule>();
}
#endif
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 297533e46238b814989fcd5d46cf8927

View File

@@ -0,0 +1,97 @@
Shader "Hidden/HeadlessHazard/CRT"
{
Properties
{
_Intensity ("Intensity", Range(0,1)) = 0.65
_ScanlineDensity ("Scanline Density", Range(0,2)) = 1.2
_ScanlineStrength ("Scanline Strength", Range(0,1)) = 0.18
_Curvature ("Curvature", Range(0,0.2)) = 0.04
_VignetteStrength ("Vignette Strength", Range(0,1)) = 0.28
_ChromaticAberration ("Chromatic Aberration", Range(0,0.05)) = 0.004
_NoiseStrength ("Noise Strength", Range(0,0.2)) = 0.03
_FlickerStrength ("Flicker Strength", Range(0,0.1)) = 0.015
}
SubShader
{
Tags { "RenderPipeline" = "UniversalPipeline" }
Pass
{
Name "CRT"
ZWrite Off
ZTest Always
Cull Off
Blend One Zero
HLSLPROGRAM
#pragma vertex Vert
#pragma fragment Frag
#pragma target 3.5
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl"
float _Intensity;
float _ScanlineDensity;
float _ScanlineStrength;
float _Curvature;
float _VignetteStrength;
float _ChromaticAberration;
float _NoiseStrength;
float _FlickerStrength;
float Random01(float2 seed)
{
return frac(sin(dot(seed, float2(12.9898, 78.233))) * 43758.5453);
}
float2 DistortUV(float2 uv, float curvature)
{
float2 center = uv * 2.0 - 1.0;
float radius2 = dot(center, center);
center *= 1.0 + (radius2 * curvature);
return center * 0.5 + 0.5;
}
half4 Frag(Varyings input) : SV_Target
{
float2 uv = input.texcoord;
float2 curvedUV = DistortUV(uv, _Curvature);
if (curvedUV.x < 0.0 || curvedUV.x > 1.0 || curvedUV.y < 0.0 || curvedUV.y > 1.0)
{
return half4(0.0, 0.0, 0.0, 1.0);
}
float2 fromCenter = curvedUV - 0.5;
float2 aberrationOffset = fromCenter * _ChromaticAberration;
half red = SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_LinearClamp, curvedUV + aberrationOffset).r;
half green = SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_LinearClamp, curvedUV).g;
half blue = SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_LinearClamp, curvedUV - aberrationOffset).b;
half3 color = half3(red, green, blue);
float scanlineWave = sin((curvedUV.y * _ScreenParams.y * 0.5 * _ScanlineDensity) + (_Time.y * 18.0));
float scanlineMask = lerp(1.0, saturate(0.7 + 0.3 * scanlineWave), _ScanlineStrength);
color *= scanlineMask;
float noise = Random01(curvedUV * _ScreenParams.xy + _Time.yy * 37.0) - 0.5;
color += noise * _NoiseStrength;
float flicker = 1.0 - (_FlickerStrength * (0.5 + 0.5 * sin(_Time.y * 32.0)));
color *= flicker;
float2 vignetteUV = curvedUV * (1.0 - curvedUV.yx);
float vignette = saturate(pow(vignetteUV.x * vignetteUV.y * 18.0, 0.2));
color *= lerp(1.0 - _VignetteStrength, 1.0, vignette);
half3 baseColor = SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_LinearClamp, uv).rgb;
half3 finalColor = lerp(baseColor, color, _Intensity);
return half4(finalColor, 1.0);
}
ENDHLSL
}
}
}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0a9f7eb85c2f4f9f8ec82c8565f4e8b1
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,354 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2408983304096713058
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8088638068924982289}
- component: {fileID: 876434215209821112}
- component: {fileID: 489735366413190748}
- component: {fileID: 6101101176935368636}
- component: {fileID: 6700426716916120764}
- component: {fileID: 7552511637356990312}
m_Layer: 0
m_Name: TestBlock
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8088638068924982289
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2408983304096713058}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 7, y: 1.5, z: 1}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &876434215209821112
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2408983304096713058}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.ProBuilderMesh
m_MeshFormatVersion: 2
m_Faces:
- m_Indexes: 000000000100000002000000010000000300000002000000
m_SmoothingGroup: 0
m_Uv:
m_UseWorldSpace: 0
m_FlipU: 0
m_FlipV: 0
m_SwapUV: 0
m_Fill: 1
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Rotation: 0
m_Anchor: 0
m_Material: {fileID: 0}
m_SubmeshIndex: 0
m_ManualUV: 0
elementGroup: -1
m_TextureGroup: -1
- m_Indexes: 040000000500000006000000050000000700000006000000
m_SmoothingGroup: 0
m_Uv:
m_UseWorldSpace: 0
m_FlipU: 0
m_FlipV: 0
m_SwapUV: 0
m_Fill: 1
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Rotation: 0
m_Anchor: 0
m_Material: {fileID: 0}
m_SubmeshIndex: 0
m_ManualUV: 0
elementGroup: -1
m_TextureGroup: -1
- m_Indexes: 08000000090000000a000000090000000b0000000a000000
m_SmoothingGroup: 0
m_Uv:
m_UseWorldSpace: 0
m_FlipU: 0
m_FlipV: 0
m_SwapUV: 0
m_Fill: 1
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Rotation: 0
m_Anchor: 0
m_Material: {fileID: 0}
m_SubmeshIndex: 0
m_ManualUV: 0
elementGroup: -1
m_TextureGroup: -1
- m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000
m_SmoothingGroup: 0
m_Uv:
m_UseWorldSpace: 0
m_FlipU: 0
m_FlipV: 0
m_SwapUV: 0
m_Fill: 1
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Rotation: 0
m_Anchor: 0
m_Material: {fileID: 0}
m_SubmeshIndex: 0
m_ManualUV: 0
elementGroup: -1
m_TextureGroup: -1
- m_Indexes: 100000001100000012000000110000001300000012000000
m_SmoothingGroup: 0
m_Uv:
m_UseWorldSpace: 0
m_FlipU: 0
m_FlipV: 0
m_SwapUV: 0
m_Fill: 1
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Rotation: 0
m_Anchor: 0
m_Material: {fileID: 0}
m_SubmeshIndex: 0
m_ManualUV: 0
elementGroup: -1
m_TextureGroup: -1
- m_Indexes: 140000001500000016000000150000001700000016000000
m_SmoothingGroup: 0
m_Uv:
m_UseWorldSpace: 0
m_FlipU: 0
m_FlipV: 0
m_SwapUV: 0
m_Fill: 1
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Rotation: 0
m_Anchor: 0
m_Material: {fileID: 0}
m_SubmeshIndex: 0
m_ManualUV: 0
elementGroup: -1
m_TextureGroup: -1
m_SharedVertices:
- m_Vertices: 000000000d00000016000000
- m_Vertices: 010000000400000017000000
- m_Vertices: 020000000f00000010000000
- m_Vertices: 030000000600000011000000
- m_Vertices: 050000000800000015000000
- m_Vertices: 070000000a00000013000000
- m_Vertices: 090000000c00000014000000
- m_Vertices: 0b0000000e00000012000000
m_SharedTextures: []
m_Positions:
- {x: -0.25, y: -0.25, z: 0.25}
- {x: 0.25, y: -0.25, z: 0.25}
- {x: -0.25, y: 0.25, z: 0.25}
- {x: 0.25, y: 0.25, z: 0.25}
- {x: 0.25, y: -0.25, z: 0.25}
- {x: 0.25, y: -0.25, z: -0.25}
- {x: 0.25, y: 0.25, z: 0.25}
- {x: 0.25, y: 0.25, z: -0.25}
- {x: 0.25, y: -0.25, z: -0.25}
- {x: -0.25, y: -0.25, z: -0.25}
- {x: 0.25, y: 0.25, z: -0.25}
- {x: -0.25, y: 0.25, z: -0.25}
- {x: -0.25, y: -0.25, z: -0.25}
- {x: -0.25, y: -0.25, z: 0.25}
- {x: -0.25, y: 0.25, z: -0.25}
- {x: -0.25, y: 0.25, z: 0.25}
- {x: -0.25, y: 0.25, z: 0.25}
- {x: 0.25, y: 0.25, z: 0.25}
- {x: -0.25, y: 0.25, z: -0.25}
- {x: 0.25, y: 0.25, z: -0.25}
- {x: -0.25, y: -0.25, z: -0.25}
- {x: 0.25, y: -0.25, z: -0.25}
- {x: -0.25, y: -0.25, z: 0.25}
- {x: 0.25, y: -0.25, z: 0.25}
m_Textures0:
- {x: 0.5, y: 0.5}
- {x: 0, y: 0.5}
- {x: 0.5, y: 1}
- {x: 0, y: 1}
- {x: 0.5, y: 0.5}
- {x: 0, y: 0.5}
- {x: 0.5, y: 1}
- {x: 0, y: 1}
- {x: 0.5, y: 0.5}
- {x: 0, y: 0.5}
- {x: 0.5, y: 1}
- {x: 0, y: 1}
- {x: 0.5, y: 0.5}
- {x: 0, y: 0.5}
- {x: 0.5, y: 1}
- {x: 0, y: 1}
- {x: 0, y: 1}
- {x: 0.5, y: 1}
- {x: 0, y: 0.5}
- {x: 0.5, y: 0.5}
- {x: 0.5, y: 0.5}
- {x: 0, y: 0.5}
- {x: 0.5, y: 1}
- {x: 0, y: 1}
m_Textures2: []
m_Textures3: []
m_Tangents:
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
m_Colors: []
m_UnwrapParameters:
m_HardAngle: 88
m_PackMargin: 20
m_AngleError: 8
m_AreaError: 15
m_PreserveMeshAssetOnDestroy: 0
assetGuid:
m_Mesh: {fileID: 0}
m_VersionIndex: 23
m_IsSelectable: 1
m_SelectedFaces:
m_SelectedEdges: []
m_SelectedVertices:
--- !u!114 &489735366413190748
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2408983304096713058}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.Shapes.ProBuilderShape
m_Shape:
rid: 1325630742307537158
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
m_UnmodifiedMeshVersion: 23
m_Size: {x: 0.5, y: 0.5, z: 0.5}
m_LocalCenter: {x: 0, y: 0, z: 0}
references:
version: 2
RefIds:
- rid: 1325630742307537158
type: {class: Cube, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder}
data:
--- !u!23 &6101101176935368636
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2408983304096713058}
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_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &6700426716916120764
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2408983304096713058}
m_Mesh: {fileID: 0}
--- !u!114 &7552511637356990312
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2408983304096713058}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b93699191d7b58146b2c38540cbed40f, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PressurePlateTestBlock
targetRenderer: {fileID: 0}
offColor: {r: 1, g: 0, b: 0, a: 1}
onColor: {r: 0, g: 1, b: 0, a: 1}
colorPropertyName: _BaseColor
pressurePlates: []
wallButtons: []

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d6c9e1e9ff9b89d8b8b14b4853ea0d15
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7c55dd8d2533a9affb8abf17f934af76
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f50a662a00513985cabe01d57e553530
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: RootMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
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:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.51
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.26895663, g: 0.2830189, b: 0.05473478, a: 1}
- _Color: {r: 0.2689566, g: 0.28301886, b: 0.05473476, 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: []
m_AllowLocking: 1
--- !u!114 &5536473030482320004
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: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 38c7fa1e1e8754643bb95c6529687ffc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,165 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1843330507631451878
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7919538883693841265}
- component: {fileID: 4811596309560135411}
- component: {fileID: 2561893503613331935}
m_Layer: 0
m_Name: rootCrawler
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7919538883693841265
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1843330507631451878}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -3.2, y: 9.29, z: -1.74}
m_LocalScale: {x: 0.2, y: 0.2, z: 0.2}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4811596309560135411
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1843330507631451878}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 32b713897b19bfd9fbc1d58800761b20, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
target: {fileID: 0}
maxHeight: 2
crawlingSpeed: 0.5
radius: 0.5
rotationSpeed: 5
noiseStrength: 0.06
noiseFrequency: 1.5
resolution: 80
--- !u!120 &2561893503613331935
LineRenderer:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1843330507631451878}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 0
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 38c7fa1e1e8754643bb95c6529687ffc, 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Positions:
- {x: 0, y: 0, z: 0}
- {x: 0, y: 0, z: 1}
m_Parameters:
serializedVersion: 3
widthMultiplier: 1
widthCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.1379261
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
colorGradient:
serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1}
key1: {r: 1, g: 1, b: 1, a: 1}
key2: {r: 0, g: 0, b: 0, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 0
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 65535
atime2: 0
atime3: 0
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 0
m_ColorSpace: 0
m_NumColorKeys: 2
m_NumAlphaKeys: 2
numCornerVertices: 0
numCapVertices: 0
alignment: 0
textureMode: 0
textureScale: {x: 1, y: 1}
shadowBias: 0.5
generateLightingData: 0
m_UseWorldSpace: 1
m_Loop: 0
m_ApplyActiveColorSpace: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6b31f01266896d3bb88e98a31080bb65
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -12,14 +12,11 @@ GameObject:
- component: {fileID: 5140597600133624551}
- component: {fileID: 3884605895522482221}
- component: {fileID: 16871832050785725}
- component: {fileID: 7987102888823411772}
- component: {fileID: 8512140229507148937}
- component: {fileID: 6921400718617286756}
- component: {fileID: 7987102888823411772}
m_Layer: 0
<<<<<<<< HEAD:Assets/Level/Prefabs/World/MovingDoor.prefab
m_Name: MovingDoor
========
m_Name: BigDoor
>>>>>>>> feat/level/create-level-1:Assets/Level/Prefabs/Interactives/BigDoor.prefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -157,84 +154,80 @@ MonoBehaviour:
elementGroup: -1
m_TextureGroup: -1
m_SharedVertices:
- m_Vertices: 000000000d00000016000000
- m_Vertices: 010000000400000017000000
- m_Vertices: 020000000f00000010000000
- m_Vertices: 030000000600000011000000
- m_Vertices: 050000000800000015000000
- m_Vertices: 070000000a00000013000000
- m_Vertices: 090000000c00000014000000
- m_Vertices: 0b0000000e00000012000000
- m_Vertices: 00000000020000000d000000000000000000000000000000
- m_Vertices: 010000000300000004000000000000000000000000000000
- m_Vertices: 050000000700000008000000000000000000000000000000
- m_Vertices: 090000000b0000000c000000000000000000000000000000
m_SharedTextures: []
m_Positions:
- {x: -0.05, y: -1, z: 0.5}
- {x: 0.05, y: -1, z: 0.5}
- {x: -0.05, y: 1, z: 0.5}
- {x: 0.05, y: 1, z: 0.5}
- {x: 0.05, y: -1, z: 0.5}
- {x: 0.05, y: -1, z: -0.5}
- {x: 0.05, y: 1, z: 0.5}
- {x: 0.05, y: 1, z: -0.5}
- {x: 0.05, y: -1, z: -0.5}
- {x: -0.05, y: -1, z: -0.5}
- {x: 0.05, y: 1, z: -0.5}
- {x: -0.05, y: 1, z: -0.5}
- {x: -0.05, y: -1, z: -0.5}
- {x: -0.05, y: -1, z: 0.5}
- {x: -0.05, y: 1, z: -0.5}
- {x: -0.05, y: 1, z: 0.5}
- {x: -0.05, y: 1, z: 0.5}
- {x: 0.05, y: 1, z: 0.5}
- {x: -0.05, y: 1, z: -0.5}
- {x: 0.05, y: 1, z: -0.5}
- {x: -0.05, y: -1, z: -0.5}
- {x: 0.05, y: -1, z: -0.5}
- {x: -0.05, y: -1, z: 0.5}
- {x: 0.05, y: -1, z: 0.5}
- {x: -0.05, y: -4, z: 4}
- {x: 0.05, y: -4, z: 4}
- {x: -0.05, y: 4, z: 4}
- {x: 0.05, y: 4, z: 4}
- {x: 0.05, y: -4, z: 4}
- {x: 0.05, y: -4, z: -4}
- {x: 0.05, y: 4, z: 4}
- {x: 0.05, y: 4, z: -4}
- {x: 0.05, y: -4, z: -4}
- {x: -0.05, y: -4, z: -4}
- {x: 0.05, y: 4, z: -4}
- {x: -0.05, y: 4, z: -4}
- {x: -0.05, y: -4, z: -4}
- {x: -0.05, y: -4, z: 4}
- {x: -0.05, y: 4, z: -4}
- {x: -0.05, y: 4, z: 4}
- {x: -0.05, y: 4, z: 4}
- {x: 0.05, y: 4, z: 4}
- {x: -0.05, y: 4, z: -4}
- {x: 0.05, y: 4, z: -4}
- {x: -0.05, y: -4, z: -4}
- {x: 0.05, y: -4, z: -4}
- {x: -0.05, y: -4, z: 4}
- {x: 0.05, y: -4, z: 4}
m_Textures0:
- {x: 0.1, y: -1}
- {x: 0, y: -1}
- {x: 0.1, y: 1}
- {x: 0, y: 1}
- {x: 1, y: -1}
- {x: 0, y: -1}
- {x: 1, y: 1}
- {x: 0, y: 1}
- {x: 0.1, y: -1}
- {x: 0, y: -1}
- {x: 0.1, y: 1}
- {x: 0, y: 1}
- {x: 1, y: -1}
- {x: 0, y: -1}
- {x: 1, y: 1}
- {x: 0, y: 1}
- {x: 0, y: -7}
- {x: 0.1, y: -7}
- {x: 0, y: 1}
- {x: 0.1, y: 1}
- {x: 8, y: -7}
- {x: 0, y: -7}
- {x: 8, y: 1}
- {x: 0, y: 0}
- {x: 0.1, y: 0}
- {x: 0.1, y: 0}
- {x: 0, y: 0}
- {x: 0.1, y: -7}
- {x: 0, y: -7}
- {x: 0.1, y: 1}
- {x: 0, y: 1}
- {x: 8, y: -7}
- {x: 0, y: -7}
- {x: 8, y: 0}
- {x: 0, y: 1}
- {x: 0, y: 1}
- {x: 0.1, y: 1}
- {x: 0, y: -7}
- {x: 0.1, y: -7}
- {x: 0.1, y: -7}
- {x: 0, y: -7}
- {x: 0.1, y: 1}
- {x: 0, y: 1}
m_Textures2: []
m_Textures3: []
m_Tangents:
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: -1, y: 0, z: 0, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 0, y: 0, z: 1, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: 0, y: 0, z: -1, w: -1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: -0, y: 1, z: 0, w: 1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
- {x: 1, y: 0, z: 0, w: -1}
@@ -252,7 +245,7 @@ MonoBehaviour:
m_PreserveMeshAssetOnDestroy: 0
assetGuid:
m_Mesh: {fileID: 0}
m_VersionIndex: 95
m_VersionIndex: 59
m_IsSelectable: 1
m_SelectedFaces:
m_SelectedEdges: []
@@ -272,8 +265,8 @@ MonoBehaviour:
m_Shape:
rid: 1325630791375913023
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
m_UnmodifiedMeshVersion: 95
m_Size: {x: 0.1, y: 2, z: 1}
m_UnmodifiedMeshVersion: 59
m_Size: {x: 0.1, y: 8, z: 8}
m_LocalCenter: {x: 0, y: 0, z: 0}
references:
version: 2
@@ -330,6 +323,37 @@ MeshRenderer:
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &8512140229507148937
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6922175388650039756}
m_Mesh: {fileID: 0}
--- !u!114 &6921400718617286756
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6922175388650039756}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cc6c36a261296f4c82e315da147ba93, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SlidingDoor
axis: 1
direction: -1
slideDistance: 10
speed: 3
startOpen: 0
OnOpened:
m_PersistentCalls:
m_Calls: []
OnClosed:
m_PersistentCalls:
m_Calls: []
--- !u!65 &7987102888823411772
BoxCollider:
m_ObjectHideFlags: 0
@@ -349,28 +373,5 @@ BoxCollider:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.1, y: 2, z: 1}
m_Size: {x: 0.1, y: 8, z: 8}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &6921400718617286756
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6922175388650039756}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cc6c36a261296f4c82e315da147ba93, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SlidingDoor
axis: 1
direction: -1
slideDistance: 2
speed: 3
startOpen: 0
OnOpened:
m_PersistentCalls:
m_Calls: []
OnClosed:
m_PersistentCalls:
m_Calls: []

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d6fdf4761aa22fdaca0e9d4470c7ee73
guid: 0eece4d381450d440a0abcb205ba126e
PrefabImporter:
externalObjects: {}
userData:

View File

@@ -13,7 +13,7 @@ GameObject:
- component: {fileID: 5853974941088398888}
- component: {fileID: 5042967542353382394}
- component: {fileID: 8480948550909164709}
- component: {fileID: -6766998345617383126}
- component: {fileID: 4852617768436622893}
- component: {fileID: 590849425322242843}
- component: {fileID: 8973796063000431307}
m_Layer: 0
@@ -336,8 +336,8 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1261067352547520725}
m_Mesh: {fileID: 0}
--- !u!65 &-6766998345617383126
BoxCollider:
--- !u!64 &4852617768436622893
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -354,9 +354,10 @@ BoxCollider:
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1.5, y: 0.1, z: 1.5}
m_Center: {x: 0, y: 0, z: 0}
serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 0}
--- !u!65 &590849425322242843
BoxCollider:
m_ObjectHideFlags: 0

View File

@@ -0,0 +1,182 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8295937476714018201
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1945301683602458784}
- component: {fileID: 7204621315108719217}
- component: {fileID: 8544167331072815505}
- component: {fileID: 1366644702000549104}
- component: {fileID: 9065033722839287093}
- component: {fileID: 5078647870528450919}
- component: {fileID: 53541677567227536}
m_Layer: 0
m_Name: ThrowableCube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1945301683602458784
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -39.38, y: 6.56, z: -9.27}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7204621315108719217
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8544167331072815505
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
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_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1366644702000549104
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!54 &9065033722839287093
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
serializedVersion: 5
m_Mass: 1
m_LinearDamping: 0
m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!65 &5078647870528450919
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &53541677567227536
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8295937476714018201}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a36af2e55a3732eb2abc110ae2365702, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
PlayerTransform: {fileID: 0}
CameraTransform: {fileID: 0}
HandTransform: {fileID: 0}
ThrowForce: 10
PickupDistance: 2

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c786dcd5f720bb47dbf843bd97137452
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,36 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4437376557356260369
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3832855070939641903}
m_Layer: 0
m_Name: HandlePoint
m_TagString: Untagged
m_Icon: {fileID: -5442936267250999957, guid: 0000000000000000d000000000000000, type: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3832855070939641903
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4437376557356260369}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.69, z: 0.527}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7821156882341915560}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &8021212901078439068
GameObject:
m_ObjectHideFlags: 0
@@ -612,7 +643,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
propertyPath: m_LocalPosition.x
value: -30.76
value: -30.54
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
propertyPath: m_LocalPosition.y
@@ -856,6 +887,9 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
insertIndex: -1
addedObject: {fileID: 6975610370707183838}
- targetCorrespondingSourceObject: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
insertIndex: -1
addedObject: {fileID: 3832855070939641903}
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: -927199367670048503, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
insertIndex: -1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a969c937a6e399209adc938b2591a18e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0ade185cbfcac340bb27b3e5084f5c32
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c90dca5ef1151259988c87df6c73a142
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,30 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-4377071725885749089
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: 4f2de7a6cfbd47c8bc740d43bb991205, type: 3}
m_Name: CRTRendererFeature
m_EditorClassIdentifier: Assembly-CSharp::CRTRendererFeature
m_Active: 1
Settings:
EffectEnabled: 1
PassEvent: 600
CRTShader: {fileID: 4800000, guid: 0a9f7eb85c2f4f9f8ec82c8565f4e8b1, type: 3}
Intensity: 0.65
ScanlineDensity: 1.2
ScanlineStrength: 0.18
Curvature: 0.04
VignetteStrength: 0.28
ChromaticAberration: 0.004
NoiseStrength: 0.03
FlickerStrength: 0.015
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -13,32 +38,27 @@ MonoBehaviour:
m_Name: PC_Renderer
m_EditorClassIdentifier:
debugShaders:
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
type: 3}
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959,
type: 3}
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
probeVolumeResources:
probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae,
type: 3}
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607,
type: 3}
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664,
type: 3}
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7,
type: 3}
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe,
type: 3}
probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e,
type: 3}
probeVolumeBlendStatesCS: {fileID: 7200000, guid: b9a23f869c4fd45f19c5ada54dd82176,
type: 3}
probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3}
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3}
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3}
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3}
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3}
probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3}
probeVolumeBlendStatesCS: {fileID: 7200000, guid: b9a23f869c4fd45f19c5ada54dd82176, type: 3}
m_RendererFeatures:
- {fileID: 7833122117494664109}
m_RendererFeatureMap: ad6b866f10d7b46c
m_UseNativeRenderPass: 1
xrSystemData: {fileID: 0}
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
m_AssetVersion: 2
m_AssetVersion: 3
m_PrepassLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 4294967295
@@ -56,6 +76,8 @@ MonoBehaviour:
m_RenderingMode: 2
m_DepthPrimingMode: 0
m_CopyDepthMode: 0
m_DepthAttachmentFormat: 0
m_DepthTextureFormat: 0
m_AccurateGbufferNormals: 0
m_IntermediateTextureMode: 0
--- !u!114 &7833122117494664109
@@ -84,12 +106,3 @@ MonoBehaviour:
BlurQuality: 0
Falloff: 100
SampleCount: -1
m_BlueNoise256Textures:
- {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3}
- {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3}
- {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3}
- {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3}
- {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3}
- {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3}
- {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3}
m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}

View File

@@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!134 &13400000
PhysicsMaterial:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: No_Frcition
serializedVersion: 2
m_DynamicFriction: 0
m_StaticFriction: 0
m_Bounciness: 0
m_FrictionCombine: 0
m_BounceCombine: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f9ccf03e1da5f4a4683903447659b3d7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7c0881b5a8885c9f0a5954bd7ca490b4
guid: f7ddf8204ae4327bb84e928c9ae561d4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000

9590
Assets/_Recovery/0 (1).unity Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: eb86304f354e34c7aba1feb6c9c165c7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1167
Assets/_Recovery/0 (2).unity Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c5ad68f9e2725cafd8ef4cc7d7f118a1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -12,7 +12,6 @@
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.ai.navigation": {
"version": "2.0.10",

View File

@@ -13,7 +13,7 @@ TagManager:
- Ground
- Water
- UI
-
- Grabbable
-
-
-

View File

@@ -4,7 +4,7 @@
UnityConnectSettings:
m_ObjectHideFlags: 0
serializedVersion: 1
m_Enabled: 0
m_Enabled: 1
m_TestMode: 0
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events