Update Layout Pretest, Postest

This commit is contained in:
Shavira 2025-05-29 09:36:00 +07:00
parent 14825b06a0
commit 598b9c5eeb
6 changed files with 33 additions and 112 deletions

View File

@ -132,6 +132,9 @@ MonoBehaviour:
- {fileID: 2323323422131760930} - {fileID: 2323323422131760930}
- {fileID: 2323323422542611504} - {fileID: 2323323422542611504}
- {fileID: 2323323421450116807} - {fileID: 2323323421450116807}
normalButttonSprite: {fileID: 21300000, guid: b0eb9c535328048ca85e8a9f5088e776, type: 3}
trueAnswerSprite: {fileID: 21300000, guid: b32a6d84afc984b61b05b20c3d44569b, type: 3}
falseAnswerSprite: {fileID: 21300000, guid: e6404ce3667f546569c1c59a6de9495d, type: 3}
timerText: {fileID: 8569834124009968930} timerText: {fileID: 8569834124009968930}
timeToComplete: 30 timeToComplete: 30
timeToShowAnswer: 1 timeToShowAnswer: 1
@ -798,8 +801,8 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 0} - m_Target: {fileID: 2121418773813650335}
m_TargetAssemblyTypeName: PreTestMenu, Assembly-CSharp m_TargetAssemblyTypeName: PostTestMenu, Assembly-CSharp
m_MethodName: OnAnswerSelected m_MethodName: OnAnswerSelected
m_Mode: 3 m_Mode: 3
m_Arguments: m_Arguments:
@ -1203,8 +1206,8 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 0} - m_Target: {fileID: 2121418773813650335}
m_TargetAssemblyTypeName: PreTestMenu, Assembly-CSharp m_TargetAssemblyTypeName: PostTestMenu, Assembly-CSharp
m_MethodName: OnAnswerSelected m_MethodName: OnAnswerSelected
m_Mode: 3 m_Mode: 3
m_Arguments: m_Arguments:
@ -1403,8 +1406,8 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 0} - m_Target: {fileID: 2121418773813650335}
m_TargetAssemblyTypeName: PreTestMenu, Assembly-CSharp m_TargetAssemblyTypeName: PostTestMenu, Assembly-CSharp
m_MethodName: OnAnswerSelected m_MethodName: OnAnswerSelected
m_Mode: 3 m_Mode: 3
m_Arguments: m_Arguments:
@ -1538,8 +1541,8 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 0} - m_Target: {fileID: 2121418773813650335}
m_TargetAssemblyTypeName: PreTestMenu, Assembly-CSharp m_TargetAssemblyTypeName: PostTestMenu, Assembly-CSharp
m_MethodName: OnAnswerSelected m_MethodName: OnAnswerSelected
m_Mode: 3 m_Mode: 3
m_Arguments: m_Arguments:

View File

@ -122,107 +122,6 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &154800206
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 154800210}
- component: {fileID: 154800209}
- component: {fileID: 154800208}
- component: {fileID: 154800207}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &154800207
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154800206}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &154800208
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154800206}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &154800209
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154800206}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &154800210
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 154800206}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!1 &519420028 --- !u!1 &519420028
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -11,6 +11,11 @@ public class PostTestMenu : Menu<PostTestMenu>
[SerializeField] TextMeshProUGUI questionText; [SerializeField] TextMeshProUGUI questionText;
[SerializeField] List<QuestionSO> questions = new List<QuestionSO>(); [SerializeField] List<QuestionSO> questions = new List<QuestionSO>();
[SerializeField] GameObject[] answerButtons; [SerializeField] GameObject[] answerButtons;
[Header("Answers")]
[SerializeField] private Sprite normalButttonSprite;
[SerializeField] private Sprite trueAnswerSprite;
[SerializeField] private Sprite falseAnswerSprite;
[Header("UI")] [Header("UI")]
[SerializeField] TextMeshProUGUI timerText; [SerializeField] TextMeshProUGUI timerText;
@ -70,7 +75,9 @@ public class PostTestMenu : Menu<PostTestMenu>
await EndGame(); await EndGame();
return; return;
} }
Image buttonImage;
int index = Random.Range(0, questions.Count); int index = Random.Range(0, questions.Count);
currentQuestion = questions[index]; currentQuestion = questions[index];
questions.RemoveAt(index); questions.RemoveAt(index);
@ -80,6 +87,8 @@ public class PostTestMenu : Menu<PostTestMenu>
for (int i = 0; i < answerButtons.Length; i++) for (int i = 0; i < answerButtons.Length; i++)
{ {
TextMeshProUGUI buttonText = answerButtons[i].GetComponentInChildren<TextMeshProUGUI>(); TextMeshProUGUI buttonText = answerButtons[i].GetComponentInChildren<TextMeshProUGUI>();
buttonImage = answerButtons[i].GetComponent<Image>();
buttonImage.sprite = normalButttonSprite;
buttonText.text = currentQuestion.GetAnswer(i); buttonText.text = currentQuestion.GetAnswer(i);
answerButtons[i].GetComponent<Image>().color = Color.white; answerButtons[i].GetComponent<Image>().color = Color.white;
answerButtons[i].GetComponent<Button>().interactable = true; answerButtons[i].GetComponent<Button>().interactable = true;
@ -105,16 +114,17 @@ public class PostTestMenu : Menu<PostTestMenu>
} }
Image selectedImage = answerButtons[index].GetComponent<Image>(); Image selectedImage = answerButtons[index].GetComponent<Image>();
if (index == correctAnswerIndex) if (index == correctAnswerIndex)
{ {
correctAnswers++; correctAnswers++;
selectedImage.color = Color.green; selectedImage.sprite = trueAnswerSprite;
questionText.text = "Jawaban Benar!"; questionText.text = "Jawaban Benar!";
} }
else else
{ {
selectedImage.color = Color.black; selectedImage.sprite = falseAnswerSprite;
questionText.text = "Jawaban Salah"; questionText.text = "Jawaban Salah";
} }
saveData.postTestStatistik = (int)(((float)correctAnswers / totalQuestions) * 100f); saveData.postTestStatistik = (int)(((float)correctAnswers / totalQuestions) * 100f);

View File

@ -14,6 +14,11 @@ public class PreTestMenu : Menu<PreTestMenu>
[Header("UI")] [Header("UI")]
[SerializeField] TextMeshProUGUI timerText; [SerializeField] TextMeshProUGUI timerText;
[Header("Answers")]
[SerializeField] private Sprite normalButttonSprite;
[SerializeField] private Sprite trueAnswerSprite;
[SerializeField] private Sprite falseAnswerSprite;
[Header("Settings")] [Header("Settings")]
[SerializeField] float timeToComplete = 30f; [SerializeField] float timeToComplete = 30f;
@ -71,6 +76,7 @@ public class PreTestMenu : Menu<PreTestMenu>
await EndGame(); await EndGame();
return; return;
} }
Image buttonImage;
int index = Random.Range(0, questions.Count); int index = Random.Range(0, questions.Count);
currentQuestion = questions[index]; currentQuestion = questions[index];
@ -81,6 +87,8 @@ public class PreTestMenu : Menu<PreTestMenu>
for (int i = 0; i < answerButtons.Length; i++) for (int i = 0; i < answerButtons.Length; i++)
{ {
TextMeshProUGUI buttonText = answerButtons[i].GetComponentInChildren<TextMeshProUGUI>(); TextMeshProUGUI buttonText = answerButtons[i].GetComponentInChildren<TextMeshProUGUI>();
buttonImage = answerButtons[i].GetComponent<Image>();
buttonImage.sprite = normalButttonSprite;
buttonText.text = currentQuestion.GetAnswer(i); buttonText.text = currentQuestion.GetAnswer(i);
answerButtons[i].GetComponent<Image>().color = Color.white; answerButtons[i].GetComponent<Image>().color = Color.white;
answerButtons[i].GetComponent<Button>().interactable = true; answerButtons[i].GetComponent<Button>().interactable = true;
@ -111,12 +119,13 @@ public class PreTestMenu : Menu<PreTestMenu>
if (index == correctAnswerIndex) if (index == correctAnswerIndex)
{ {
correctAnswers++; correctAnswers++;
selectedImage.color = Color.green; selectedImage.sprite = trueAnswerSprite;
questionText.text = "Jawaban Benar!"; questionText.text = "Jawaban Benar!";
} }
else else
{ {
selectedImage.color = Color.black; selectedImage.color = Color.black;
selectedImage.sprite = falseAnswerSprite;
questionText.text = "Jawaban Salah"; questionText.text = "Jawaban Salah";
} }