آموزش یونیتی

آنچه در این صفحه می خوانید:

یونیتی (Unity) چیست؟

یونیتی یک موتور ساخت بازی چندسکویی است که برای ساخت بازی های دو بعدی و سه بعدی برای کامپیوترهای شخصی، کنسول‌های بازی، دستگاه‌های همراه و وب سایت‌ها استفاده می‌شود. یونیتی از جمله موتورهای بازی ساز است که می‌تواند از زبان‌های برنامه‌نویسی معروف پشتیانی کند. این موتور توسط صنایع خارج از بازی های ویدئویی مانند فیلم، خودرو، معماری، مهندسی و ساخت به کار گرفته شده است.

از سال 2018، Unity تقریبا برای ایجاد نیمی از بازی های موبایل در مارکت ها و 60 درصد از واقعیت افزوده و محتویات واقعیت مجازی مورد استفاده قرار گرفت. همچنین یونیتی در حدود 90 درصد از سیستم عامل های واقعیت افزوده مانند Microsoft HoloLens و 90 درصد از محتوای سامسونگ Gear VR مورد استفاده قرار گرفته است. Unity Machine Learning Agents یک نرم افزار اوپن سورس است که با آن پلتفرم Unity به برنامه های یادگیری ماشین، از جمله تنسور فلو گوگل متصل می شود.

تاریخچه یونیتی (Unity)

موتور بازی Unity در سال 2005 راه اندازی شد و با هدف دموکراتیزه کردن توسعه بازی ها برای توسعه دهندگان بیشتری در دسترس قرار داده شد. هنگامی که اپل فروشگاه App خود را در سال 2008 راه اندازی کرد، یونیتی به سرعت پشتیبانی از آیفون را اضافه کرد. برای چندین سال، موتور یونیتی که بر روی iPhone آشکار نشده بود و با توسعه دهندگان بازی iOS شناخته شد.

فرآیند ساخت بازی در یونیتی (Unity)

طراحی یک بازی در Unity یک فرآیند نسبتاً ساده است:

  • دارایی های خود را بیاورید (کارهای هنری، صدا و غیره) یا می توانید از asset store استفاده کنید. برنامه خود را بنویسید. هنرمند بازی را ایجاد کنید. توجه داشته باشید که یونیتی پشتیبانی نیتیو برای مایا، Cheetah3d،Blender و 3dsMax را دارد، در بعضی موارد برای نصب این نرم افزارها نیاز به فرمت های نیتیو سه بعدی دارد و همچنین با فرمت های فایل رایج obj. و fbx. کار می کند.
  • برای کنترل اشیا، صحنه ها و اجرای منطق بازی، کد هایی را در سی شارپ، جاوااسکریپت / یونیتی اسکریپت یا Boo بنویسید.
  • تست در یوینتی. اکسپورت به یک پلتفرم.
  • تست بر روی سیستم عامل. استقرار

هنگامی که بیلد برای ویندوز را انجام می دهید، یونیتی مسئولیت برقراری ارتباط با شما برای ایجاد کتابخانه های بازی توسط کد را دارد.

مواردی که در یونیتی پوشش داده نمی شود.

یوینتی به طور پیش فرض سیستمی نیست که در آن بتوانید دارایی های 2 بعدی و مدل های 3 بعدی شما (به جز زمین ها) را طراحی کند. شما می توانید یک دسته زامبی ها را به صحنه بیاورید و آنها را کنترل کنید، اما در ابزارهای پیش فرض Unity زامبی را نمی توان ایجاد کرد. به این معنا، یوینتی ابزاری برای ایجاد دارایی مانند مایا (Autodesk Maya) یا تری دی مکس (3ds Max)، بلندر (Blender) یا حتی فتوشاپ نیست. حداقل یک افزونه مدل سازی شخص ثالث (ProBuilder) وجود دارد و می توانید اجزای سه بعدی را در داخل یونیتی مدل کنید. افزونه های ساخت 2D مانند ویرایشگر Terrain 2D برای ایجاد محیط های کاشی مانند دو بعدی وجود دارد، همچنین می توانید با استفاده از Terrain Tools زمین هایی را از درون یونیتی طراحی کنید تا مناظر شگفت انگیزی با درختان، چمن ها، کوه ها و موارد دیگر بوجود بیایند.

پلتفرم های خروجی یونیتی چیست؟

ویرایشگر Unity در Windows و macOS پشتیبانی می شود و نسخه ای از ویرایشگر در مرحله آزمایشی برای سیستم عامل لینوکس موجود است. یونیتی یک موتور بازی ساز چند پلتفرمه است، یعنی توانایی ساخت بازی برای بسیاری از پلتفرم‌های موجود را دارد.

در حال حاضر از ساخت بازی برای بیش از 25 پلتفرم مختلف پشتیبانی می کند: آی او اس (iOS)، اندروید (Android)، Tizen، ویندوز (Windows)، Universal Windows Platform،Mac،لینوکس،WebGL،PlayStation 4،PlayStation Vita،Xbox One،3DS،Oculus Rift،Google Cardboard،Steam VR،PlayStation VR،Gear VR،Windows Mixed Reality،Daydream،Android TV،Samsung Smart TV،tvOS،Nintendo Switch،Fire OS،Facebook Gameroom،Apple's ARKit،Google's ARCore،Vuforia،Magic Leap.

تقریباً می توان گفت که یونیتی برای تمامی پلتفرم های موجود خروجی بازی تولید می‌کند و ممکن است کمتر نیاز به ویرایش اسکریپت‌های پروژه پیدا کنید، که از لحاظ تجاری بسیار مهم است به خصوص اجرای بازی بر روی وب و به صورت چند کاربر که باعث جذب کاربران بسیار می‌شود، تعدادی از بازی‌های موجود در شبکه اجتماعی فیسبوک توسط موتور بازی ساز یونیتی ایجاد شده است.

ویژگی های یونیتی (Unity)

آموزش کامل یونیتی

ویژگی های اصلی موتور بازی سازی یونیتی:

  • ویرایشگر قدرتمند، انعطاف پذیر و با قابلیت اجرای دستورات کاربر به صورت دیداری
  • ابزارهای مورد نیاز جهت کار گروهی، قابلیت اضافه کردن مستقیم فایل نرم افزارهای اتودسک مثل Max ,Maya و آپدیت ذخایر در حین اجرای نرم افزار و ساخت بازی
  • استفاده از آخرین تکنولوژی های گرافیکی، سرعت رندر بالا، استفاده از تمامی قابلیت های دایرکت ایکس (DirectX) و اپن جی ال (OpenGL)
  • تهیه خروجی اجرایی متناسب با پلتفرم در مراحل بسیار ساده
  • تهیه خروجی تحت وب، تحت کنسول، تحت آیفون و برای مکینتاش
  • استفاده از جدیدترین تکنیک های نور پردازی و پشتیبانی از سایه های دینامیک
  • استفاده از جدیدترین شیدرهای گرافیکی، کتابخانه کاملی از شیدرهای قابل استفاده، توانایی کاربر در نوشتن شیدرهای جدید
  • موتور Terrain داخلی، جهت ساخت عوارض زمین، محیط های وسیع Outdoor و کوه و تپه و امکانات تکسچر گذاری و رنگ آمیزی و چینش اتوماتیک اشیا در محیط
  • پشتیبانی از پروتکل های شبکه
  • پشتیبانی کامل از موتور Physx
  • پشتیبانی از زبان های #C و جاوااسکریپت

زبان برنامه نویسی یونیتی (Unity) چیست؟

زبان‌های برنامه‌نویسی سی‌شارپ، جاوااسکریپت در یونیتی قابل استفاده هستند. زبان سی‌شارپ قابلیت شی گرایی دارد و به واسطه این قابلیت، قابلیت‌هایی همچون ارث‌بری را نیز دارا می‌باشد، این قابلیت‌ها در پروژه‌های بزرگ برنامه‌نویسی بسیار سودمند هستند.

در Unity می توانید از اسکریپت ها استفاده کنید تا تقریباً هر قسمت از یک بازی یا سایر محتوای تعاملی در زمان واقعی را توسعه دهید. یونیتی از برنامه نویسی در #C پشتیبانی می کند و دو روش اصلی برای معماری کردن اسکریپت های #C شما در Unity وجود دارد: برنامه نویسی شی گرا، که روش سنتی و پرکاربردترین روش است، و طراحی داده گرا، که اکنون، برای استفاده خاص در یونیتی امکان پذیر است.

در مقایسه با سی پلاس پلاس، یادگیری #C آسانتر است. علاوه بر این، این یک "زبان مدیریت شده" است، به این معنی که به طور خودکار مدیریت حافظه را برای شما انجام می دهد: تخصیص-تخریب حافظه، پوشش نشت حافظه و غیره. معمولاً اگر می خواهید ابتدا یک بازی درست کنید و سپس بعداً جنبه های پیشرفته تر برنامه نویسی را اجرا کنید، برای شروع ++C ترجیح داده می شود.

یکی از پیاده سازی های زبان خارجی برای یونیتی، زبان برنامه نویسی Lua است. این پروژه برای جایگزینی #C، بیشتر به عنوان یک پل عمل می کند. می توانید از آن برای توصیف اشیاء و سطح طراحی جداگانه از کد بازی اصلی خود استفاده کنید. اگر قبلاً در #C کدگذاری کرده اید و به دنبال روش جالبی برای رابط با کد خود هستید، MoonSharp قابل توجه است. از آنجا که به طور رایگان در فروشگاه Unity در دسترس است، می توانید آن را مستقیماً در پروژه های خود وارد کنید.

کاربرد یونیتی (Unity)

ما معمولاً از Unity به عنوان یک موتور بازی، مجموعه ای از ابزارهای ساخت بازی های ویدیویی فکر می کنیم. همه ما می دانیم که انجام آن کار خوب است. اما، استفاده از آن نباید فقط مختص ساخت بازی ها باشد، موارد زیادی برای Unity استفاده می شود. Unity ابزاری قدرتمند برای مالتی مدیا است که قادر است تقریباً در هر پلتفرم مدرنی که در آن قرار دارد مستقر شود. در اینجا 5 تا از بهترین کاربرد ها در کنار ساخت بازی برای Unity آورده شده است.

تجارب تعاملی

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

Previsualization برای فیلم

این یکی کاملاً شبیه Animation است، اما کاملاً یکسان نیست. ساخت فیلم اکشن زنده به برنامه ریزی زیادی نیاز دارد: در بسیاری از موارد، هرچه برنامه ریزی بیشتر باشد، بهتر است. ترسیم استوری بورد های سنتی می تواند نقطه شروع خوبی باشد، اما گاهی اوقات می توان تقریب دقیق تر و واقع گرایانه تری از شکل ظاهری این صحنه ها داشت. با Unity، Asset Store و Cinema Suite، این امر بسیار ممکن می شود.

با استفاده از محصول Cinema Pro Cams، شما می توانید از همان لنزهای دنیای واقعی که می توانید در موتور بازی Unity پیدا و استفاده کنید، بنابراین با دقت بیشتری می توانید تصویر نهایی خود را ببینید. Cinema Mocap 2، و ابزار ما برای ضبط حرکات صورت که به زودی منتشر می شود برای حرکت شخصیت های شما با تلاش بسیار کم بسیار مناسب خواهد بود. در Unity’s Asset Store می توانید بسیاری از وسایل، شخصیت ها، محیط ها و ابزارهای ساختمانی را پیدا کنید. این یک روش عالی برای پر کردن صحنه مجازی شماست. سرانجام، می توانید با استفاده از Cinema Director همه وقت را تمام کنید و تقریبی از اینکه فیلم شما هنگام فیلمبرداری و ویرایش فیلم به چه صورت است، تخمین بزنید.

ویژوال سازی معماری

موتورهای بازی های ویدیویی مانند Unity از قبل قادر به کنترل هندسی پیچیده و ارائه نور و سطوح واقعی هستند. استفاده از یک موتور بازی مانند Unity برای کاوش در ساختمان مجازی برای اهداف مهندسی و معماری کاری بی فایده است. وارد کردن داده ها از Sketchup یا Revit درست در Unity بسیار آسان است و سپس آنها را با قابلیت های عالی گرافیکی Unity ادغام می کنید. معماران می توانند به جای اینکه فقط به ارائه مفهوم و طرح های کلی برای مشتری مراجعه کنند، از یک موتور بازی برای ایجاد تجربیات سه بعدی استفاده می کنند که می تواند در تلفن همراه مشتری، دسکتاپ یا مرورگر وب مستقر شود.

انیمیشن

موتورهای بازی در حال تبدیل شدن به گزینه ای جدی برای سازندگان فیلم های انیمیشن هستند. من می دانم که به چه فكر می كنید: چرا من به جای استفاده از راه حلی كه از ابتدا برای آن ساخته شده است، از موتور بازی برای ساخت فیلم انیمیشن استفاده می كنم؟ خوب، چند دلیل خوب وجود دارد. با سرعتی که می خواهیم، در نهایت به نقطه ای خواهیم رسید که گرافیک های پیش ساخته و گرافیک های تولید شده در زمان واقعی قابل تشخیص نیستند. ما هنوز کاملاً آنجا نیستیم، اما به آنجا می رسیم. ویدیوهای 360 درجه جالب هستند، اما ارائه VR برای همان واقعیت است که VR برای آن ساخته شده است و در چند سال آینده شاهد ساخت یک نوع فیلم کاملا جدید خواهیم بود. یکی از مواردی که شما در وسط اتفاقات قرار دارید و می توانید به اطراف خود نگاه کنید. ارائه در زمان واقعی کلید اصلی این امر است.

اما، Unity برای ساخت فیلم های انیمیشن سنتی نیز گزینه بدی نیست. فقط کافی است این فیلم کوتاه Real Time که اخیراً ساخته شده است را ببینید. هنگامی که شما توانایی های گرافیکی پر قدرت Unity و یک ویرایشگر جدول زمانی مانند مدیر سینمای خود را با هم ترکیب می کنید، ساخت انیمیشن در Unity یک گزینه واقعی است. شما با Cinema Director محدود به زمان واقعی نیستید، زیرا شامل گزینه اکسپورت قاب به فریم است و از پشتیبانی فوق نمونه نیز پشتیبانی می کند. ترکیب Unity + Cinema Director مزایای دیگری نیز دارد، زیرا می توانید از مواردی مانند هوش مصنوعی و شبیه سازی فیزیک برای اتوماتیک کردن مواردی مانند عکس های ازدحام جمعیت و تخریب استفاده کنید، این کار باعث صرفه جویی در وقت شما می شود و این چیزها را با دست متحرک می کنید.

شبیه سازی ها

بازی های ویدیویی دیگر فقط برای سرگرمی نیستند. آنها می توانند برای آموزش در صنایع پزشکی و نظامی کاربردهای جدی داشته باشند. به عنوان مثال، مرکز سیم کارت مجازی Clinispace را در نظر بگیرید. این یک "بازی جدی" است که با یونیتی ساخته شده است و به افراد حرفه ای پزشکی امکان می دهد مراقبت از بیمار و مدیریت بالینی را در یک محیط مجازی انجام دهند. مقابله با سناریوهای مختلف قبل از وقوع واقعیت باعث بهبود کارایی می شود و قابلیت توسعه یونی، قابلیت گرافیکی واقع گرایانه و سهولت استفاده آن را برای ساخت شبیه سازهای صنعتی ایده آل می کند.

ساخت بازی موبایل با یونیتی

یونیتی شما و بازیکنانتان را راضی نگه می دارد. یک راه حل جامع برای بازی های موبایل، ابزارهای مدولار Unity به شما امکان می دهد بازی های دو بعدی یا سه بعدی بسیار جذاب را به بازیکنان در سراسر جهان تولید و تحویل دهید. همچنین راهکارهای قدرتمند live-op و درآمدزایی آن، دید بالا، عملکرد خوب و رشد درآمد را تضمین می کند.

خط ارتباطی رندر سراسری

خط ارتباطی رندر سراسری، خط ارتباطی تک گذرگاه و ارائه دهنده رو به جلو است که از فراخوانی های کششی بسیار کمی استفاده می کند. این برای عملکرد بالا به ویژه در سخت افزارهای رده پایین مانند تلفن ها و تبلت و برنامه های XR بهینه شده است.

عملکرد تطبیقی

یونیتی عملکرد مناسب را برای ارائه زمان پخش بیشتر و نرخ فریم نرمتر در دستگاه های تلفن همراه ایجاد کرده است. با داشتن اطلاعات دقیق در مورد عملکرد دستگاه، می توانید برای اطمینان از لذت بخش ترین تجربه پخش کننده، تنظیمات فوری انجام دهید.

یونیتی (Unity) برای واقعیت مجازی

آموزش یونیتی برای واقعیت مجازی

واقعیت مجازی (VR)

واقعیت مجازی (VR) یک تجربه شبیه سازی شده است که می تواند مشابه یا کاملاً متفاوت از دنیای واقعی باشد. کاربردهای واقعیت مجازی می تواند شامل سرگرمی (یعنی بازی) و اهداف آموزشی (یعنی آموزش پزشکی یا نظامی) باشد. سایر انواع متمایز فن آوری سبک VR شامل واقعیت افزوده و واقعیت مختلط است.

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

یونیتی معماری جدیدی را توسعه داده که پشتیبانی از سیستم عامل های واقعیت افزوده (AR) و واقعیت مجازی (VR) را بهبود می بخشد. یونیتی پلتفرم ارجح برای ایجاد VR است و توسط توسعه دهنده های پیشرو در صنعت یونیتی، همراه با خطوط ارتباطی کیفیت بالا، ابزار تألیف و قابلیت تکرار سریع باعث می شود تا زندگی را در VR تجربه کنید.

یونیتی برای واقعیت افزوده ویژگی های زیر را فراهم می کند:

  • خطوط ارتباطی با وضوح بالا (HDRP) برای VR:به گرافیک خیره کننده، واقع گرایانه و جلوه های نورپردازی دست پیدا کنید.
  • ابزار تعامل XR:با دراپ کردن مؤلفه ها در صحنه، به صورت تعاملی آن ها را به برنامه های AR اضافه کنید. دیگر کدگذاری این تعامل های شی از ابتدا وجود ندارد.
  • سیستم ذرات:از طیف گسترده ای از ماژول های مختلف مانند اشکال، اندازه ها، برخورد، بافت ها و موارد دیگر انتخاب کنید تا جلوه های ساده ای به تجربه خود اضافه کنید.
  • صوتی فضایی:با داشتن پشتیبانی یکپارچه از کلیپ های صوتی ambisonic، صدای فراگیر فراگیر، چرخش میدان صدا بر اساس موقعیت شنونده و موارد دیگر، احساس حضور عمیق تری در محیط های مجازی ایجاد کنید.
  • نصب استریو:با استفاده از این روش رندر سرعت بخش، که اثر عملکرد VR را کاهش می دهد، محتویات کارآمدتری را ارائه دهید.

پایتون (Python) در یونیتی (Unity)

پایتون (Python) زبان برنامه نویسی سطح بالا، تفسیر شده، تعاملی و شی گرا است. به شدت قابل خواندن است و غالبا پایتون از کلمات کلیدی انگلیسی استفاده می کند در حالیکه زبان های دیگر از روش های نقطه گذاری استفاده می کنند. همچنین python دارای ساختارهای syntactical کمتری نسبت به سایر زبان ها است. پایتون مفسر است بدین معنی که در زمان اجرا توسط مترجم پردازش می شود و لازم نیست قبل از اجرای آن برنامه خود را کامپایل کنید. این شبیه به PERL و PHP است. همچنین پایتون تعاملی است بنابراین می توانید به طور مستقیم با مترجم ارتباط برقرار کنید تا برنامه های خود را سریعا بنویسید. پایتون از سبک یا تکنیک برنامه نویسی شی گرا پشتیبانی می کند که کد را در داخل آبجکت قرار می دهد. بر روی هر سیستم عامل و پلتفرم عمده و همچنین موارد جزئی آن اجرا می شود. بسیاری از کتابخانه های مهم و خدمات مبتنی بر API دارای پیوندهای پایتون یا پلاگین هایی هستند که اجازه می دهد رابط پایتون به طور رایگان با این سرویس ها یا به طور مستقیم از آن کتابخانه ها استفاده کند. پایتون ممکن نیست سریعترین زبان باشد، اما سرعت آن بسیار بالاست.

پایتون به دلیل دلایل زیادی مانند لیست طولانی کتابخانه ها که آماده حل تقریباً هر مشکلی است که ممکن است با آن روبرو شوید یک زبان برنامه نویسی عالی است. بزرگترین دلیل برای ترجیح كدنویسی در پایتون با یونیتی نسبت به سی شارپ سادگی و تایپ کمتر کد است. می توانید از IronPython با Unity استفاده کنید. فقط به یاد داشته باشید که IronPython فقط از پایتون 2 پشتیبانی می کند.

یونیتی(Unity) در ویژوال استودیو

آموزش یونیتی در ویژوال استودیو

ویژوال استودیو (Visual Studio) یک محیط توسعه یکپارچه (IDE) از مایکروسافت است. برای توسعه برنامه های رایانه ای و همچنین وب سایت، وب اپلیکیشن، وب سرویس و برنامه های تلفن همراه استفاده می شود. ویژوال استودیو شامل یک ویرایشگر کد است که از IntelliSense پشتیبانی می کند (مؤلفه تکمیل کد) و همچنین ریفکتورینگ کدها می باشد. دیباگینگ یکپارچه هم به عنوان یک دیباگینگ در سطح سورس کد و هم برای دیباگینگ در سطح ماشین کار می کند.

بازی های یونیتی را می توانید با ویژوال استودیو بسازید و آن را به یک محیط قدرتمند توسعه یونیتی تبدیل کنید. ویژوال استودیو ویژگی های قدرتمندی را برای برنامه نویسان #C به ارمغان می آورد. با استفاده از IntelliSense اسکریپت های یونیتی خود را با #C را به سرعت و با دقت بنویسید.

نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود