تبلیغات

آشنایی با محیط یونیتی به طور خلاصه (براساس ورژن 5.5)

آشنایی با محیط یونیتی به طور خلاصه

آشنایی با محیط یونیتی به طور خلاصه
این آموزش با استفاده از نسخه 5.5.1f1  تهیه شده است


در این بخش، به طور خلاصه با محیط کاری یونیتی آشنا خواهیم شد.

اجرای یونیتی و ایجاد اولین پروژه

پس از دابل کلیک کردن روی آیکون یونیتی، منتظر میمانیم تا پنجره‌ی زیر نمایش داده شود:

  • گزینه‌ی On Disk: نمایش پروژه‌های اخیری که روی کامپیوتر شخصی اجرا کرده‌ایم.
  • گزینه‌ی In The Cloud: نمایش پروژه‌های اخیری که روی فضای ابری ایجاد کرده‌ایم. (با این گزینه کاری نداریم)
  • گزینه‌ی NEW: ساخت یک پروژه‌ی جدید
  • گزینه‌ی OPEN: باز کردن پروژه‌های قبلی.
    بعد از کلیک روی OPEN باید وارد پوشه‌ی پروژه‌ای که قصد باز کردنش را داریم شده و در نهایت آن مسیر را تایید کنیم.

روی NEW کلیک می‎کنیم تا یک پروژه‌ی جدید بسازیم:

گزینه‌ها ساده هستند:

  • کادر Project name:  نام پروژه را در این جا می‌نویسیم. (این نام پوشه‌ای خواهد بود که پروژه در آن ذخیره می‌شود)
  • کادر Location: مسیری که می‌خواهیم پروژه را در آنجا ذخیره کنیم.
    • در این مسیر یک پوشه با نام پروژه (نامی که در کادر قبلی یعنی “Project name” وارد کردیم ایجاد می‌شود)
    • با کلیک روی سه خط انتهایی این کادر می‌توانیم مسیر را انتخاب کنیم.
  • گزینه های 3D و 2D: برای مشخص کردن سه بعدی بودن و دو بعدی بودن پروژه به کار می‌رود که پیش‌فرض آن روی سه بعدی قرار دارد!
    در واقع با انتخاب سه بعدی یا دو بعدی، یونیتی برای شما تنظیمات دوربین و محیط را منتناسب با انتخابتان فراهم می‌کند.
    (در نسخه‌های جدید یونیتی، به جز دو بعدی و سه بعدی، حالت‌های دیگری نیز اضافه شده‌اند)
  • گزینه‌ی Asset packages: فعلا با این گزینه کاری نداریم.

بنابراین یک نام و یک مسیر تعریف می‌کنیم و پروژه‌ی خود را از نوع 3D قرار می‌دهیم؛ و در نهایت روی دکمه‌ی Create project کلیک کرده و منتظر می‌مانیم تا وارد محیطی شبیه تصویر زیر شویم:

در واقع ما وارد ادیتور یونیتی شده‌ایم و همه چیز در حالت پیشفرض قرار دارد.
در این ادیتور، پنل‌ها یا بخش‌های مختلفی وجود دارند که می‌توانیم محل نمایش هرکدام را با Drag and Drop کردنشان به این طرف و آن طرف تغییر دهیم؛ همچنین می‌توانیم اندازه‌ی هرکدام از پنل‌ها را تغییر داده و یا اینکه از چینش‌های دیگر یونیتی استفاده کنیم. در ادامه، نحوه‌ی انجام این کار را توضیح خواهیم داد.

پنل Project

در قسمت پایین، پنلی به نام Project وجود دارد که ما Assets ها یا منابع مورد نیاز برای ساخت بازی را در آنجا قرار می‌دهیم. منابعی از قبیل تصاویر، اسکریپت‌ها، انیمیشن‌ها، اسپرایت‌ها، صداها و …که در نهایت از آنها در پروژه استفاده خواهیم کرد.

در قسمت چپ پنل Project، گزینه‌هایی وجود دارند که کنارشان آیکون ذره‌بینی قرار گرفته است؛ می‌توانیم با این گزینه‌ها مشخص کنیم که در قسمت Assets چه نوع فایل‌هایی نمایش داده شوند. برای مثال، متریال‌ها، فایل‌های کد و یا …! همچنین Fovorites هم منابعی می‌باشد که زیاد مورد استفاده قرار گرفته‌اند.

ما می‌توانیم در Assets، پوشه‌هایی ایجاد کرده و منابع مورد استفاده را در این پوشه‌ها به صورت دقیق مرتب کنیم. سمت چپ هم پوشه‌ها به صورت درختی و زیر Assets نمایش داده می‌شوند و با انتخاب هرکدام از پوشه‌ها، می‌توانیم محتوای داخلش را در سمت راست ببینیم. برای ایجاد پوشه هم کافیست در فضای خالی Assets راست کلیک کرده و سپس از منوی Create، گزینه‌ی New Folder را انتخاب کنیم. همچنین سایر موارد دیگری که می‌توانیم ایجاد کنیم هم در قسمت Create قرار دارند.

توجه داشته باشید که برخی از اسم‌ها برای نام‌گذاری پوشه‌ها از پیش شناخته شده‌اند؛ برای مثال اگر پوشه ای با نام Plugin در ابتدای Assets بسازیم، آن پوشه توسط یونیتی شناخته شده است و محلی برای قرار دادن پلاگین ها می‌باشد!
دقت کنید که هرچیزی در این جا قرار داشته و در بازی استفاده نشده باشد، در زمان خروجی گرفتن از بازی، همراه بازی نخواهد بود. (به جز پوشه‌هایی که یونیتی آنها را می‌شناسد و یک مورد را در بالا مثال زدیم)

پنل Scene

Scene که به معنای صحنه، منظره و یا چشم‌انداز بوده و ما در این جا از آن به عنوان صحنه‌ی بازی یاد می‌کنیم، در واقع جایی است که در آن، محیط یا فضای بازی را ایجاد کرده و روی آن کار می‌کنیم. به عبارتی Scene، محیط اصلی کار بوده که در آن، اشیای بازی را وارد می‌کنیم، سپس مکانشان را مشخص می‌کنیم و دوربین و بقیه‌ی چیزهارا قرار داده و روی آن‌ها اعمال مختلفی را انجام می‌دهیم؛ در نهایت این صحنه قرار است که توسط دوربینی که داخلش وجود دارد به کاربر نمایش داده شود!

ما در یک بازی می‌توانیم هزاران صحنه داشته باشیم که هرکدام محیط‌های مربوط به خود را دارند و با این حساب در برخی از بازی‌ها از صحنه‌های مختلف برای ساخت مراحل بازی استفاده می‌شود! البته در بازی‌هایی مثل GTA، ما تنها یک صحنه‌ی کلی شهر را داریم که مراحل بازی روی آن اتفاق می‌افتد و ممکن است برای داخل برخی خانه‌ها یا مکان‌های دیگر (مثل مرحله‌ای در زیر یک فاضلاب که اصلا شهر دیده نمی‌شود و از خود شهر هم به صورت مستقیم به آن مکان راهی نیست یا اگر هست با یک لودینگ اتفاق می‌افتد)، از یک صحنه‌ی دیگری استفاده کنیم تا سنگین نشود.

روند Navigate در صحنه

ما به عنوان کسی که در حال کار روی صحنه بده و روی آن مانور می‌دهیم، بایستی بتوانیم در آن به اینطرف و آنطرف حرکت کرده و بجرخیم، برای همین باید با روند نویگیشن یا ناوبری آشنا باشیم:

  • کلیک راست ماوس:
    اگر کلیک راست را گرفته و در صحنه ماوس را به این طرف و آن طرف ببریم، مثل این است که ما در یک نقطه ایستاده باشیم و گردنمان را به این طرف و آن طرف بچرخانیم.
    نکته: این دید یا نمایی که در ادیتور یونیتی از صحنه می‌بینید، دید دوربین نبوده و کاربر قرار نیست آنطور صحنه را ببیند! بلکه فقط برای انجام کارهای خودمان می‌باشد. (به عبارتی دید خالق است که به جهان بازی اشراف کاملی دارد تا بتواند آن را بسازد)
  • دکمه‌ی وسط ماوس:
    با فشار دادن این دکمه می‌توانیم به سمت چپ و راست و بالا و پایین برویم. (که البته ابزاری هم در جعبه ابزار برای این کار وجود دارد و در ادامه توضیح خواهیم داد)
    با غلتاندن این دکمه به سمت جلو و عقب، می‌توانیم داخل صحنه به جلو و عقب برویم. (یک نوع زوم کردن)
  • نگه داشتن کلید alt و راست کلیک و بردن ماوس به جلو و عقب یا راست و چپ:
    این نیز همان جلو و عقب رفتن می‌باشد که می‌بینید یک ذره‌بین هم در این جا ظاهر می‌شود (پارازیت: البته بعضی جاها این ذره بین آیکون سرچه که تو اینجا خواسته مفهوم زوم رو برسونه :D)
    نکته مهم این است که از این روش برای زوم و آنزوم یا همون جلو و عقب رفتن سریع و راحت استفاده می شود؛ و همچنین اگر شما ماوس را به حدی به سمت جلو حرکت دهید، خواهید دید که نشانگر ماوس از بالای مانیتور خارح شده و از پایین مانیتور دوباره به سمت بالا می‌آید و اینطور می‌توانیم در صحنه سریع و راحت جلو و عقب برویم.
  • نگه داشتن کلید alt و چپ کلیک و حرکت دادن ماوس:
    یادتان هست که با کلیک راست گردنمان را تکان می‌دادیم؟! ولی این بار به جای تکان دادن گردنمان، در جایی که هستیم به محض فشردن این دکمه‌ها، فرض می‌شود که روی یک کره‌ای قرار داریم و می‌توانیم (به) دور جایی که می‌بینیم بچرخیم. برای درک این گفته بهتر است یک آبجکت روی صحنه انداخته و سپس از این کلیدها استفاده کنید.
  • کلید 2 روی صفحه کلید:
    برای تغیر دید به حالت دو بعدی و سه بعدی در صحنه استفاده می‌شود که البته این دید، دید دوربین نیست و دید خودمان (خالق) در صحنه می‌باشد. (همچنین برای ساخت بازی دو بعدی بهتر است از اول پروژه را دو بعدی انتخاب کنیم؛ گرچه می‌توانیم به سادگی بین دو حالت سوئیچ کنیم.)
  • انتخاب یک گیم آبجکت و فشردن کلید F:
    دوربین به آن گیم آبجکت نزدیک می‌شود. (البته من پیشنهاد می‌کنم از هایراکی که در ادامه خواهیم گفت، آبجکت را انتخاب کرده و روی آن دابل کلیک کنید)
  • کلیدهای جهت کیبورد:
    حرکت در محیط (قبلش حتما روی صحنه کلیک کنید تا انتخاب شه)

پنل Game

در این قسمت می‌توانیم خروجی بازی خود را در یونیتی مشاهده کنیم. یعنی بازی را اجرا کرده و خروجی آن را در این‌جا و از دید دوربین فعال در صحنه مشاهده کنیم.

پنل Hierarchy

در پنل Hierarchy  (سلسله مراتب)، لیست تمامی چیزهایی (GameObject = شیء بازی) که در حال حاظر در صحنه‌ی فعلی قرار دارند، نمایش داده می‌شود.

همچنین، قابلیت Parenting برای این Hierarchy  وجود دارد؛ به این معنی که می‌توانیم در یک صحنه‌ای یک شی را فرزند یک شی دیگری قرار دهیم. مثلا یک شی داریم که بدن کاراکتر می‌باشد و یک شی دیگری داریم که دست کاراکتر می‌باشد؛ پس دست را فرزند بدن می‌کنیم تا وقتی که بدن حرکت کرد، دست هم به همراه آن جابه‌جا شود؛ ولی اگر دست حرکت کند، بدن به همراه آن این کار را انجام نخواهد داد! چرا که بدن، فرزند دست نیست. و همچنین برای مثال، سر را فرزند بدن می‌کنیم و بعد چشم و گوش را هم فرزند سر می‌کنیم و به همین ترتیب… (البته این تنها یک مثال کاملا اختیاری بود و شما جور دیگه می‌توانید رابطه‌ی فرزندی را برای منطق بازی خود تعریف کنید)

در پنلHierarchy، به صورت پیش‌فرض، آبجکت Main Camera وجود دارد که نقش دوربین اصلی یا اولیه‌ی بازی را ایفا می‌کند. و در نسخه‌های جدیدتر یونیتی، یک Directional Light هم وجود دارد که نقش نور خورشید را ایفا می‌کند.

پنل Toolbar

منویی در قسمت بالای صحنه وجود دارد:

  • دکمه‌ی Local یا Global: اگر local انتخاب شده باشد، مختصات یک آبجکت در صحنه نسبت به پدرش نشان داده می‌شود و اگر global باشد، نسبت به مبداء مختصات کل دنیای بازی یا صحنه نشان داده می‌شود.
  • آیکون اول (دست‌کش): برای  جابه‌جایی در صحنه (Scene) استفاده می‌شود؛ که البته این جابه‌جایی برای اشیا نبوده و تنها برای دید خودمان می‌باشد.
    (به عبارتی؛ pan کردن و Navigate یا ناوبری کردن خودمان به این طرف و آن طرف بوده و همان کار دکمه‌ی وسط ماوس را انجام می‌دهد. اگر دکمه وسط ماوس را انتخاب کنید، خواهید دید که این آیکون روشخ می‌شود.)
  • آیکون دوم: ابتدا یک آبجکت را انتخاب می‌کنیم و سپس آن را جابه‌جا می‌کنیم. یعنی آبجکت را به این طرف و آن طرف در جهات مختلف x و y و z جابه‌جا می‌کنیم.
  • آیکون سوم: برای چرخاندن (Rotate) آبجکت‌های درون صحنه
  • آیکون چهارم: برای بزرگ‌نمایی (Scale) آبجکت‌های درون صحنه
  • آیکون پنجم: این آیکون در یونیتی 5 به بعد اضافه شده است و در بازی‌های دو بعدی استفاده می‌شود که شبیه Scale و تغییر مکان می‌باشد.
  • سه دکمه‌ی وسطی که شبیه دکمه‌های ویدیو پلیر هستند: برای اجرای بازی در داخل خود محیط یونیتی و تست کردن آن مورد استفاده قرار می گیردند.
    (البته اگر برای گوشی توسعه می‌دهیم بهتر است که تنظیماتی را انجام دهیم تا از طریق کابل USB یا وای فای در گوشی اجرا شود.)
  • گزینه‌ی Collab: در یونیتی 5.5 اضافه شده و بعدا فعلا مهم نیست.
  • گزینه‌ی Account: برای لاگین شدن در سایت یونیتی و استفاده از Assets Store یونیتی که البته در حال حاظر تحریم هستیم و باید قندشکن داشته باشیم. 😀
  • گزینه‌ی Default: برای انتخاب نوع چینش پنل‌های صحنه است که البته خودمان نیز می‌توانیم یکی‌بسازیم و ذخیره کنیم. (کافیست پنل را چیده و از این قسمت Default، روی Save کلیک و نامی را برای چینش خودمان وارد کنیم)

پنل Inspector

این بخش، تمامی کامپوننت‌هایی (کامپوننت: اجزاء کدنویسی شده‌ی مستقلی که به یک آبجکت امکاناتی را اضافه می‌کنند) را که به یک گیم‌آبجکت وصل هستند به همراه چند ویژیگی عمومی گیم‌آبجکت‌ها نشان می‌دهد.

برای مثال، شما آبجکتی را از داخل Hierarchy یا صحنه  انتخاب می‌کنید و سپس تمامی کامپوننت‌های چسبیده به آن را در Inspector مشاهده می‌کنید. همچنین در مورد کامپوننت در ادامه بیشتر بحث می‌کنیم و با یک مثال خیلی ساده با Inspector بهتر آشنا می‌شویم.

Game Object (گیم آبجکت)

دنیای واقعی را فرض کنید؛ ما به همه چیز اطرافمان می‌گوییم شیء یا یک چیز! و در یونیتی هم ساختاری به نام GameObject (شیء بازی) تعریف شده است که این ساختار از خودش هیچ‌چیزی برای معنی دار شدن یا دیده شدن در دنیای بازی ندارد و تنها یک هویت و ماهیتی است که در یک مکانی از بازی قرار می‌گیرد و حتی به صورت پیشفرض، شکلی برای دیده شدن هم ندارد. بنابراین، ما با اضافه کردن کامپوننت‌هایمان به آن گیم آبجکت، ویزگی‌هایی از جمله توانایی دیده شدن با یک شکل خاصی را به آن می‌دهیم.

همانطور که گفته شد، در یونیتی گیم‌آبجکت به صورت پیشفرض تنها توانایی داشتن یک مکان در بازی را دارد! ولی خب این توانایی داشتن مکان نیز توسط کامپوننت Transform به آن داده شده است و چون این کامپوننت الزامی است، برای هر گیم‌آبجکتی به صورت پیشفرض تعریف شده می‌باشد. و همچنین کامپوننت Transform علاوه بر داشتن مکان، ویژگی‌های چرخش، تغییر اندازه و جابه‌جایی را نیز به گیم‌آبجکت می‌دهد.

در یونیتی به گیم‌آبجکتی که به جز Transform، کامپوننت دیگیری نداشته باشد، EmptyGameObject کفته می‌شود.
یک آبجکت می‌تواند چندین کامپوننت داشته باشد.

Component (کامپوننت)

Component به معنی جزء یا مولفه می‌باشد و هر کامپوننتی به گیم آبجکت ما یک سری قابلیت ‌هایی را اضافه می‌کند. همچنین خود یونیتی کامپوننت‌های زیادی دارد و ماهم می‌توانیم با استفاده از اسکریپت‌نویسی (برنامه‌نویسی)، کامپوننتی را نوشته و آن را به یک گیم آبجکتی که می‌خواهیم متصل کنیم. مثلا کامپوننت راه رفتن یا باهوش بودن و … و از کامپوننت‌های خود یونیتی مثل کامپوننت فیزیک و مش فیلتر …

توجه داشته باشید که برخی از کامپوننت‌ها مثل RigidBody که شامل وزن و … می‌شوند را فقط یک بار می‌توانیم به یک گیم آبجکتی اختصاص دهیم و برخی دیگر مثل کلایدر (تشخیص ‌دهنده‌ی محل برخورد) را می‌توانیم هرچند تعداد که خواستیم به یک گیم آبجکتی اختصاص دهیم.

مثالی برای درک Game Object و Component

فعلا به صورت کلیشه ای به منوی GameObject می‎‌رویم و بعد از انتخاب گزینه‌ی 3D Object، آیتم Cube را انتخاب می‌کنیم:

خواهیم دید که در Hierarchy، یک آیتم جدیدی به نام Cube ظاهر می‌شود و همچنین این Cube در صحنه دیده خواهد شد (دوبار روی یک آبجکت Cube در هایراکی کلیک کنید تا در صحنه نمایش داده شود).
سپس اگر Cube را انتخاب کنیم، می‌بینیم که در Inspector، کامپوننت‌های آن دیده می‌شوند:

  • Transform: قبلا اشاره شد
  • Cube (Mesh Filter): یک گزینه به اسم Mesh دارد و درونش Cube نوشته شده و با کلیک روی دایره‌ی سمت راستش می‌‌توانیم تغییرش دهیم. (برای مثال آن را به کره تغییر دهیم و البته این اشکال ابتدایی در همان منوی GameObject نیز وجود داشتند.)
  • Mesh Renderer: اگر از چرخ‌دنده‌ی مربوط به این کامپوننت، گزینه‌ی Remove Component (حذف کامپوننت) را انتخاب کنیم، خواهیم دید که فقط خطوط اطراف مربع دیده می‌شوند! در واقع حجم مربع مانده است؛ ولی چیزی دیده نمی شود و این Mesh Renderer است که آن را برایمان فراهم کرده بود و کامپوننت قبلی (Mesh Filter)، تنها شکل کلی آن را برایمان مشخص کرده بود.

  • دیدیم که یونیتی یک سری کامپوننت‌ها را در کنار هم قرار داده و به عنوان یک GameObject اولیه معرفی کرده است.
  • ما از یونیتی برای طراحی کاراکتر و مدل‌سازی استفاده نمی‌کنیم؛ بلکه از نرم‌افزارهای دیگری مدل هارا وارد می‌کنیم. (مثل 3dsMax، Photoshop، مایا و …)
  • بهترین پسوند برای مدل‌های 3بعدی‌ای که در یونیتی می‌خواهیم استفاده کنیم، FBX می‌باشد.

امید است که با موارد مهم محیط یونیتی در این پست آشنا شده باشید.

تبلیغات
4 نظر
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس و دانشجوی ارشد رشته شبیه‌ساز هوشمند - در حال نوشتن یه رمان (اگه خدا بخواد و تموم شه ?)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده 4 دیدگاه