initial commit
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
%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: ff771ccdf4150419d9ff4d342b069aae, type: 3}
|
||||
m_Name: Step_4.4.1
|
||||
m_EditorClassIdentifier:
|
||||
Title:
|
||||
m_Untranslated: Overview
|
||||
m_Paragraphs:
|
||||
m_Items:
|
||||
- m_Type: 6
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated:
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 32900000, guid: 53f88a75402804c628dcbcd5217c73b3, type: 3}
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 1
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 0
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated: "Try these optional activities to challenge yourself, build
|
||||
your skills, and improve your project!\n\nEach challenge is tagged as <b>Easy</b>,
|
||||
<b>Medium</b>, or <b>Expert</b> difficulty so that you know what to expect.
|
||||
You can do one of them, all of them, or none of them \u2014 it\u2019s totally
|
||||
up to you!\n\n\u2022 <b>Easy:</b> Add a jump ability.\n\u2022 <b>Medium:</b>
|
||||
Make the door open when the player approaches. \n\u2022 <b>Expert:</b>
|
||||
Use generative AI to add multi-camera toggling. \n\nIf you\u2019re not
|
||||
interested in doing these challenges, skip to the end of this tutorial
|
||||
to mark it as complete."
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
m_CameraSettings:
|
||||
m_CameraMode: 1
|
||||
m_FocusMode: 0
|
||||
m_Orthographic: 0
|
||||
m_Size: 10
|
||||
m_Pivot: {x: 6.7290187, y: -15.533001, z: -3.385282}
|
||||
m_Rotation: {x: 0.44912335, y: 0.33663946, z: -0.18756376, w: 0.8060943}
|
||||
m_FrameObject:
|
||||
m_SceneGuid:
|
||||
m_GameObjectGuid:
|
||||
m_SerializedComponentType:
|
||||
m_TypeName:
|
||||
m_ComponentIndex: 0
|
||||
m_AssetObject: {fileID: 0}
|
||||
m_Prefab: {fileID: 0}
|
||||
m_Enabled: 0
|
||||
NextButton:
|
||||
m_Untranslated: Next
|
||||
DoneButton:
|
||||
m_Untranslated: Done
|
||||
m_CompletedSound: {fileID: 0}
|
||||
m_AutoAdvance: 0
|
||||
Showing:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Shown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Staying:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
CriteriaValidated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
MaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
NonMaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforePageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnAfterPageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTutorialPageStay:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforeTutorialQuit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_NextButton: Next
|
||||
m_DoneButton: Done
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9244eac34778c544da2ddd6616646deb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,182 @@
|
||||
%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: ff771ccdf4150419d9ff4d342b069aae, type: 3}
|
||||
m_Name: Step_4.4.2
|
||||
m_EditorClassIdentifier:
|
||||
Title:
|
||||
m_Untranslated: 'Easy: Add a jump ability'
|
||||
m_Paragraphs:
|
||||
m_Items:
|
||||
- m_Type: 9
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated:
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 2800000, guid: d29fefbb3d8b8428ea34ebe4f67eb028, type: 3}
|
||||
m_VideoUrl: https://storage.googleapis.com/learn-media-public/Essentials-Pathway/4.C%20-%20Challenge/4.C.2%20-%20Easy%20-%20Add%20a%20jump%20ability.webm
|
||||
m_Video: {fileID: 32900000, guid: 5b69f4d6321874ec19173e92689ae1ad, type: 3}
|
||||
m_Media:
|
||||
m_ContentType: 2
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url: https://storage.googleapis.com/learn-media-public/Essentials-Pathway/4.C%20-%20Challenge/4.C.2%20-%20Easy%20-%20Add%20a%20jump%20ability.webm
|
||||
m_AutoStart: 0
|
||||
m_Loop: 0
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 0
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated: "The ability for a player character to jump unlocks limitless
|
||||
additional gameplay possibilities and mechanics. \n\nIn this extra challenge,
|
||||
you\u2019ll give the player the ability to jump with just a few lines of
|
||||
code. \n\nThis optional challenge is classified as Easy difficulty."
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_Media:
|
||||
m_ContentType: 0
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url:
|
||||
m_AutoStart: 1
|
||||
m_Loop: 1
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 1
|
||||
Title:
|
||||
m_Untranslated: Instructions
|
||||
Text:
|
||||
m_Untranslated: "<b>1.</b> Open the <b>PlayerController</b> script in your
|
||||
script editor. \n\n<b>2.</b> Add the following variable declaration statement
|
||||
directly below your other <b>speed</b> and <b>rotationSpeed</b> variables
|
||||
toward the top of your script:\n\n<b>public float jumpForce = 5.0f;</b>\n\nAfter
|
||||
you save your script, this variable will be visible and editable in the
|
||||
<b>Player Controller</b> component. \n\n<b>3.</b> Between the opening
|
||||
and closing curly brackets of the empty <b>Update()</b> function, add the
|
||||
following code:\n\nif (Input.GetButtonDown(\"Jump\")) {\n rb.AddForce(Vector3.up
|
||||
* jumpForce, ForceMode.VelocityChange);\n}\n\nHere's what this code means:
|
||||
\n\n\u2022 <b>if (Input.GetButtonDown(\"Jump\")):</b> Checks if the <b>Jump</b>
|
||||
button is pressed. <b>Jump</b> is configured in Unity's Input Manager to
|
||||
correspond to a key or button press. By default, the <b>Jump</b> action
|
||||
corresponds to the <b>Spacebar.</b>\n\n\u2022 <b>rb:</b> A reference to
|
||||
the GameObject's <b>Rigidbody</b> component, used to apply physics.\n\n\u2022
|
||||
<b>rb.AddForce(Vector3.up * jumpForce, ForceMode.VelocityChange):</b> Applies
|
||||
an upward force to make the object jump. \n\n- Vector3.up indicates the
|
||||
upward direction, and jumpForce sets the force magnitude.\n- ForceMode.VelocityChange
|
||||
changes velocity directly, making the jump instant.\n\n<b>4.</b> Save
|
||||
your script and return to Unity. Enter <b>Play</b> mode and press <b>Spacebar</b>
|
||||
to test the new jump. Adjust the Jump Force variable as you see fit."
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_Media:
|
||||
m_ContentType: 0
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url:
|
||||
m_AutoStart: 1
|
||||
m_Loop: 1
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
m_CameraSettings:
|
||||
m_CameraMode: 0
|
||||
m_FocusMode: 0
|
||||
m_Orthographic: 0
|
||||
m_Size: 0
|
||||
m_Pivot: {x: 0, y: 0, z: 0}
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_FrameObject:
|
||||
m_SceneGuid:
|
||||
m_GameObjectGuid:
|
||||
m_SerializedComponentType:
|
||||
m_TypeName:
|
||||
m_ComponentIndex: 0
|
||||
m_AssetObject: {fileID: 0}
|
||||
m_Prefab: {fileID: 0}
|
||||
m_Enabled: 0
|
||||
NextButton:
|
||||
m_Untranslated: Next
|
||||
DoneButton:
|
||||
m_Untranslated: Done
|
||||
m_CompletedSound: {fileID: 0}
|
||||
m_FaqEntries: []
|
||||
m_AutoAdvance: 0
|
||||
Showing:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Shown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Staying:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
CriteriaValidated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
MaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
NonMaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforePageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnAfterPageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTutorialPageStay:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforeTutorialQuit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_NextButton: Next
|
||||
m_DoneButton: Done
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8ee90ab646bab8f428000cb7d69b8d12
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,203 @@
|
||||
%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: ff771ccdf4150419d9ff4d342b069aae, type: 3}
|
||||
m_Name: Step_4.4.3
|
||||
m_EditorClassIdentifier:
|
||||
Title:
|
||||
m_Untranslated: 'Medium: Make the door open when the player approaches'
|
||||
m_Paragraphs:
|
||||
m_Items:
|
||||
- m_Type: 9
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated:
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 2800000, guid: d29fefbb3d8b8428ea34ebe4f67eb028, type: 3}
|
||||
m_VideoUrl: https://storage.googleapis.com/learn-media-public/Essentials-Pathway/4.C%20-%20Challenge/4.C.3%20-%20Medium%20-%20Make%20the%20door%20open%20when%20the%20player%20approaches_U6_V2.webm
|
||||
m_Video: {fileID: 32900000, guid: 5b69f4d6321874ec19173e92689ae1ad, type: 3}
|
||||
m_Media:
|
||||
m_ContentType: 2
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url: https://storage.googleapis.com/learn-media-public/Essentials-Pathway/4.C%20-%20Challenge/4.C.3%20-%20Medium%20-%20Make%20the%20door%20open%20when%20the%20player%20approaches_U6_V2.webm
|
||||
m_AutoStart: 0
|
||||
m_Loop: 0
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 0
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated: "The player is currently trapped in the living room. It would
|
||||
open up so many possibilities if the player was able to open the doors
|
||||
and enter other rooms. You could even connect the living room with the
|
||||
kitchen and the kid\u2019s room and allow the player to explore all three
|
||||
environments! \n\nTo allow the player to open the door, you\u2019ll need
|
||||
to add a new script that makes use of Unity\u2019s Animator system. You
|
||||
may not have realized this, but you can actually create animations directly
|
||||
in Unity and then trigger those animations via scripts. \n\nThe <b>Door</b>
|
||||
GameObject already has an <b>Animator</b> component with a Door_Open animation
|
||||
attached to it. You need to add the script that tells that animation to
|
||||
start when the player enters a trigger zone of the door. \n\nThis optional
|
||||
challenge is classified as Medium difficulty."
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_Media:
|
||||
m_ContentType: 0
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url:
|
||||
m_AutoStart: 1
|
||||
m_Loop: 1
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 1
|
||||
Title:
|
||||
m_Untranslated: Instructions
|
||||
Text:
|
||||
m_Untranslated: "<b>1.</b> Create a new script in the <b>Unity Essentials</b>
|
||||
> <b>Scripts</b> folder named \u201CDoorOpener\u201D. \n\n<b>Important:</b>
|
||||
The name of this script must match exactly the name declared at the top
|
||||
of the class in the code snippet below (DoorOpener). \n\n<b>2.</b> In
|
||||
the <b>Scene</b> view, select the door on the right side of the living
|
||||
room, then in the <b>Hierarchy</b> window, make sure you have selected
|
||||
the parent <b>Door</b> GameObject \u2014 and not the child <b>DoorPanel</b>
|
||||
or <b>DoorHandle</b> GameObjects. \n\nThe parent GameObject is the one
|
||||
with the <b>Animator</b> component attached to it. \n\n<b>3.</b> With
|
||||
the <b>Door</b> GameObject selected, select <b>Add Component,</b> then
|
||||
search for and add your new <b>DoorOpener</b> script. \n\n<b>4.</b> Open
|
||||
the <b>DoorOpener</b> script in your script editor, delete all the default
|
||||
code inside it, and replace it by copying and pasting the code below into
|
||||
the empty script. \n\nFeel free to read through the code to see if you
|
||||
can understand it, with help from the comments. When you\u2019re done,
|
||||
save your script and return to the Unity Editor. \n\nThe script relies
|
||||
on the door having a trigger zone that detects when the player has entered
|
||||
it. \n\n<b>5.</b> With the <b>Door</b> GameObject still selected, add
|
||||
a new <b>Box Collider</b> component, then enable the <b>Is Trigger</b>
|
||||
property. \n\n<b>6.</b> In the <b>Box Collider</b> component, select
|
||||
<b>Edit Collider</b> then use the <b>Scene</b> view collider controls to
|
||||
set the size and position of the trigger zone. \n\n<b>7.</b> Enter <b>Play</b>
|
||||
mode to test your game. \n\nWhen the player enters the trigger zone, the
|
||||
door should open!"
|
||||
m_CodeSample: "using UnityEngine;\r\n\r\n\r\npublic class DoorOpener : MonoBehaviour\r\n{\r\n
|
||||
private Animator doorAnimator;\r\n\r\n void Start()\r\n {\r\n //
|
||||
Get the Animator component attached to the same GameObject as this script\r\n
|
||||
doorAnimator = GetComponent<Animator>();\r\n }\r\n\r\n private void OnTriggerEnter(Collider
|
||||
other)\r\n {\r\n // Check if the object entering the trigger is the
|
||||
player (or another specified object)\r\n if (other.CompareTag(\"Player\"))
|
||||
// Make sure the player GameObject has the tag \"Player\"\r\n {\r\n
|
||||
if (doorAnimator != null)\r\n {\r\n // Trigger the
|
||||
Door_Open animation\r\n doorAnimator.SetTrigger(\"Door_Open\");\r\n
|
||||
}\r\n }\r\n }\r\n}\r"
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_Media:
|
||||
m_ContentType: 0
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url:
|
||||
m_AutoStart: 1
|
||||
m_Loop: 1
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
m_CameraSettings:
|
||||
m_CameraMode: 0
|
||||
m_FocusMode: 0
|
||||
m_Orthographic: 0
|
||||
m_Size: 0
|
||||
m_Pivot: {x: 0, y: 0, z: 0}
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_FrameObject:
|
||||
m_SceneGuid:
|
||||
m_GameObjectGuid:
|
||||
m_SerializedComponentType:
|
||||
m_TypeName:
|
||||
m_ComponentIndex: 0
|
||||
m_AssetObject: {fileID: 0}
|
||||
m_Prefab: {fileID: 0}
|
||||
m_Enabled: 0
|
||||
NextButton:
|
||||
m_Untranslated: Next
|
||||
DoneButton:
|
||||
m_Untranslated: Done
|
||||
m_CompletedSound: {fileID: 0}
|
||||
m_FaqEntries: []
|
||||
m_AutoAdvance: 0
|
||||
Showing:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Shown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Staying:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
CriteriaValidated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
MaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
NonMaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforePageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnAfterPageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTutorialPageStay:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforeTutorialQuit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_NextButton: Next
|
||||
m_DoneButton: Done
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c397ce03275ec39419703f4c0eda7af8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,190 @@
|
||||
%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: ff771ccdf4150419d9ff4d342b069aae, type: 3}
|
||||
m_Name: Step_4.4.4
|
||||
m_EditorClassIdentifier:
|
||||
Title:
|
||||
m_Untranslated: 'Expert: Use generative AI to simulate sunrise and sunset'
|
||||
m_Paragraphs:
|
||||
m_Items:
|
||||
- m_Type: 9
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated:
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 2800000, guid: d29fefbb3d8b8428ea34ebe4f67eb028, type: 3}
|
||||
m_VideoUrl: https://storage.googleapis.com/learn-media-public/Essentials-Pathway/4.C%20-%20Challenge/4.C.4%20-%20Expert%20-%20Use%20generative%20AI%20to%20simulate%20sunrise%20and%20sunset_U6_V3.webm
|
||||
m_Video: {fileID: 32900000, guid: 5b69f4d6321874ec19173e92689ae1ad, type: 3}
|
||||
m_Media:
|
||||
m_ContentType: 2
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url: https://storage.googleapis.com/learn-media-public/Essentials-Pathway/4.C%20-%20Challenge/4.C.4%20-%20Expert%20-%20Use%20generative%20AI%20to%20simulate%20sunrise%20and%20sunset_U6_V3.webm
|
||||
m_AutoStart: 0
|
||||
m_Loop: 0
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 0
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated: "You\u2019d be amazed at how much you can accomplish with
|
||||
the help of generative AI large language models (LLMs) like <a href=\"https://muse.unity.com/\">Unity
|
||||
Muse</a>, ChatGPT, or Claude. These tools are especially helpful for generating
|
||||
relatively simple code. Unity Muse is trained and refined for Unity-specific
|
||||
questions, so it will probably give you the most reliable results, but
|
||||
other LLMs will work very well too. \n\nIn this Expert-level challenge,
|
||||
you\u2019ll use one of these tools to generate a script that slowly rotates
|
||||
the <b>Directional Light</b>, simulating a day-night cycle in your scene.\n\nThis
|
||||
optional challenge is classified as Expert difficulty."
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_Media:
|
||||
m_ContentType: 0
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url:
|
||||
m_AutoStart: 1
|
||||
m_Loop: 1
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 1
|
||||
Title:
|
||||
m_Untranslated: Instructions
|
||||
Text:
|
||||
m_Untranslated: "<b>1.</b> Head over to your generative AI tool of choice
|
||||
and enter a prompt similar to the one below: \n\n\u201CCreate a script
|
||||
for Unity that I can add to my <b>Directional Light</b> that slowly rotates
|
||||
the light to simulate the day passing. The actual seconds for a day to
|
||||
pass should be a variable editable in the <b>Inspector</b> window.\u201D\n\n<b>2.</b>
|
||||
In the script that is generated, locate the class declaration line at the
|
||||
top of the script that says, \u201Cpublic class [SCRIPT_NAME] : MonoBehaviour.\u201D
|
||||
\n\nThe [SCRIPT_NAME] is what you\u2019ll need to name your script. The
|
||||
one generated for you will likely be different from the name of the script
|
||||
in the example!\n\n<b>3.</b> In the <b>Project</b> window, create a new
|
||||
script and give it the appropriate script name, then apply it to the <b>Directional
|
||||
Light</b> GameObject in your scene. \n\n<b>Important:</b> The name of
|
||||
your script in the <b>Project</b> window and the name declared within the
|
||||
script in the class declaration (\u201Cpublic class [SCRIPT_NAME]\u201D)
|
||||
must match exactly! Otherwise, your project will display an error in the
|
||||
console.\n\n<b>4.</b> Open the script and replace the default code with
|
||||
the AI-generated code. Save the script and return to the Editor. \n\n<b>5.</b>
|
||||
In the <b>Inspector</b> window, there should be a new variable that allows
|
||||
you to control the time it takes for a full day to pass. Make the day pass
|
||||
quickly for testing purposes.\n\n<b>6.</b> Enter <b>Play</b> mode to test
|
||||
your new sun rotation functionality. \n\nIf something doesn\u2019t work,
|
||||
explain what is happening to the AI tool and see if the AI can troubleshoot
|
||||
the issue!"
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_Media:
|
||||
m_ContentType: 0
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_Url:
|
||||
m_AutoStart: 1
|
||||
m_Loop: 1
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
m_CameraSettings:
|
||||
m_CameraMode: 0
|
||||
m_FocusMode: 0
|
||||
m_Orthographic: 0
|
||||
m_Size: 0
|
||||
m_Pivot: {x: 0, y: 0, z: 0}
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_FrameObject:
|
||||
m_SceneGuid:
|
||||
m_GameObjectGuid:
|
||||
m_SerializedComponentType:
|
||||
m_TypeName:
|
||||
m_ComponentIndex: 0
|
||||
m_AssetObject: {fileID: 0}
|
||||
m_Prefab: {fileID: 0}
|
||||
m_Enabled: 0
|
||||
NextButton:
|
||||
m_Untranslated: Next
|
||||
DoneButton:
|
||||
m_Untranslated: Done
|
||||
m_CompletedSound: {fileID: 0}
|
||||
m_FaqEntries: []
|
||||
m_AutoAdvance: 0
|
||||
Showing:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Shown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Staying:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
CriteriaValidated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
MaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
NonMaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforePageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnAfterPageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTutorialPageStay:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforeTutorialQuit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_NextButton: Next
|
||||
m_DoneButton: Done
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 105a73c2b6ded1c4b8437f2ce2a4f4cb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,140 @@
|
||||
%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: ff771ccdf4150419d9ff4d342b069aae, type: 3}
|
||||
m_Name: Step_4.4.5
|
||||
m_EditorClassIdentifier:
|
||||
Title:
|
||||
m_Untranslated: Proceed to the next tutorial
|
||||
m_Paragraphs:
|
||||
m_Items:
|
||||
- m_Type: 6
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated:
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 32900000, guid: 5a9ac420de85d43c6ad82d86253e2c25, type: 3}
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 1
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 0
|
||||
Title:
|
||||
m_Untranslated:
|
||||
Text:
|
||||
m_Untranslated: No matter if you chose to tackle a single challenge, complete
|
||||
them all, or skip them, you're set for the next step.
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
- m_Type: 1
|
||||
Title:
|
||||
m_Untranslated: Instructions
|
||||
Text:
|
||||
m_Untranslated: Proceed to the next tutorial, where you'll have a chance
|
||||
to complete a quiz and get credit for completing this project.
|
||||
m_CodeSample:
|
||||
m_PostInstructionImage: {fileID: 0}
|
||||
m_Tutorial: {fileID: 0}
|
||||
m_Image: {fileID: 0}
|
||||
m_VideoUrl:
|
||||
m_Video: {fileID: 0}
|
||||
m_CriteriaCompletion: 0
|
||||
m_Criteria:
|
||||
m_Items: []
|
||||
m_MaskingSettings:
|
||||
m_MaskingEnabled: 0
|
||||
m_UnmaskedViews: []
|
||||
m_Summary:
|
||||
m_Description:
|
||||
m_InstructionBoxTitle:
|
||||
m_InstructionText:
|
||||
m_TutorialButtonText:
|
||||
m_CameraSettings:
|
||||
m_CameraMode: 0
|
||||
m_FocusMode: 0
|
||||
m_Orthographic: 0
|
||||
m_Size: 0
|
||||
m_Pivot: {x: 0, y: 0, z: 0}
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_FrameObject:
|
||||
m_SceneGuid:
|
||||
m_GameObjectGuid:
|
||||
m_SerializedComponentType:
|
||||
m_TypeName:
|
||||
m_ComponentIndex: 0
|
||||
m_AssetObject: {fileID: 0}
|
||||
m_Prefab: {fileID: 0}
|
||||
m_Enabled: 0
|
||||
NextButton:
|
||||
m_Untranslated: Next
|
||||
DoneButton:
|
||||
m_Untranslated: Done
|
||||
m_CompletedSound: {fileID: 0}
|
||||
m_AutoAdvance: 0
|
||||
Showing:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Shown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Staying:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
CriteriaValidated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
MaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
NonMaskingSettingsChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforePageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnAfterPageShown:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTutorialPageStay:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnBeforeTutorialQuit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_NextButton: Next
|
||||
m_DoneButton: Done
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 21defa06b31babb489cee053f7e25abc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,67 @@
|
||||
%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: 8f107dc6d4c984c45bdafd3bb15f98f0, type: 3}
|
||||
m_Name: Tut_4.4
|
||||
m_EditorClassIdentifier:
|
||||
TutorialTitle:
|
||||
m_Untranslated: 'Programming Essentials: More things to try'
|
||||
m_ProgressTrackingEnabled: 1
|
||||
m_LessonId: b0a08ba9-1fa7-48b5-9c26-d075842a21e2
|
||||
m_Version: 1
|
||||
m_ReturnToPreviousScenes: 0
|
||||
m_SceneManagementBehavior: 1
|
||||
m_Scenes: []
|
||||
m_DefaultSceneCameraSettings:
|
||||
m_CameraMode: 1
|
||||
m_FocusMode: 0
|
||||
m_Orthographic: 0
|
||||
m_Size: 0.7414055
|
||||
m_Pivot: {x: 12, y: 8, z: -15}
|
||||
m_Rotation: {x: -0.20906472, y: 0.2526841, z: -0.05601874, w: -0.9430295}
|
||||
m_FrameObject:
|
||||
m_SceneGuid:
|
||||
m_GameObjectGuid:
|
||||
m_SerializedComponentType:
|
||||
m_TypeName:
|
||||
m_ComponentIndex: 0
|
||||
m_AssetObject: {fileID: 0}
|
||||
m_Prefab: {fileID: 0}
|
||||
m_Enabled: 0
|
||||
m_WindowLayout: {fileID: 0}
|
||||
m_Pages:
|
||||
m_Items:
|
||||
- {fileID: 11400000, guid: 9244eac34778c544da2ddd6616646deb, type: 2}
|
||||
- {fileID: 11400000, guid: 8ee90ab646bab8f428000cb7d69b8d12, type: 2}
|
||||
- {fileID: 11400000, guid: c397ce03275ec39419703f4c0eda7af8, type: 2}
|
||||
- {fileID: 11400000, guid: 105a73c2b6ded1c4b8437f2ce2a4f4cb, type: 2}
|
||||
- {fileID: 11400000, guid: 21defa06b31babb489cee053f7e25abc, type: 2}
|
||||
CompletionDialog: {fileID: 0}
|
||||
Modified:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Initiated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
PageInitiated:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
GoingBack:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Completed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
Quit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Scene: {fileID: 0}
|
||||
m_TutorialTitle:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d4dbcbc5a9ba9f742a2b2a15285c613a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user