Compare commits
32 Commits
feat/level
...
Level-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc8d53a710 | ||
|
|
e9187351a6 | ||
|
|
4d4a54094e | ||
|
|
360b30370a | ||
|
|
af01c1ee76 | ||
|
|
6b3913fe2b | ||
|
|
203f3e548b | ||
|
|
94c28dca2f | ||
|
|
f120b487ec | ||
|
|
7f2c58f864 | ||
|
|
7a4f79ac6b | ||
|
|
14310f742f | ||
|
|
4a3f0ec740 | ||
|
|
2a5d8a0944 | ||
| cceee1df1b | |||
|
|
9926d6c24f | ||
| 3a758bb245 | |||
|
|
0554662c32 | ||
|
|
e42114602a | ||
|
|
f593bc2e20 | ||
|
|
cac96fd09f | ||
|
|
fcb0f813dd | ||
|
|
175162fccf | ||
|
|
bf59f9b2da | ||
|
|
9183a4e687 | ||
|
|
d0d5fccc37 | ||
|
|
faf2f92521 | ||
|
|
ffa489db0d | ||
|
|
53fd617abe | ||
|
|
64b2d63799 | ||
|
|
f42463176f | ||
|
|
ab434be65f |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -62,3 +62,5 @@ Thumbs.db.meta
|
||||
# VS Code
|
||||
*.vscode
|
||||
.vsconfig
|
||||
|
||||
Assets/Level/Scenes/DevRoom/Perso/
|
||||
@@ -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 -->
|
||||
8
Assets/Code/Scripts/Enemies.meta
Normal file
8
Assets/Code/Scripts/Enemies.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d82ed499bde37d2bca7590ba5952894f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Code/Scripts/Enemies/LivingRoot.meta
Normal file
8
Assets/Code/Scripts/Enemies/LivingRoot.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91ac6bdb3a3fc30fa9e96966372092e3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Code/Scripts/Enemies/LivingRoot/RootCrawler.meta
Normal file
8
Assets/Code/Scripts/Enemies/LivingRoot/RootCrawler.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd6d6893cb79bcda4bd1aebc58cdc64e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 32b713897b19bfd9fbc1d58800761b20
|
||||
63
Assets/Code/Scripts/Enemies/LivingRoot/SlowdownArea.cs
Normal file
63
Assets/Code/Scripts/Enemies/LivingRoot/SlowdownArea.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dbfa6ebdeb68bf2f6a5c4d25311b5811
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
72
Assets/Code/Scripts/Interaction/PlayerBoxController.cs
Normal file
72
Assets/Code/Scripts/Interaction/PlayerBoxController.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a36af2e55a3732eb2abc110ae2365702
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
264
Assets/Code/Scripts/Player/RobotBootSequence.cs
Normal file
264
Assets/Code/Scripts/Player/RobotBootSequence.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
11
Assets/Code/Scripts/Player/RobotBootSequence.cs.meta
Normal file
11
Assets/Code/Scripts/Player/RobotBootSequence.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ef6855cd57b4f94b47f410d47e89ff1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Code/Scripts/Rendering.meta
Normal file
8
Assets/Code/Scripts/Rendering.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97a4ae8015df4732ac9524441048a765
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
123
Assets/Code/Scripts/Rendering/CRTRendererFeature.cs
Normal file
123
Assets/Code/Scripts/Rendering/CRTRendererFeature.cs
Normal 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;
|
||||
// }
|
||||
// }
|
||||
11
Assets/Code/Scripts/Rendering/CRTRendererFeature.cs.meta
Normal file
11
Assets/Code/Scripts/Rendering/CRTRendererFeature.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f2de7a6cfbd47c8bc740d43bb991205
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Code/Scripts/UI.meta
Normal file
8
Assets/Code/Scripts/UI.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e88664529cd503644b2b92f055895969
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
379
Assets/Code/Scripts/UI/MainMenuUI.cs
Normal file
379
Assets/Code/Scripts/UI/MainMenuUI.cs
Normal 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
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/UI/MainMenuUI.cs.meta
Normal file
2
Assets/Code/Scripts/UI/MainMenuUI.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 297533e46238b814989fcd5d46cf8927
|
||||
97
Assets/Code/Shaders/CRTScreenEffect.shader
Normal file
97
Assets/Code/Shaders/CRTScreenEffect.shader
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
10
Assets/Code/Shaders/CRTScreenEffect.shader.meta
Normal file
10
Assets/Code/Shaders/CRTScreenEffect.shader.meta
Normal file
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0a9f7eb85c2f4f9f8ec82c8565f4e8b1
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
354
Assets/Level/Prefabs/Dev/TestBlock.prefab
Normal file
354
Assets/Level/Prefabs/Dev/TestBlock.prefab
Normal 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: []
|
||||
7
Assets/Level/Prefabs/Dev/TestBlock.prefab.meta
Normal file
7
Assets/Level/Prefabs/Dev/TestBlock.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d6c9e1e9ff9b89d8b8b14b4853ea0d15
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Level/Prefabs/Enemies.meta
Normal file
8
Assets/Level/Prefabs/Enemies.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c55dd8d2533a9affb8abf17f934af76
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Level/Prefabs/Enemies/LivingRoot.meta
Normal file
8
Assets/Level/Prefabs/Enemies/LivingRoot.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f50a662a00513985cabe01d57e553530
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
137
Assets/Level/Prefabs/Enemies/LivingRoot/RootMaterial.mat
Normal file
137
Assets/Level/Prefabs/Enemies/LivingRoot/RootMaterial.mat
Normal 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
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 38c7fa1e1e8754643bb95c6529687ffc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
165
Assets/Level/Prefabs/Enemies/LivingRoot/rootCrawler.prefab
Normal file
165
Assets/Level/Prefabs/Enemies/LivingRoot/rootCrawler.prefab
Normal 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
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b31f01266896d3bb88e98a31080bb65
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d6fdf4761aa22fdaca0e9d4470c7ee73
|
||||
guid: 0eece4d381450d440a0abcb205ba126e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@@ -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
|
||||
|
||||
182
Assets/Level/Prefabs/Interactives/ThrowableCube.prefab
Normal file
182
Assets/Level/Prefabs/Interactives/ThrowableCube.prefab
Normal 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
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c786dcd5f720bb47dbf843bd97137452
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
|
||||
|
||||
8
Assets/Level/Scenes/DevRoom.meta
Normal file
8
Assets/Level/Scenes/DevRoom.meta
Normal 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
144440
Assets/Level/Scenes/DevRoom/DevRoom.unity
Normal file
144440
Assets/Level/Scenes/DevRoom/DevRoom.unity
Normal file
File diff suppressed because one or more lines are too long
8
Assets/Level/Scenes/DevRoom/Perso.meta
Normal file
8
Assets/Level/Scenes/DevRoom/Perso.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ade185cbfcac340bb27b3e5084f5c32
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1190
Assets/Level/Scenes/DevRoom/Perso/PersoDevRoom.unity
Normal file
1190
Assets/Level/Scenes/DevRoom/Perso/PersoDevRoom.unity
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c90dca5ef1151259988c87df6c73a142
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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}
|
||||
|
||||
@@ -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
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9ccf03e1da5f4a4683903447659b3d7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c0881b5a8885c9f0a5954bd7ca490b4
|
||||
guid: f7ddf8204ae4327bb84e928c9ae561d4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
|
||||
9590
Assets/_Recovery/0 (1).unity
Normal file
9590
Assets/_Recovery/0 (1).unity
Normal file
File diff suppressed because one or more lines are too long
7
Assets/_Recovery/0 (1).unity.meta
Normal file
7
Assets/_Recovery/0 (1).unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb86304f354e34c7aba1feb6c9c165c7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1167
Assets/_Recovery/0 (2).unity
Normal file
1167
Assets/_Recovery/0 (2).unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/_Recovery/0 (2).unity.meta
Normal file
7
Assets/_Recovery/0 (2).unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c5ad68f9e2725cafd8ef4cc7d7f118a1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -12,7 +12,6 @@
|
||||
"source": "registry",
|
||||
"dependencies": {},
|
||||
"url": "https://packages.unity.com"
|
||||
|
||||
},
|
||||
"com.unity.ai.navigation": {
|
||||
"version": "2.0.10",
|
||||
|
||||
@@ -13,7 +13,7 @@ TagManager:
|
||||
- Ground
|
||||
- Water
|
||||
- UI
|
||||
-
|
||||
- Grabbable
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user