הדלת
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 71 מתוך 71.
האתגר הזה מסיים את היחידה: צלחות שפועלות כמתגים, קוד שמרוכז בסקריפט אחד, ודלת שמופעלת באמצעות קורוטינה שממתינה עד שהפתח יתפנה.
אתגר
קשהפתח את הדלת כשמופיע Unlocked, וסגור אותה שוב מאוחר יותר, אך לעולם לא כשהשחקן נמצא בה.
- כתוב
IEnumerator OpenDoor():door.SetActive(false);, ואזyield return new WaitForSeconds(openTime);. - אחר כך,
while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))),yield return null;. - לבסוף,
door.SetActive(true);ורשום ביומןDoor closed. הפעל זאת באמצעותStartCoroutine(OpenDoor());לאחר רישוםUnlocked.
לחץ על "שחק", פתח את הדלת וצא. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using System.Collections;
using UnityEngine;
public class CodeLock : MonoBehaviour
{
[SerializeField] private Renderer[] plates;
[SerializeField] private GameObject door;
[SerializeField] private Transform doorway;
[SerializeField] private float openTime = 4f;
private int next = 1;
public void Press(int number)
{
if (number == next)
{
Debug.Log("Plate " + number);
next++;
if (next > 3)
{
Debug.Log("Unlocked");
next = 1;
}
}
else
{
Debug.Log("Wrong plate");
next = 1;
StartCoroutine(Flash());
}
}
IEnumerator Flash()
{
foreach (Renderer plate in plates)
{
plate.material.color = Color.red;
}
yield return new WaitForSeconds(1f);
foreach (Renderer plate in plates)
{
plate.material.color = Color.gray;
}
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין