Narration with text and audio synced
This commit is contained in:
parent
ff4bfa3e98
commit
ff81229273
@ -276,3 +276,72 @@ MonoBehaviour:
|
|||||||
- key: poweredby
|
- key: poweredby
|
||||||
english: Powered by CyberCompanion
|
english: Powered by CyberCompanion
|
||||||
arabic: "\u0628\u062F\u0639\u0645 \u0645\u0646 CyberCompanion"
|
arabic: "\u0628\u062F\u0639\u0645 \u0645\u0646 CyberCompanion"
|
||||||
|
- key: subtitle_Intro
|
||||||
|
english: "Welcome to the CyberCompanion phishing awareness game.\nIn this game,
|
||||||
|
you'll go through five real-life email challenges.\nYour mission is to carefully
|
||||||
|
review each email and decide if it\u2019s safe or a phishing attempt.\nStay
|
||||||
|
focused, and pay attention to fake links, urgent messages, and suspicious senders.\nLet\u2019s
|
||||||
|
begin the game. "
|
||||||
|
arabic: "\u0645\u0631\u062D\u064B\u0628\u0627 \u0628\u0643 \u0641\u064A \u0644\u0639\u0628\u0629
|
||||||
|
\u0627\u0644\u062A\u0648\u0639\u064A\u0629 \u0628\u0627\u0644\u062A\u0635\u0651\u064A\u062F
|
||||||
|
\u0627\u0627\u0644\u062D\u062A\u064A\u0627\u0644\u064A .\r\n. \u0641\u064A
|
||||||
|
\u0647\u0630\u0647 \u0627\u0644\u0644\u0639\u0628\u0629\u060C \u0633\u062A\u0648\u0627\u062C\u0647
|
||||||
|
\u062E\u0645\u0633 \u0631\u0633\u0627\u0626\u0644 \u0628\u0631\u064A\u062F
|
||||||
|
\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u0648\u0627\u0642\u0639\u064A\u0629\n\n\u0645\u0647\u0645\u062A\u0643
|
||||||
|
\u0647\u064A \u0623\u0646 \u062A\u0631\u0627\u062C\u0639 \u0643\u0644 \u0631\u0633\u0627\u0644\u0629
|
||||||
|
\u0628\u062F\u0642\u0629 \u0648\u062A\u0642\u0631\u0631 \u0645\u0627 \u0625\u0630\u0627
|
||||||
|
\u0643\u0627\u0646\u062A \u0622\u0645\u0646\u0629 \u0623\u0648 \u062A\u0635\u0651\u064A\u062F
|
||||||
|
\u0627\u062D\u062A\u064A\u0627\u0644\u064A.\r\n\u0631\u0643\u0632 \u062C\u064A\u064B\u062F\u0627\u060C
|
||||||
|
\u0648\u0627\u0646\u062A\u0628\u0647 \u0644\u0644\u0631\u0648\u0627\u0628\u0637
|
||||||
|
\u0627\u0644\u0645\u0632\u064A\u0641\u0629\u060C \u0648\u0627\u0644\u0631\u0633\u0627\u0626\u0644
|
||||||
|
\u0627\u0644\u0639\u0627\u062C\u0644\u0629\u060C \u0648\u0627\u0644\u0645\u0631\u0633\u0644\u064A\u0646
|
||||||
|
\u0627\u0644\u0645\u0634\u0628\u0648\u0647\u064A\u0646.\r\n. \u0644\u0646\u0628\u062F\u0623
|
||||||
|
\u0627\u0644\u0644\u0639\u0628\u0629"
|
||||||
|
- key: subtitle_NewEmail
|
||||||
|
english: "You\u2019ve received a new email. Click to open your inbox."
|
||||||
|
arabic: "\u0648\u0635\u0644\u0643 \u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A
|
||||||
|
\u062C\u062F\u064A\u062F. \u0627\u0636\u063A\u0637 \u0644\u0641\u062A\u062D
|
||||||
|
\u0635\u0646\u062F\u0648\u0642 \u0627\u0644\u0648\u0627\u0631\u062F"
|
||||||
|
- key: subtitle_ScanEmail
|
||||||
|
english: "Before making your decision, scan the email for any signs of phishing.\r"
|
||||||
|
arabic: "\u0642\u0628\u0644 \u0627\u062A\u062E\u0627\u0630 \u0642\u0631\u0627\u0631\u0643\u060C
|
||||||
|
\u0627\u0641\u062D\u0635 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0625\u0644\u0644\u0643\u062A\u0631\u0648\u0646\u064A
|
||||||
|
\u0627\r\n. \u0628\u062D\u062B \u0639\u0646 \u0623\u064A \u0639\u0627\u0644\u0645\u0627\u062A
|
||||||
|
\u062A\u0635\u0651\u064A\u062F\u0642\u0628\u0644 \u0627\u062A\u062E\u0627\u0630
|
||||||
|
\u0642\u0631\u0627\u0631\u0643\u060C \u0627\u0641\u062D\u0635 \u0627\u0644\u0628\u0631\u064A\u062F
|
||||||
|
\u0627\u0625\u0644\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u0627\r\n. \u0628\u062D\u062B
|
||||||
|
\u0639\u0646 \u0623\u064A \u0639\u0627\u0644\u0645\u0627\u062A \u062A\u0635\u0651\u064A\u062F"
|
||||||
|
- key: subtitle_CorrectIgnoreChoice
|
||||||
|
english: Well done. That was the correct move.
|
||||||
|
arabic: "\u0623\u062D\u0633\u0646\u062A. \u0647\u0630\u0627 \u0643\u0627\u0646
|
||||||
|
\u0627\u0644\u062E\u064A\u0627\u0631 \u0627\u0644\u0635\u062D\u064A\u062D\r"
|
||||||
|
- key: subtitle_CorrectReportChoice
|
||||||
|
english: "Well done. That was the correct move \u2014 this email showed clear
|
||||||
|
signs of phishing."
|
||||||
|
arabic: "\u0623\u062D\u0633\u0646\u062A. \u0647\u0630\u0627 \u0643\u0627\u0646
|
||||||
|
\u0627\u0644\u062E\u064A\u0627\u0631 \u0627\u0644\u0635\u062D\u064A\u062D \u2014
|
||||||
|
\u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0627\u062D\u062A\u0648\u062A
|
||||||
|
\u0639\u0644\u0649 \u0645\u0624\u0634\u0631\u0627\u062A \u0648\u0627\u0636\u062D\u0629
|
||||||
|
\u0644\u0644\u062A\u0635\u0651\u064A\u062F"
|
||||||
|
- key: subtitle_WrongIgnoreChoice
|
||||||
|
english: Be careful. That was a phishing attempt. Always report messages that
|
||||||
|
seem suspicious.
|
||||||
|
arabic: "\u0627\u0646\u062A\u0628\u0647. \u0647\u0630\u0647 \u0643\u0627\u0646\u062A
|
||||||
|
\u0645\u062D\u0627\u0648\u0644\u0629 \u062A\u0635\u0651\u064A\u062F \u0627\u062D\u062A\u064A\u0627\u0644\u064A.
|
||||||
|
\u0623\u0628\u0644\u063A \u062F\u0627\u0626 \u064B\u0645\u0627 \u0639\u0646
|
||||||
|
\u0627\u0644\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u062A\u064A \u062A\u0628\u062F\u0648
|
||||||
|
\u0645\u0634\u0628\u0648\u0647\u0629"
|
||||||
|
- key: subtitle_Feedback
|
||||||
|
english: "Let\u2019s now review your decisions and see how you handled each email
|
||||||
|
in the game"
|
||||||
|
arabic: "\u062F\u0639\u0646\u0627 \u0627\u0622\u0644\u0646 \u0646\u0631\u0627\u062C\u0639
|
||||||
|
\u0642\u0631\u0627\u0631\u0627\u062A\u0643 \u0648\u0646\u0631\u0649 \u0643\u064A\u0641
|
||||||
|
\u062A\u0639\u0627\u0645\u0644\u062A \u0645\u0639 \u0643\u0644 \u0631\u0633\u0627\u0644\u0629
|
||||||
|
\u062E\u0627\u0644\u0644 \u0627\u0644\u0644\u0639\u0628\u0629"
|
||||||
|
- key: subtitle_GameEnd
|
||||||
|
english: "You\u2019ve completed the game. You can restart and try to improve
|
||||||
|
your phishing awareness."
|
||||||
|
arabic: "\u0644\u0642\u062F \u0623\u0646\u0647\u064A\u062A \u0627\u0644\u0644\u0639\u0628\u0629.
|
||||||
|
\u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0628\u062F\u0621 \u0645\u0646
|
||||||
|
\u062C\u062F\u064A\u062F \u0644\u062A\u062D\u0633\u064A\u0646 \u0648\u0639\u064A\u0643
|
||||||
|
\u0628\u0627\u0644\u062A\u0635\u0651\u064A\u062F \u0627\u0627\u0644\u062D\u062A\u064A\u0627\u0644\u064A"
|
||||||
|
8
Assets/Resources/Narrations.meta
Normal file
8
Assets/Resources/Narrations.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8afa079d5e303aa428add1cac3a985ad
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Resources/Narrations/Arabic.meta
Normal file
8
Assets/Resources/Narrations/Arabic.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 03d45431f98b8fa4f9c6a2f0b1db06b2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/CorrectChoice(ignore).mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/CorrectChoice(ignore).mp3
Normal file
Binary file not shown.
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fc224b7696bd2ee4d8f217fec0580a99
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/CorrectChoice(report).mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/CorrectChoice(report).mp3
Normal file
Binary file not shown.
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: abe6bb7fd06f23246ac2445128a92f98
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/Feedback.mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/Feedback.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/Arabic/Feedback.mp3.meta
Normal file
23
Assets/Resources/Narrations/Arabic/Feedback.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 75b92203316a9de4da1c6f2717433497
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/GameEnd.mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/GameEnd.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/Arabic/GameEnd.mp3.meta
Normal file
23
Assets/Resources/Narrations/Arabic/GameEnd.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e74e88a881a91a64b87a3f697a4050fe
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/Intro.mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/Intro.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/Arabic/Intro.mp3.meta
Normal file
23
Assets/Resources/Narrations/Arabic/Intro.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a5dc205d2d6c98f40951158b41fbc435
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/NewEmail.mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/NewEmail.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/Arabic/NewEmail.mp3.meta
Normal file
23
Assets/Resources/Narrations/Arabic/NewEmail.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1dfe48c3208e127468766fd94c645318
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/ScanEmail.mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/ScanEmail.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/Arabic/ScanEmail.mp3.meta
Normal file
23
Assets/Resources/Narrations/Arabic/ScanEmail.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9dda53581b05c0345865985ff5627742
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/Arabic/WrongChoice(ignore).mp3
Normal file
BIN
Assets/Resources/Narrations/Arabic/WrongChoice(ignore).mp3
Normal file
Binary file not shown.
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 474f7b8196aa9814fa5a860fc36a5bcc
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Resources/Narrations/English.meta
Normal file
8
Assets/Resources/Narrations/English.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c212be0488ac254cb88b0bcf1708502
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/CorrectChoice(ignore).mp3
Normal file
BIN
Assets/Resources/Narrations/English/CorrectChoice(ignore).mp3
Normal file
Binary file not shown.
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2cdb281e2b78b2a47afa4114cec4b20a
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/CorrectChoice(report).mp3
Normal file
BIN
Assets/Resources/Narrations/English/CorrectChoice(report).mp3
Normal file
Binary file not shown.
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 77a79bea87e1eb449a67576ae1ff3a7e
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/Feedback.mp3
Normal file
BIN
Assets/Resources/Narrations/English/Feedback.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/English/Feedback.mp3.meta
Normal file
23
Assets/Resources/Narrations/English/Feedback.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b22307681eb671741be44e9fa973e97c
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/GameEnd.mp3
Normal file
BIN
Assets/Resources/Narrations/English/GameEnd.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/English/GameEnd.mp3.meta
Normal file
23
Assets/Resources/Narrations/English/GameEnd.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 50a7b65f0350d304ca4bfd578c6616ca
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/Intro.mp3
Normal file
BIN
Assets/Resources/Narrations/English/Intro.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/English/Intro.mp3.meta
Normal file
23
Assets/Resources/Narrations/English/Intro.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4d1af21ca8eca46478ac1915ed07b334
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/NewEmail.mp3
Normal file
BIN
Assets/Resources/Narrations/English/NewEmail.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/English/NewEmail.mp3.meta
Normal file
23
Assets/Resources/Narrations/English/NewEmail.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dadffcc24576b8048b2e84fc24ee65fa
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/ScanEmail.mp3
Normal file
BIN
Assets/Resources/Narrations/English/ScanEmail.mp3
Normal file
Binary file not shown.
23
Assets/Resources/Narrations/English/ScanEmail.mp3.meta
Normal file
23
Assets/Resources/Narrations/English/ScanEmail.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b0c38f1df5dabe7488e7d86ba95fbafc
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Resources/Narrations/English/WrongChoice(ignore).mp3
Normal file
BIN
Assets/Resources/Narrations/English/WrongChoice(ignore).mp3
Normal file
Binary file not shown.
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3b51d1fb67ccb94409abd6ec818f746c
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 7
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -35330,7 +35330,7 @@ MonoBehaviour:
|
|||||||
m_Calls:
|
m_Calls:
|
||||||
- m_Target: {fileID: 1809986913}
|
- m_Target: {fileID: 1809986913}
|
||||||
m_TargetAssemblyTypeName: CharacterMovement, Assembly-CSharp
|
m_TargetAssemblyTypeName: CharacterMovement, Assembly-CSharp
|
||||||
m_MethodName: AnimationStarter
|
m_MethodName: StartIntroduction
|
||||||
m_Mode: 1
|
m_Mode: 1
|
||||||
m_Arguments:
|
m_Arguments:
|
||||||
m_ObjectArgument: {fileID: 0}
|
m_ObjectArgument: {fileID: 0}
|
||||||
@ -35351,7 +35351,7 @@ MonoBehaviour:
|
|||||||
m_FloatArgument: 0
|
m_FloatArgument: 0
|
||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 1
|
m_BoolArgument: 1
|
||||||
m_CallState: 2
|
m_CallState: 0
|
||||||
- m_Target: {fileID: 278513128}
|
- m_Target: {fileID: 278513128}
|
||||||
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
|
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
|
||||||
m_MethodName: SetActive
|
m_MethodName: SetActive
|
||||||
@ -94342,6 +94342,61 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 4503812955185784, guid: 610fb923aa6001549b857ef2559384cd, type: 3}
|
m_CorrespondingSourceObject: {fileID: 4503812955185784, guid: 610fb923aa6001549b857ef2559384cd, type: 3}
|
||||||
m_PrefabInstance: {fileID: 897226859}
|
m_PrefabInstance: {fileID: 897226859}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &1302817620
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1302817621}
|
||||||
|
- component: {fileID: 1302817622}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: NarrationPlayer
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1302817621
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1302817620}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -1.2903728, y: 1.8165138, z: 3.0619671}
|
||||||
|
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 &1302817622
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1302817620}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 43059c037128db14f94c2bbcb006a175, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationDatabase:
|
||||||
|
- {fileID: 11400000, guid: 2579222cb10eb0841abf1a979aa5ca2b, type: 2}
|
||||||
|
- {fileID: 11400000, guid: 8672b916c33d499459775cbd43607ec3, type: 2}
|
||||||
|
- {fileID: 11400000, guid: b4dea7ac3e2f7cd438beb7490daeb427, type: 2}
|
||||||
|
- {fileID: 11400000, guid: c53d8d7b98e13f140bbc6e5491bfe267, type: 2}
|
||||||
|
- {fileID: 11400000, guid: a2b28ea1f5e5b8d4680dacac1950e587, type: 2}
|
||||||
|
- {fileID: 11400000, guid: 82b7736de5a8554469cfc9634fb5902d, type: 2}
|
||||||
|
- {fileID: 11400000, guid: fabe0620c57c63e449acddcbbc564ec8, type: 2}
|
||||||
|
- {fileID: 11400000, guid: a7edb7ce84901274e8d3da4f10158543, type: 2}
|
||||||
|
subtitleText: {fileID: 1874077070}
|
||||||
|
charDelay: 0.075
|
||||||
--- !u!1001 &1303496878
|
--- !u!1001 &1303496878
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -120670,7 +120725,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!224 &1663999321
|
--- !u!224 &1663999321
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -126230,7 +126285,7 @@ AudioSource:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1752641677}
|
m_GameObject: {fileID: 1752641677}
|
||||||
m_Enabled: 1
|
m_Enabled: 0
|
||||||
serializedVersion: 4
|
serializedVersion: 4
|
||||||
OutputAudioMixerGroup: {fileID: 0}
|
OutputAudioMixerGroup: {fileID: 0}
|
||||||
m_audioClip: {fileID: 8300000, guid: fd67557d9d69fe54296b31207b805511, type: 3}
|
m_audioClip: {fileID: 8300000, guid: fd67557d9d69fe54296b31207b805511, type: 3}
|
||||||
@ -133889,7 +133944,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: -40, y: -4}
|
m_SizeDelta: {x: -40, y: -3.9999995}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &1874077070
|
--- !u!114 &1874077070
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@ -133911,10 +133966,10 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text: New Text
|
m_text: Phishing Awareness Simulation!
|
||||||
m_isRightToLeft: 0
|
m_isRightToLeft: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: 1b7bc6f8d1e1a594ea77f76cabc9a9be, type: 2}
|
m_fontAsset: {fileID: 11400000, guid: 12edf91a1789477408db5a46077c3e5b, type: 2}
|
||||||
m_sharedMaterial: {fileID: 4094059608530178792, guid: 1b7bc6f8d1e1a594ea77f76cabc9a9be, type: 2}
|
m_sharedMaterial: {fileID: 3375452501589232566, guid: 12edf91a1789477408db5a46077c3e5b, type: 2}
|
||||||
m_fontSharedMaterials: []
|
m_fontSharedMaterials: []
|
||||||
m_fontMaterial: {fileID: 0}
|
m_fontMaterial: {fileID: 0}
|
||||||
m_fontMaterials: []
|
m_fontMaterials: []
|
||||||
@ -133938,13 +133993,13 @@ MonoBehaviour:
|
|||||||
m_faceColor:
|
m_faceColor:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
rgba: 4294967295
|
rgba: 4294967295
|
||||||
m_fontSize: 42.65
|
m_fontSize: 36
|
||||||
m_fontSizeBase: 36
|
m_fontSizeBase: 36
|
||||||
m_fontWeight: 400
|
m_fontWeight: 400
|
||||||
m_enableAutoSizing: 1
|
m_enableAutoSizing: 0
|
||||||
m_fontSizeMin: 18
|
m_fontSizeMin: 18
|
||||||
m_fontSizeMax: 72
|
m_fontSizeMax: 72
|
||||||
m_fontStyle: 0
|
m_fontStyle: 1
|
||||||
m_HorizontalAlignment: 2
|
m_HorizontalAlignment: 2
|
||||||
m_VerticalAlignment: 512
|
m_VerticalAlignment: 512
|
||||||
m_textAlignment: 65535
|
m_textAlignment: 65535
|
||||||
@ -133956,7 +134011,7 @@ MonoBehaviour:
|
|||||||
m_charWidthMaxAdj: 0
|
m_charWidthMaxAdj: 0
|
||||||
m_enableWordWrapping: 1
|
m_enableWordWrapping: 1
|
||||||
m_wordWrappingRatios: 0.4
|
m_wordWrappingRatios: 0.4
|
||||||
m_overflowMode: 0
|
m_overflowMode: 5
|
||||||
m_linkedTextComponent: {fileID: 0}
|
m_linkedTextComponent: {fileID: 0}
|
||||||
parentLinkedComponent: {fileID: 0}
|
parentLinkedComponent: {fileID: 0}
|
||||||
m_enableKerning: 1
|
m_enableKerning: 1
|
||||||
@ -161937,3 +161992,4 @@ SceneRoots:
|
|||||||
- {fileID: 292487263}
|
- {fileID: 292487263}
|
||||||
- {fileID: 459458787}
|
- {fileID: 459458787}
|
||||||
- {fileID: 1752641679}
|
- {fileID: 1752641679}
|
||||||
|
- {fileID: 1302817621}
|
||||||
|
8
Assets/ScriptableObjects/Narrations.meta
Normal file
8
Assets/ScriptableObjects/Narrations.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7aa6b00989b9bde47bf1a81b09e14e28
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: CorrectIgnoreChoice
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 4
|
||||||
|
englishClip: {fileID: 8300000, guid: 2cdb281e2b78b2a47afa4114cec4b20a, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: fc224b7696bd2ee4d8f217fec0580a99, type: 3}
|
||||||
|
localizationKey: subtitle_CorrectIgnoreChoice
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a2b28ea1f5e5b8d4680dacac1950e587
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: CorrectReportChoice
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 3
|
||||||
|
englishClip: {fileID: 8300000, guid: 77a79bea87e1eb449a67576ae1ff3a7e, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: abe6bb7fd06f23246ac2445128a92f98, type: 3}
|
||||||
|
localizationKey: subtitle_CorrectReportChoice
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c53d8d7b98e13f140bbc6e5491bfe267
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
18
Assets/ScriptableObjects/Narrations/Feedback.asset
Normal file
18
Assets/ScriptableObjects/Narrations/Feedback.asset
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: Feedback
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 6
|
||||||
|
englishClip: {fileID: 8300000, guid: b22307681eb671741be44e9fa973e97c, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: 75b92203316a9de4da1c6f2717433497, type: 3}
|
||||||
|
localizationKey: subtitle_Feedback
|
8
Assets/ScriptableObjects/Narrations/Feedback.asset.meta
Normal file
8
Assets/ScriptableObjects/Narrations/Feedback.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fabe0620c57c63e449acddcbbc564ec8
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
18
Assets/ScriptableObjects/Narrations/GameEnd.asset
Normal file
18
Assets/ScriptableObjects/Narrations/GameEnd.asset
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: GameEnd
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 7
|
||||||
|
englishClip: {fileID: 8300000, guid: 50a7b65f0350d304ca4bfd578c6616ca, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: e74e88a881a91a64b87a3f697a4050fe, type: 3}
|
||||||
|
localizationKey: subtitle_GameEnd
|
8
Assets/ScriptableObjects/Narrations/GameEnd.asset.meta
Normal file
8
Assets/ScriptableObjects/Narrations/GameEnd.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a7edb7ce84901274e8d3da4f10158543
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
18
Assets/ScriptableObjects/Narrations/Intro.asset
Normal file
18
Assets/ScriptableObjects/Narrations/Intro.asset
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: Intro
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 0
|
||||||
|
englishClip: {fileID: 8300000, guid: 4d1af21ca8eca46478ac1915ed07b334, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: a5dc205d2d6c98f40951158b41fbc435, type: 3}
|
||||||
|
localizationKey: subtitle_Intro
|
8
Assets/ScriptableObjects/Narrations/Intro.asset.meta
Normal file
8
Assets/ScriptableObjects/Narrations/Intro.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2579222cb10eb0841abf1a979aa5ca2b
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
18
Assets/ScriptableObjects/Narrations/NewEmail.asset
Normal file
18
Assets/ScriptableObjects/Narrations/NewEmail.asset
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: NewEmail
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 1
|
||||||
|
englishClip: {fileID: 8300000, guid: dadffcc24576b8048b2e84fc24ee65fa, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: 1dfe48c3208e127468766fd94c645318, type: 3}
|
||||||
|
localizationKey: subtitle_NewEmail
|
8
Assets/ScriptableObjects/Narrations/NewEmail.asset.meta
Normal file
8
Assets/ScriptableObjects/Narrations/NewEmail.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8672b916c33d499459775cbd43607ec3
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
18
Assets/ScriptableObjects/Narrations/ScanEmail.asset
Normal file
18
Assets/ScriptableObjects/Narrations/ScanEmail.asset
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: ScanEmail
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 2
|
||||||
|
englishClip: {fileID: 8300000, guid: b0c38f1df5dabe7488e7d86ba95fbafc, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: 9dda53581b05c0345865985ff5627742, type: 3}
|
||||||
|
localizationKey: subtitle_ScanEmail
|
8
Assets/ScriptableObjects/Narrations/ScanEmail.asset.meta
Normal file
8
Assets/ScriptableObjects/Narrations/ScanEmail.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b4dea7ac3e2f7cd438beb7490daeb427
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
18
Assets/ScriptableObjects/Narrations/WrongIgnoreChoice.asset
Normal file
18
Assets/ScriptableObjects/Narrations/WrongIgnoreChoice.asset
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
%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: 3109a7b091e2da44b950dc4b24d3f495, type: 3}
|
||||||
|
m_Name: WrongIgnoreChoice
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
narrationID: 5
|
||||||
|
englishClip: {fileID: 8300000, guid: 3b51d1fb67ccb94409abd6ec818f746c, type: 3}
|
||||||
|
arabicClip: {fileID: 8300000, guid: 474f7b8196aa9814fa5a860fc36a5bcc, type: 3}
|
||||||
|
localizationKey: subtitle_WrongIgnoreChoice
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 82b7736de5a8554469cfc9634fb5902d
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -29,6 +29,7 @@ public class CharacterMovement : MonoBehaviour
|
|||||||
private Quaternion targetSitRotation;
|
private Quaternion targetSitRotation;
|
||||||
bool isStarted = false;
|
bool isStarted = false;
|
||||||
public Button NewEmailObj;
|
public Button NewEmailObj;
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
if (waypoints == null || waypoints.Length == 0)
|
if (waypoints == null || waypoints.Length == 0)
|
||||||
@ -52,13 +53,21 @@ public class CharacterMovement : MonoBehaviour
|
|||||||
|
|
||||||
animator.applyRootMotion = false;
|
animator.applyRootMotion = false;
|
||||||
}
|
}
|
||||||
|
public void StartIntroduction()
|
||||||
|
{
|
||||||
|
SupabaseEventLogger.Instance?.StartSession();
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.Intro, () =>
|
||||||
|
{
|
||||||
|
Debug.Log("Intro finished!");
|
||||||
|
AnimationStarter();
|
||||||
|
});
|
||||||
|
}
|
||||||
public void AnimationStarter()
|
public void AnimationStarter()
|
||||||
{
|
{
|
||||||
|
cameraHeadBobbing.enabled = true;
|
||||||
animator.SetTrigger("StartWalking");
|
animator.SetTrigger("StartWalking");
|
||||||
isStarted = true;
|
isStarted = true;
|
||||||
SupabaseEventLogger.Instance?.StartSession();
|
//InstructionManager.Instance?.ShowScreenInstruction("mission_intro");
|
||||||
InstructionManager.Instance?.ShowScreenInstruction("mission_intro");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
@ -133,6 +142,8 @@ public class CharacterMovement : MonoBehaviour
|
|||||||
PlayAnimation("SitDown");
|
PlayAnimation("SitDown");
|
||||||
NewEmailObj.gameObject.SetActive(true);
|
NewEmailObj.gameObject.SetActive(true);
|
||||||
SoundManager.Instance.PlayInboxDing();
|
SoundManager.Instance.PlayInboxDing();
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.NewEmail);
|
||||||
|
|
||||||
// Disable camera bobbing
|
// Disable camera bobbing
|
||||||
if (cameraHeadBobbing != null)
|
if (cameraHeadBobbing != null)
|
||||||
cameraHeadBobbing.enabled = false;
|
cameraHeadBobbing.enabled = false;
|
||||||
@ -170,7 +181,7 @@ public class CharacterMovement : MonoBehaviour
|
|||||||
.OnComplete(() =>
|
.OnComplete(() =>
|
||||||
{
|
{
|
||||||
state = MovementState.Finished;
|
state = MovementState.Finished;
|
||||||
InstructionManager.Instance?.ShowScreenInstruction("click_to_open");
|
//InstructionManager.Instance?.ShowScreenInstruction("click_to_open");
|
||||||
NewEmailObj.enabled = true;
|
NewEmailObj.enabled = true;
|
||||||
Debug.Log("Camera Movement Completed");
|
Debug.Log("Camera Movement Completed");
|
||||||
});
|
});
|
||||||
|
@ -128,10 +128,22 @@ public class EmailOpenPanel : MonoBehaviour
|
|||||||
if (isCorrect)
|
if (isCorrect)
|
||||||
{
|
{
|
||||||
SoundManager.Instance?.PlayCorrectAction();
|
SoundManager.Instance?.PlayCorrectAction();
|
||||||
InstructionManager.Instance?.ShowScreenInstruction("correct_choice", 3f);
|
if(action=="report")
|
||||||
|
{
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.CorrectReportChoice);
|
||||||
|
}
|
||||||
|
else if(action=="ignore")
|
||||||
|
{
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.CorrectIgnoreChoice);
|
||||||
|
}
|
||||||
|
//InstructionManager.Instance?.ShowScreenInstruction("correct_choice", 3f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if(action=="ignore")
|
||||||
|
{
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.WrongIgnoreChoice);
|
||||||
|
}
|
||||||
SoundManager.Instance?.PlayPhishingAlert();
|
SoundManager.Instance?.PlayPhishingAlert();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,10 +58,15 @@ public class EmailUIController : MonoBehaviour
|
|||||||
string clean = body.Replace("\n", " ").Trim();
|
string clean = body.Replace("\n", " ").Trim();
|
||||||
return clean.Length <= max ? clean : clean.Substring(0, max) + "...";
|
return clean.Length <= max ? clean : clean.Substring(0, max) + "...";
|
||||||
}
|
}
|
||||||
|
bool audioAlreadyDone = false;
|
||||||
public void OnClick()
|
public void OnClick()
|
||||||
{
|
{
|
||||||
InstructionManager.Instance.HideScreenInstruction();
|
if(!audioAlreadyDone)
|
||||||
|
{
|
||||||
|
audioAlreadyDone = true;
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.ScanEmail);
|
||||||
|
}
|
||||||
|
//InstructionManager.Instance.HideScreenInstruction();
|
||||||
SoundManager.Instance.PlayButtonClick();
|
SoundManager.Instance.PlayButtonClick();
|
||||||
GameObject panel = Instantiate(Resources.Load<GameObject>("EmailOpenPanel"), transform.root);
|
GameObject panel = Instantiate(Resources.Load<GameObject>("EmailOpenPanel"), transform.root);
|
||||||
panel.transform.SetSiblingIndex(5);
|
panel.transform.SetSiblingIndex(5);
|
||||||
|
@ -32,22 +32,22 @@ public class InstructionManager : MonoBehaviour
|
|||||||
Instance = this;
|
Instance = this;
|
||||||
mainCam = Camera.main;
|
mainCam = Camera.main;
|
||||||
|
|
||||||
if (instructionBG != null)
|
//if (instructionBG != null)
|
||||||
instructionBG.SetActive(false);
|
// instructionBG.SetActive(false);
|
||||||
|
|
||||||
if (speechBubbleObj != null)
|
if (speechBubbleObj != null)
|
||||||
speechBubbleObj.SetActive(false);
|
speechBubbleObj.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LateUpdate()
|
//void LateUpdate()
|
||||||
{
|
//{
|
||||||
// Reposition speech bubble to follow world target
|
// // Reposition speech bubble to follow world target
|
||||||
if (speechBubbleObj != null && followTarget != null)
|
// if (speechBubbleObj != null && followTarget != null)
|
||||||
{
|
// {
|
||||||
Vector3 screenPos = mainCam.WorldToScreenPoint(followTarget.position + offset);
|
// Vector3 screenPos = mainCam.WorldToScreenPoint(followTarget.position + offset);
|
||||||
speechBubbleObj.transform.position = screenPos;
|
// speechBubbleObj.transform.position = screenPos;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
// Show screen HUD instruction with localization key
|
// Show screen HUD instruction with localization key
|
||||||
public void ShowScreenInstruction(string key, float autoHideDelay = -1f)
|
public void ShowScreenInstruction(string key, float autoHideDelay = -1f)
|
||||||
@ -66,8 +66,8 @@ public class InstructionManager : MonoBehaviour
|
|||||||
|
|
||||||
instructionBG.SetActive(true);
|
instructionBG.SetActive(true);
|
||||||
|
|
||||||
if (autoHideDelay > 0)
|
//if (autoHideDelay > 0)
|
||||||
Invoke(nameof(HideScreenInstruction), autoHideDelay);
|
// Invoke(nameof(HideScreenInstruction), autoHideDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HideScreenInstruction()
|
public void HideScreenInstruction()
|
||||||
|
@ -25,6 +25,8 @@ public class LanguageManager : MonoBehaviour
|
|||||||
public TMP_FontAsset fontArabic;
|
public TMP_FontAsset fontArabic;
|
||||||
public TextMeshProUGUI languageLabel;
|
public TextMeshProUGUI languageLabel;
|
||||||
public bool languageSetBool = false;
|
public bool languageSetBool = false;
|
||||||
|
public bool IsArabic => currentLanguage == "Arabic";
|
||||||
|
|
||||||
public TMP_FontAsset GetCurrentFont()
|
public TMP_FontAsset GetCurrentFont()
|
||||||
{
|
{
|
||||||
return currentLanguage == "Arabic" ? fontArabic : fontEnglish;
|
return currentLanguage == "Arabic" ? fontArabic : fontEnglish;
|
||||||
|
@ -30,6 +30,7 @@ public class MiniQuizManager : MonoBehaviour
|
|||||||
|
|
||||||
public void SubmitAnswer(int selectedIndex)
|
public void SubmitAnswer(int selectedIndex)
|
||||||
{
|
{
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.GameEnd);
|
||||||
restartButton.SetActive(true);
|
restartButton.SetActive(true);
|
||||||
bool isArabic = LanguageManager.Instance != null &&
|
bool isArabic = LanguageManager.Instance != null &&
|
||||||
LanguageManager.Instance.currentLanguage == "Arabic";
|
LanguageManager.Instance.currentLanguage == "Arabic";
|
||||||
|
14
Assets/Scripts/NarrationData.cs
Normal file
14
Assets/Scripts/NarrationData.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[CreateAssetMenu(menuName = "Narration/NarrationData")]
|
||||||
|
public class NarrationData : ScriptableObject
|
||||||
|
{
|
||||||
|
public NarrationID narrationID;
|
||||||
|
|
||||||
|
[Header("Audio Clips")]
|
||||||
|
public AudioClip englishClip;
|
||||||
|
public AudioClip arabicClip;
|
||||||
|
|
||||||
|
[Header("Subtitle Key")]
|
||||||
|
public string localizationKey; // Key used in LanguageManager
|
||||||
|
}
|
11
Assets/Scripts/NarrationData.cs.meta
Normal file
11
Assets/Scripts/NarrationData.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3109a7b091e2da44b950dc4b24d3f495
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
158
Assets/Scripts/NarrationPlayer.cs
Normal file
158
Assets/Scripts/NarrationPlayer.cs
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using TMPro;
|
||||||
|
using DG.Tweening;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
public enum NarrationID
|
||||||
|
{
|
||||||
|
Intro,
|
||||||
|
NewEmail,
|
||||||
|
ScanEmail,
|
||||||
|
CorrectReportChoice,
|
||||||
|
CorrectIgnoreChoice,
|
||||||
|
WrongIgnoreChoice,
|
||||||
|
Feedback,
|
||||||
|
GameEnd
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NarrationPlayer : MonoBehaviour
|
||||||
|
{
|
||||||
|
public static NarrationPlayer Instance { get; private set; }
|
||||||
|
|
||||||
|
[Header("Narration Assets")]
|
||||||
|
public List<NarrationData> narrationDatabase;
|
||||||
|
|
||||||
|
[Header("Subtitle Settings")]
|
||||||
|
public TextMeshProUGUI subtitleText;
|
||||||
|
public float charDelay = 0.03f;
|
||||||
|
|
||||||
|
private AudioSource audioSource;
|
||||||
|
private Tween typewriterTween;
|
||||||
|
private Dictionary<NarrationID, NarrationData> narrationMap;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
if (Instance != null && Instance != this)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Instance = this;
|
||||||
|
DontDestroyOnLoad(gameObject);
|
||||||
|
|
||||||
|
audioSource = gameObject.AddComponent<AudioSource>();
|
||||||
|
audioSource.playOnAwake = false;
|
||||||
|
|
||||||
|
narrationMap = new Dictionary<NarrationID, NarrationData>();
|
||||||
|
foreach (var data in narrationDatabase)
|
||||||
|
{
|
||||||
|
if (data != null && !narrationMap.ContainsKey(data.narrationID))
|
||||||
|
narrationMap[data.narrationID] = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayNarration(NarrationID id, System.Action onComplete = null)
|
||||||
|
{
|
||||||
|
if (!narrationMap.TryGetValue(id, out var narrationData))
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"Narration not found for: {id}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isArabic = LanguageManager.Instance.IsArabic;
|
||||||
|
AudioClip clip = isArabic ? narrationData.arabicClip : narrationData.englishClip;
|
||||||
|
|
||||||
|
if (clip == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"Missing audio clip for {id} in language: {(isArabic ? "Arabic" : "English")}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (audioSource.isPlaying)
|
||||||
|
audioSource.Stop();
|
||||||
|
|
||||||
|
audioSource.clip = clip;
|
||||||
|
audioSource.Play();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(narrationData.localizationKey))
|
||||||
|
{
|
||||||
|
string rawSubtitle = LanguageManager.Instance.GetLocalizedText(narrationData.localizationKey);
|
||||||
|
string subtitle = isArabic
|
||||||
|
? ArabicFixerHelper.FixPreservingTags(rawSubtitle)
|
||||||
|
: rawSubtitle;
|
||||||
|
|
||||||
|
// TMP settings per language
|
||||||
|
subtitleText.font = LanguageManager.Instance.GetCurrentFont();
|
||||||
|
subtitleText.fontSize = isArabic ? 26 : 36;
|
||||||
|
// subtitleText.alignment = isArabic ? TextAlignmentOptions.Right : TextAlignmentOptions.Left;
|
||||||
|
subtitleText.overflowMode = TextOverflowModes.Page;
|
||||||
|
subtitleText.isRightToLeftText = false; // MUST be false with ArabicFixer
|
||||||
|
|
||||||
|
AppendSubtitle(subtitle, isArabic);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (onComplete != null)
|
||||||
|
StartCoroutine(InvokeAfterNarration(clip.length, onComplete));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AppendSubtitle(string fullText, bool isArabic)
|
||||||
|
{
|
||||||
|
typewriterTween?.Kill();
|
||||||
|
subtitleText.text = "";
|
||||||
|
|
||||||
|
if (isArabic)
|
||||||
|
{
|
||||||
|
StartCoroutine(ShowArabicByPages(fullText));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int totalLength = fullText.Length;
|
||||||
|
int currentIndex = 0;
|
||||||
|
|
||||||
|
typewriterTween = DOTween.To(() => currentIndex, x =>
|
||||||
|
{
|
||||||
|
currentIndex = x;
|
||||||
|
subtitleText.text = fullText.Substring(0, currentIndex);
|
||||||
|
subtitleText.ForceMeshUpdate();
|
||||||
|
subtitleText.pageToDisplay = subtitleText.textInfo.pageCount;
|
||||||
|
}, totalLength, totalLength * charDelay).SetEase(Ease.Linear);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ShowArabicByPages(string fullText)
|
||||||
|
{
|
||||||
|
subtitleText.text = fullText;
|
||||||
|
subtitleText.ForceMeshUpdate();
|
||||||
|
|
||||||
|
int totalPages = subtitleText.textInfo.pageCount;
|
||||||
|
|
||||||
|
for (int i = 1; i <= totalPages; i++)
|
||||||
|
{
|
||||||
|
subtitleText.pageToDisplay = i;
|
||||||
|
yield return new WaitForSeconds(5f); // Adjust delay per page
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator InvokeAfterNarration(float delay, System.Action callback)
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(delay);
|
||||||
|
callback?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopNarration()
|
||||||
|
{
|
||||||
|
if (audioSource.isPlaying)
|
||||||
|
audioSource.Stop();
|
||||||
|
|
||||||
|
typewriterTween?.Kill();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClearSubtitles()
|
||||||
|
{
|
||||||
|
typewriterTween?.Kill();
|
||||||
|
subtitleText.text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsPlaying => audioSource.isPlaying;
|
||||||
|
}
|
11
Assets/Scripts/NarrationPlayer.cs.meta
Normal file
11
Assets/Scripts/NarrationPlayer.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 43059c037128db14f94c2bbcb006a175
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -73,6 +73,7 @@ public class SceneOutcomeManager : MonoBehaviour
|
|||||||
|
|
||||||
public void ProceedToDebrief()
|
public void ProceedToDebrief()
|
||||||
{
|
{
|
||||||
|
NarrationPlayer.Instance.PlayNarration(NarrationID.Feedback);
|
||||||
StartCoroutine(MoveCameraToDebrief());
|
StartCoroutine(MoveCameraToDebrief());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user