game(effects): restructure files
This commit is contained in:
parent
84bdbd9667
commit
4011266881
12 changed files with 45 additions and 274 deletions
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c23c9f7c225f28546ad748b02e751f1d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,48 +0,0 @@
|
|||
/*
|
||||
Author: Wai Lam
|
||||
Date: 6/2/25
|
||||
Description: Make the camera shake
|
||||
*/
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Camerashake : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private float shakeMagnitude = 0.05f;
|
||||
[SerializeField] private bool isShaking = false; // Toggle shaking on/off
|
||||
|
||||
private Transform cameraOffsetTransform;
|
||||
private Vector3 originalLocalPos;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
cameraOffsetTransform = transform; // Attach this script to Camera Offset
|
||||
originalLocalPos = cameraOffsetTransform.localPosition;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (isShaking)
|
||||
{
|
||||
cameraOffsetTransform.localPosition = originalLocalPos + (Vector3)Random.insideUnitSphere * shakeMagnitude;
|
||||
}
|
||||
else
|
||||
{
|
||||
cameraOffsetTransform.localPosition = originalLocalPos; // Reset when not shaking
|
||||
}
|
||||
}
|
||||
|
||||
// Public methods to enable/disable shaking dynamically
|
||||
public void StartShaking(float magnitude = -1)
|
||||
{
|
||||
if (magnitude > 0) shakeMagnitude = magnitude;
|
||||
isShaking = true;
|
||||
}
|
||||
|
||||
public void StopShaking()
|
||||
{
|
||||
isShaking = false;
|
||||
cameraOffsetTransform.localPosition = originalLocalPos; // Ensure reset
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 829050d920c070f4783f067cdcb74217
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,44 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
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: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: Viginettevolume Profile
|
||||
m_EditorClassIdentifier:
|
||||
components:
|
||||
- {fileID: 470894040277958869}
|
||||
--- !u!114 &470894040277958869
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 899c54efeace73346a0a16faa3afe726, type: 3}
|
||||
m_Name: Vignette
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
color:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 0, g: 0, b: 0, a: 1}
|
||||
center:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 0.5, y: 0.5}
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
smoothness:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.352
|
||||
rounded:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 655125311f4fc2048bcc12ddf6c49723
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,44 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
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: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: colordistortion Profile
|
||||
m_EditorClassIdentifier:
|
||||
components:
|
||||
- {fileID: 2076673937229531157}
|
||||
--- !u!114 &2076673937229531157
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 66f335fb1ffd8684294ad653bf1c7564, type: 3}
|
||||
m_Name: ColorAdjustments
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
postExposure:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
contrast:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1.47
|
||||
colorFilter:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 0.9647059, g: 0.98039216, b: 1, a: 1}
|
||||
hueShift:
|
||||
m_OverrideState: 1
|
||||
m_Value: 87
|
||||
saturation:
|
||||
m_OverrideState: 1
|
||||
m_Value: 67
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: de50934a2e98f5940b4e2e5c8f0a1e49
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
45
Game/Assets/Scripts/CameraShake.cs
Normal file
45
Game/Assets/Scripts/CameraShake.cs
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Author: Wai Lam
|
||||
* Date: 6/2/25
|
||||
* Description: Make the camera shake
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
public class CameraShake : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private float shakeMagnitude = 0.05f;
|
||||
[SerializeField] private bool isShaking; // Toggle shaking on/off
|
||||
|
||||
private Transform _cameraOffsetTransform;
|
||||
private Vector3 _originalLocalPos;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_cameraOffsetTransform = transform; // Attach this script to Camera Offset
|
||||
_originalLocalPos = _cameraOffsetTransform.localPosition;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (isShaking)
|
||||
_cameraOffsetTransform.localPosition = _originalLocalPos + Random.insideUnitSphere * shakeMagnitude;
|
||||
else
|
||||
_cameraOffsetTransform.localPosition = _originalLocalPos; // Reset when not shaking
|
||||
}
|
||||
|
||||
// Public methods to enable/disable shaking dynamically
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
public void StartShaking(float magnitude = -1)
|
||||
{
|
||||
if (magnitude > 0) shakeMagnitude = magnitude;
|
||||
isShaking = true;
|
||||
}
|
||||
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
public void StopShaking()
|
||||
{
|
||||
isShaking = false;
|
||||
_cameraOffsetTransform.localPosition = _originalLocalPos; // Ensure reset
|
||||
}
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
/*
|
||||
Author: Wai Lam
|
||||
Date: 6/2/25
|
||||
Description: UI to follow camera with a slight delay
|
||||
*/
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Followplayercam : MonoBehaviour
|
||||
{
|
||||
|
||||
public Transform target; // Usually the Main Camera (XR Rig's Head)
|
||||
|
||||
|
||||
public float followSpeed = 5f; // How quickly it follows the target
|
||||
public Vector3 offset = new Vector3(0, -0.2f, 1.5f); // Position offset
|
||||
public bool followRotation = true; // Toggle for rotating with the head
|
||||
|
||||
public float maxPitchAngle = 30f; // Limits how much the panel tilts up/down
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
if (target == null) return;
|
||||
|
||||
// Smooth Position Follow
|
||||
Vector3 desiredPosition = target.position + target.TransformDirection(offset);
|
||||
transform.position = Vector3.Lerp(transform.position, desiredPosition, Time.deltaTime * followSpeed);
|
||||
|
||||
// Smooth Rotation Follow (Yaw + Pitch)
|
||||
if (followRotation)
|
||||
{
|
||||
// Capture target's full rotation
|
||||
Vector3 targetEulerAngles = target.eulerAngles;
|
||||
|
||||
// Handle Pitch (X-axis) - Clamp to avoid extreme tilting
|
||||
float pitch = targetEulerAngles.x;
|
||||
if (pitch > 180) pitch -= 360; // Convert to -180 to 180 range
|
||||
pitch = Mathf.Clamp(pitch, -maxPitchAngle, maxPitchAngle);
|
||||
|
||||
// Apply Yaw (Y-axis) and Pitch (X-axis), keep Roll (Z-axis) at 0
|
||||
Quaternion desiredRotation = Quaternion.Euler(pitch, targetEulerAngles.y, 0);
|
||||
transform.rotation = Quaternion.Slerp(transform.rotation, desiredRotation, Time.deltaTime * followSpeed);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
public class RubbishBin : MonoBehaviour
|
||||
{
|
||||
private UnityEngine.XR.Interaction.Toolkit.Interactors.XRSocketInteractor socket;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
socket = GetComponent<UnityEngine.XR.Interaction.Toolkit.Interactors.XRSocketInteractor>();
|
||||
|
||||
if (socket == null)
|
||||
{
|
||||
Debug.LogError("XRSocketInteractor component is missing from the rubbish bin!");
|
||||
return;
|
||||
}
|
||||
|
||||
socket.selectEntered.AddListener(OnTrashPlaced);
|
||||
}
|
||||
|
||||
private void OnTrashPlaced(SelectEnterEventArgs args)
|
||||
{
|
||||
UnityEngine.XR.Interaction.Toolkit.Interactables.XRBaseInteractable trash = (UnityEngine.XR.Interaction.Toolkit.Interactables.XRBaseInteractable)args.interactableObject;
|
||||
|
||||
if (trash != null)
|
||||
{
|
||||
Debug.Log($"{trash.gameObject.name} was placed in the rubbish bin and destroyed.");
|
||||
Destroy(trash.gameObject);
|
||||
|
||||
// Add haptic feedback if using a VR controller
|
||||
if (args.interactorObject is UnityEngine.XR.Interaction.Toolkit.Interactors.XRBaseInputInteractor controller)
|
||||
{
|
||||
controller.SendHapticImpulse(0.7f, 0.2f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (socket != null)
|
||||
{
|
||||
socket.selectEntered.RemoveListener(OnTrashPlaced);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b3d5a817584b84da0a08814feb482587
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Add table
Reference in a new issue