מעבר בין סצנות

עודכן דף :
תאריך יצירת דף :

סביבת אימות

חלונות
  • חלונות 11
עורך Unity
  • 2020.3.25F1
חבילת מערכת קלט
  • 1.2.0

תנאים מוקדמים לטיפ זה

ההגדרות הבאות נקבעו מראש כהנחת יסוד לתיאור עצה זו.

למד כיצד לעבור בין סצנות

סצנה היא מה שנקרא "סצנה", אבל יוניטי משתמשת במילה "סצנה" כפי שהיא, אז אני אסביר את זה עם סצנת הביטוי.

סצנות עוברות לעתים קרובות בין סצנות במשחק. לדוגמה, אם אתה מפעיל את המשחק מתפריט התחלה והפעולה מתחילה, אתה יכול לחשוב עליו כעל מתג סצינה. כמו כן, הפעולה של פתיחת מסך התפריט במהלך פעולה תהיה גם החלפת סצנה בהתאם לביטוי התפריט.

סוג זה של החלפת סצנות צריך להיות מיושם ביוניטי, ויש דרכים רבות לעשות זאת. לדוגמה, צריכה להיות רק "סצנה אחת (באחדות)" במשחק. כאשר סצנת המשחק משתנה, כל האובייקטים מהסצנה הקודמת מושלכים, והאובייקטים הדרושים נוצרים לסצנה הבאה. עם זאת, בעוד שלגישה זו יש את היתרון של מתן סצנה אחת בלבד, יש לה את החיסרון של הצורך לנהל באופן תוכניתי מעברי אובייקטים.

בטיפ זה, ברצוני ליישם שיטה של הכנת קבצי "סצנה" רבים ככל שיש סצנות והצבת האובייקטים הדרושים בסצנה מראש להחלפת סצנות. המעבר בין סצנות אמיתיות הוא קל מאוד מכיוון שכל שעליך לעשות הוא לעבור בין קבצי סצינה.

הכנת הסצנה

ראשית, צור פרוייקט רגיל. ההנחה היא שכבר הכנת את חבילת מערכת הקלט והגדרת את המצלמה.

הפעם נכין שני קבצי סצנה, וניישם את פעולת הלחיצה על הכפתור בסצנה הראשונה והמעבר לסצנה השנייה.

SampleScene יש לתת שם לסצנה הקיימת , לכן שנה זאת SampleScene1 ל- .

לאחר מכן, לחץ לחיצה ימנית על אזור ריק של הפרויקט ובחר "סצנה" מ "צור". באפשרותך גם להוסיף אותו מלחצן + מתחת לכרטיסיית הפרויקט.

קובץ סצנה חדש יתווסף, לכן תן לו שם SampleScene2 .

SampleScene1 לחץ פעמיים כדי לפתוח את הסצינה ולמקם את האובייקט כפי שמוצג להלן. SampleScene2 בעת לחיצה על הלחצן, באפשרותך לעבור ל- , כך שהפריסה תוכל להיות מתאימה.

SampleScene2 לחץ פעמיים כדי לפתוח את הסצינה ולמקם את האובייקט כפי שמוצג להלן. זה לא משנה מה אתה שם כי אתה רק רוצה לדעת מה השתנה.

לאחר יצירת הסצנה, פתח את "קובץ > הגדרות בנייה" מהתפריט.

ירידה בסצינות הכלולות ב SampleScene2 - Build.

סגור את הגדרות הבנייה לאחר הוספתן, כפי שמוצג להלן.

תהליך החלפת סצנות

החלפת סצנות נעשית על ידי תסריט, אז אנא צור תסריט. השם שרירותי, אבל במקרה SceneChange זה הוא .

הסקריפט נראה כך:

using UnityEngine;
using UnityEngine.SceneManagement;  // 追加

public class SceneChange : MonoBehaviour
{
  /// <summary>ボタンをクリックしたときに呼ばれます。</summary>
  public void OnClick()
  {
    // 指定したシーンを読み込み他のシーンは削除します
    SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
  }
}

התוכן הוא פשוט SceneManager.LoadScene מאוד ואתה יכול לעבור בין סצנות על ידי שיטות שיחה.

הטיעון הראשון הוא שם הסצנה שאליה יש לעבור.

אם תציין כארגומנט LoadSceneMode.Single השני, תוכל לפתוח רק את הסצינה שצוינה בעת סגירת הסצינה הנוכחית. יש גם פרמטר שנקרא פשוט להוסיף LoadSceneMode.Additive סצנה, אבל אני לא אסביר את זה במאמר זה.

לאחר שמירת קובץ ה- Script, SampleScene1 פתח וצרף אותו ל- . EventSystem זה יכול להיות כל חפץ שאתה מתחבר אליו.

הגדר OnClick את אירוע הלחיצה של הלחצן לאובייקט המצורף אליו כך שניתן יהיה לקרוא לפעולת SceneChange השירות.

נסה להפעיל את המשחק ובדוק אם הסצנה משתנה לאחר לחיצה על הלחצן.