تعویض بین صحنه ها

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط تایید

ویندوز
  • ویندوز 11
ویرایشگر یونیتی
  • دانلود: 2020.3.25f1
بسته سیستم ورودی
  • 1.2.0

پیشنیازهای این نکته

تنظیمات زیر از قبل به عنوان یک فرض برای توصیف این نکته ساخته شده است.

یاد بگیرید چگونه بین صحنه ها جابه جای دهید

صحنه به اصطلاح "صحنه" است، اما یونیتی از کلمه "صحنه" استفاده می کند، بنابراین من ان را با صحنه بیان توضیح می دهم.

صحنه ها اغلب بین صحنه های بازی تغییر می کنند. به عنوان مثال، اگر بازی را از منوی شروع شروع کنید و عمل شروع شود، می توانید ان را به عنوان یک سوئیچ صحنه در نظر بگیرید. همچنین، عمل باز کردن صفحه نمایش منو در طول یک عمل نیز یک سوئیچ صحنه بسته به بیان منو خواهد بود.

این نوع تغییر صحنه باید در Unity اجرا شود و راه های زیادی برای انجام ان وجود دارد. به عنوان مثال، باید تنها یک "صحنه (در وحدت)" در بازی وجود داشته باشد. هنگامی که صحنه بازی تغییر می کند، تمام اشیاء از صحنه قبلی دور انداخته می شوند و اشیاء لازم برای صحنه بعدی تولید می شوند. با این حال، در حالی که این رویکرد دارای مزیت ارائه تنها یک صحنه است، این مزیت را دارد که مجبور به مدیریت برنامه ریزی انتقال اشیاء است.

در این نکته، من می خواهم برای پیاده سازی یک روش اماده سازی به عنوان بسیاری از "صحنه" فایل به عنوان صحنه وجود دارد و قرار دادن اشیاء لازم در صحنه در پیشبرد برای تغییر صحنه. تعویض بین صحنه های واقعی بسیار اسان است زیرا همه چیزهایی که باید انجام دهید این است که بین فایل های صحنه تغییر دهید.

اماده سازی صحنه

ابتدا یک پروژه معمولی ایجاد کنید. فرض بر این است که شما قبلا بسته سیستم ورودی را اماده کرده اید و دوربین را پیکربندی کرده اید.

این بار، ما دو فایل صحنه را اماده می کنیم و عملیات کلیک کردن بر روی دکمه در صحنه اول و انتقال به صحنه دوم را اجرا می کنیم.

SampleScene صحنه موجود باید نامگذاری شود، بنابراین این SampleScene1 را به .

بعد، بر روی یک منطقه خالی از پروژه کلیک راست کنید و "صحنه" را از "ایجاد" انتخاب کنید. شما همچنین می توانید ان را از دکمه + زیر برگه پروژه اضافه کنید.

یک فایل صحنه جدید اضافه خواهد شد، بنابراین ان را نام SampleScene2 ببرید.

SampleScene1 دوبار کلیک کنید برای باز کردن صحنه و قرار دادن شی به عنوان زیر نشان داده شده است. هنگامی که SampleScene2 روی دکمه کلیک می کنید، می توانید به ان انتقال دهید، بنابراین طرح می تواند مناسب باشد.

SampleScene2 دوبار کلیک کنید برای باز کردن صحنه و قرار دادن شی به عنوان زیر نشان داده شده است. مهم نیست چه چیزی را قرار می دهید زیرا فقط می خواهید بدانید چه چیزی تغییر کرده است.

پس از ایجاد صحنه، "File > Build Settings" را از منو باز کنید.

رها کردن در صحنه های موجود در SampleScene2 ساخت.

بستن تنظیمات ساخت یک بار انها اضافه شده به عنوان زیر نشان داده شده است.

فرایند سوئیچینگ صحنه

تغییر صحنه با اسکریپت انجام می شود، بنابراین لطفا یک فیلمنامه ایجاد کنید. این نام خودسرانه است، اما در این مورد 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 صحنه وجود دارد، اما من ان را در این مقاله توضیح نمی دهم.

بعد از اینکه فیلمنامه را ذخیره کردید، SampleScene1 ان را باز کنید و به ان وصل کنید. EventSystem این می تواند هر چیزی باشد که به ان متصل می شوید.

رویداد OnClick کلیک دکمه را به یک شیء متصل تنظیم کنید تا بتوان روش را فراخوانی کردSceneChange.

سعی کنید بازی را اجرا کنید و ببینید که ایا صحنه پس از کلیک کردن بر روی دکمه تغییر می کند.