Skip to content

Commit a8f18ae

Browse files
committed
feat: screen shake on preparation room
1 parent 614d956 commit a8f18ae

File tree

3 files changed

+177
-0
lines changed

3 files changed

+177
-0
lines changed

Assets/Scenes/Preparation.unity

+122
Original file line numberDiff line numberDiff line change
@@ -5499,6 +5499,12 @@ PrefabInstance:
54995499
- targetCorrespondingSourceObject: {fileID: 4459864850019384750, guid: 6bacecc4f3df9584198879c73a6b6c36, type: 3}
55005500
insertIndex: -1
55015501
addedObject: {fileID: 1248132680}
5502+
- targetCorrespondingSourceObject: {fileID: 4459864850019384750, guid: 6bacecc4f3df9584198879c73a6b6c36, type: 3}
5503+
insertIndex: -1
5504+
addedObject: {fileID: 1248132681}
5505+
- targetCorrespondingSourceObject: {fileID: 4459864850019384750, guid: 6bacecc4f3df9584198879c73a6b6c36, type: 3}
5506+
insertIndex: -1
5507+
addedObject: {fileID: 1248132689}
55025508
- targetCorrespondingSourceObject: {fileID: 4459864851310106424, guid: 6bacecc4f3df9584198879c73a6b6c36, type: 3}
55035509
insertIndex: -1
55045510
addedObject: {fileID: 848670200}
@@ -5552,6 +5558,11 @@ MonoBehaviour:
55525558
m_MipBias: 0
55535559
m_VarianceClampScale: 0.9
55545560
m_ContrastAdaptiveSharpening: 0
5561+
--- !u!20 &848670201 stripped
5562+
Camera:
5563+
m_CorrespondingSourceObject: {fileID: 4459864851310106426, guid: 6bacecc4f3df9584198879c73a6b6c36, type: 3}
5564+
m_PrefabInstance: {fileID: 848670198}
5565+
m_PrefabAsset: {fileID: 0}
55555566
--- !u!1001 &862948266
55565567
PrefabInstance:
55575568
m_ObjectHideFlags: 0
@@ -7042,6 +7053,117 @@ AudioSource:
70427053
m_PreInfinity: 2
70437054
m_PostInfinity: 2
70447055
m_RotationOrder: 4
7056+
--- !u!114 &1248132681
7057+
MonoBehaviour:
7058+
m_ObjectHideFlags: 0
7059+
m_CorrespondingSourceObject: {fileID: 0}
7060+
m_PrefabInstance: {fileID: 0}
7061+
m_PrefabAsset: {fileID: 0}
7062+
m_GameObject: {fileID: 1248132679}
7063+
m_Enabled: 1
7064+
m_EditorHideFlags: 0
7065+
m_Script: {fileID: 11500000, guid: b919c74d70599b94a9bc95b81da0ea38, type: 3}
7066+
m_Name:
7067+
m_EditorClassIdentifier:
7068+
mainCamera: {fileID: 848670201}
7069+
audioSource: {fileID: 1248132689}
7070+
explosionSound: {fileID: 8300000, guid: 792a87227660da44c950612c63d824a5, type: 3}
7071+
--- !u!82 &1248132689
7072+
AudioSource:
7073+
m_ObjectHideFlags: 0
7074+
m_CorrespondingSourceObject: {fileID: 0}
7075+
m_PrefabInstance: {fileID: 0}
7076+
m_PrefabAsset: {fileID: 0}
7077+
m_GameObject: {fileID: 1248132679}
7078+
m_Enabled: 1
7079+
serializedVersion: 4
7080+
OutputAudioMixerGroup: {fileID: 0}
7081+
m_audioClip: {fileID: 0}
7082+
m_PlayOnAwake: 1
7083+
m_Volume: 1
7084+
m_Pitch: 1
7085+
Loop: 0
7086+
Mute: 0
7087+
Spatialize: 0
7088+
SpatializePostEffects: 0
7089+
Priority: 128
7090+
DopplerLevel: 1
7091+
MinDistance: 1
7092+
MaxDistance: 500
7093+
Pan2D: 0
7094+
rolloffMode: 0
7095+
BypassEffects: 0
7096+
BypassListenerEffects: 0
7097+
BypassReverbZones: 0
7098+
rolloffCustomCurve:
7099+
serializedVersion: 2
7100+
m_Curve:
7101+
- serializedVersion: 3
7102+
time: 0
7103+
value: 1
7104+
inSlope: 0
7105+
outSlope: 0
7106+
tangentMode: 0
7107+
weightedMode: 0
7108+
inWeight: 0.33333334
7109+
outWeight: 0.33333334
7110+
- serializedVersion: 3
7111+
time: 1
7112+
value: 0
7113+
inSlope: 0
7114+
outSlope: 0
7115+
tangentMode: 0
7116+
weightedMode: 0
7117+
inWeight: 0.33333334
7118+
outWeight: 0.33333334
7119+
m_PreInfinity: 2
7120+
m_PostInfinity: 2
7121+
m_RotationOrder: 4
7122+
panLevelCustomCurve:
7123+
serializedVersion: 2
7124+
m_Curve:
7125+
- serializedVersion: 3
7126+
time: 0
7127+
value: 0
7128+
inSlope: 0
7129+
outSlope: 0
7130+
tangentMode: 0
7131+
weightedMode: 0
7132+
inWeight: 0.33333334
7133+
outWeight: 0.33333334
7134+
m_PreInfinity: 2
7135+
m_PostInfinity: 2
7136+
m_RotationOrder: 4
7137+
spreadCustomCurve:
7138+
serializedVersion: 2
7139+
m_Curve:
7140+
- serializedVersion: 3
7141+
time: 0
7142+
value: 0
7143+
inSlope: 0
7144+
outSlope: 0
7145+
tangentMode: 0
7146+
weightedMode: 0
7147+
inWeight: 0.33333334
7148+
outWeight: 0.33333334
7149+
m_PreInfinity: 2
7150+
m_PostInfinity: 2
7151+
m_RotationOrder: 4
7152+
reverbZoneMixCustomCurve:
7153+
serializedVersion: 2
7154+
m_Curve:
7155+
- serializedVersion: 3
7156+
time: 0
7157+
value: 1
7158+
inSlope: 0
7159+
outSlope: 0
7160+
tangentMode: 0
7161+
weightedMode: 0
7162+
inWeight: 0.33333334
7163+
outWeight: 0.33333334
7164+
m_PreInfinity: 2
7165+
m_PostInfinity: 2
7166+
m_RotationOrder: 4
70457167
--- !u!1001 &1259851975
70467168
PrefabInstance:
70477169
m_ObjectHideFlags: 0

Assets/Scripts/CameraShake.cs

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using System.Collections;
2+
using UnityEngine;
3+
4+
public class CameraShake : MonoBehaviour
5+
{
6+
public Camera mainCamera;
7+
public AudioSource audioSource;
8+
public AudioClip explosionSound;
9+
10+
private Transform _cameraTransform;
11+
private Vector3 _originalPosition;
12+
13+
private void Awake()
14+
{
15+
if (mainCamera != null)
16+
{
17+
_cameraTransform = mainCamera.transform;
18+
_originalPosition = _cameraTransform.localPosition;
19+
StartDelayedShake(11f, 300f, 1f);
20+
}
21+
else
22+
{
23+
Debug.LogError("Main Camera is not assigned.");
24+
}
25+
}
26+
27+
private void StartDelayedShake(float delay, float duration, float magnitude)
28+
{
29+
StartCoroutine(DelayedShakeCoroutine(delay, duration, magnitude));
30+
}
31+
32+
private IEnumerator DelayedShakeCoroutine(float delay, float duration, float magnitude)
33+
{
34+
yield return new WaitForSeconds(delay);
35+
36+
var elapsed = 0.0f;
37+
38+
audioSource.PlayOneShot(explosionSound);
39+
40+
while (elapsed < duration)
41+
{
42+
var x = Random.Range(-1f, 1f) * magnitude;
43+
var y = Random.Range(-1f, 1f) * magnitude;
44+
45+
_cameraTransform.localPosition = new Vector3(x, y, _originalPosition.z);
46+
47+
elapsed += Time.deltaTime;
48+
49+
magnitude = Mathf.Lerp(magnitude, 0, elapsed / duration);
50+
yield return null;
51+
}
52+
53+
_cameraTransform.localPosition = _originalPosition;
54+
}
55+
}
Binary file not shown.

0 commit comments

Comments
 (0)