game(effects): restructure files

This commit is contained in:
Mark Joshwel 2025-02-14 21:55:40 +08:00
parent 84bdbd9667
commit 4011266881
12 changed files with 45 additions and 274 deletions

View file

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

View file

@ -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
}
}

View file

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

View file

@ -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

View file

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 655125311f4fc2048bcc12ddf6c49723
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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

View file

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

View 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
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

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