שימוש במרקמי רינדור להצגת התוכן של סצנה אחרת כמרקמים

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

סביבת אימות

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

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

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

בהתחלה

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

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

הכנת תמונות

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

יצירת מרקם רינדור

צור נכס מהפרוייקט. מתוך 'צור', בחרו 'רינדור מרקם'.

השם יכול להיות שרירותי. מכיוון שהשם אינו מצוין ישירות מבחוץ NewRenderTexture בשלב זה, השאר כ- .

בחרו במרקם הרינדור וציינו את גודלו מהמפקח. מאחר שמרקם הרינדור הוא אזור ציור, יש לציין גודל. הפעם, אני רוצה לכתוב סצנה שנוצרה בנפרד, אז קבעתי את יחס הרוחב-גובה ל-16:9.

קביעת יעד מרקם הרינדור

בחר "UI" > "Raw Image" מההיררכיה של הסצנה שנוצרה בתחילה. הצג את תוכן מרקם הרינדור באובייקט זה. זהו אובייקט של ממשק המשתמש, אבל מה שאתה צריך הוא רכיב "תמונה גולמית", אשר ניתן להגדיר אובייקט אחר.

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

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

לרכיב Raw Image של אובייקט RawImage יש "מרקם", לכן הגדר שם את מרקם הרינדור שזה עתה יצרת. התוכן של מרקם הרינדור עדיין ריק, ולכן הוא שקוף בתצוגה.

יצירת סצנה של תוכן ציור מרקם רינדור

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

מכיוון שמדגם זה הוא דו-ממדי, תבחר גם סצנה דו-ממדית.

צרו אותו בתיקייה 'סצינה'. SampleSceneTexture השאר את השם כ- .

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

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

לאחר בחירת "MainCamera", הגדר את מרקם הרינדור ב- "מרקם יעד". פעולה זו גורמת לציור לצייר במרקם הרינדור.

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

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

קביעות שכבה

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

ראשית, בחר "ערוך שכבה" מהשכבה בפינה השמאלית העליונה של העורך.

השם והמיקום שרירותיים, אך כאן נוסיף שכבה חדשה RenderTarget בשם .

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

SampleSceneTexture פעולה זו תסיים את עריכת הסצנה, אז אנא שמור אותה.

הצגת מרקמי רינדור

SampleScene לאחר שפתחת סצינה, הוסף אותה להירארכיה SampleSceneTexture על-ידי גרירה ושחרור של הסצינה. לאחר מכן, צריכות להיות שתי סצנות בהיררכיה, ואת התוכן של הסצנה צריך להיות מוצג על SampleSceneTexture המסך.

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

עם זאת, ההסתרה על ידי סמל העין היא רק הגדרה כדי להפוך אותו בלתי נראה על העורך, כך שאם אתה מפעיל SampleSceneTexture את המשחק כפי שהוא, התוכן של הסצנה יוצג גם על המסך. SampleScene לאחר מכן בחרו 'סצינה' ובטלו את הסימון של 'Main Cameraמסיכת RenderTarget קולינג' במפקחCamera. פעולה זו מונעת את הצגת העצמים בשכבה כשהמשחק RenderTarget פועל.

נסה להפעיל את המשחק. זה אמור להופיע כמתוכנן.

נסה להזיז את מרקם הרינדור

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

התוכן יכול להיות כל דבר, אבל כאן נגדיר את התנועה לסובב אוטומטית את ספרייט. צור סקריפט SelfRotate וצור אותו כ- .

כאן, נכלול תהליך פשוט של סיבוב עצמו לאט לאט.

using UnityEngine;

public class SelfRotate : MonoBehaviour
{
  // 更新はフレームごとに 1 回呼び出されます
  void Update()
  {
    transform.Rotate(0, 0, 0.1f);
  }
}

לאחר יצירת הסקריפט, צרף עוד ועוד לאובייקט שברצונך לסובב.

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

כיצד להזיז סצנות מרובות בו-זמנית

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

עיין בסעיף "הוספת סצינה" לקבלת הסבר כיצד להוסיף סצינה. בעיקרון, SceneManager.LoadScene("<シーン名>", LoadSceneMode.Additive); שיחות אמורות לפתור את רוב הבעיות.

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

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

כשברצונך להשלים את התוכן של מרקם רינדור בסצנה אחת מבלי לחלק אותו לסצינות שונות

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

אם ברצונך ללכוד תוכן שצולם מנקודת מבט שונה במשחק תלת-ממד כמרקם רינדור

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