מעבר בין סצנות
סביבת אימות
- חלונות
-
- חלונות 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
השירות.
נסה להפעיל את המשחק ובדוק אם הסצנה משתנה לאחר לחיצה על הלחצן.