Unity Learning
⭕️ قابلیت Anchor در آبجکت های UI 🔹 تمامی ابزارهای UI (رابط کاربری) در یونیتی ، یک قابلیت به نام Anchor دارند. Anchor به معنای لنگر و در اینگونه ابزارها برای تنظیم محل قرار گیری آبجکت UI نسبت به صفحه نهایی که بازی در آن نمایش داده می شود، به کار می رود. …
This media is not supported in your browser
VIEW IN TELEGRAM
📸 حالات مختلف قرار گیری یک UI Image با تنظیم Anchor
👈 تراز شدن آبجکت از جهات مختلف با طول و عرض (محیط) صفحه نمایش به کمک ابزار Anchor در یونیتی
@UnityLearning
👈 تراز شدن آبجکت از جهات مختلف با طول و عرض (محیط) صفحه نمایش به کمک ابزار Anchor در یونیتی
@UnityLearning
Unity Learning
⭕️ قابلیت Anchor در آبجکت های UI 🔹 تمامی ابزارهای UI (رابط کاربری) در یونیتی ، یک قابلیت به نام Anchor دارند. Anchor به معنای لنگر و در اینگونه ابزارها برای تنظیم محل قرار گیری آبجکت UI نسبت به صفحه نهایی که بازی در آن نمایش داده می شود، به کار می رود. …
This media is not supported in your browser
VIEW IN TELEGRAM
📸 عدم تنظیم Anchor برای یک آبجکت UI
👈 این کار باعث می شود، در صفحات مختلف، آبجکت در محل صحیحی قرار نگیرد و حتی در بعضی مواقع از صفحه اصلی خارج شود که مورد پسندیده ای برای یک بازی نیست!
👈 این کار باعث می شود، در صفحات مختلف، آبجکت در محل صحیحی قرار نگیرد و حتی در بعضی مواقع از صفحه اصلی خارج شود که مورد پسندیده ای برای یک بازی نیست!
📸 متنی که به عنوان Title در نوار عنوان بازی نمایش داده میشود، همان Product Name میباشد که در Player Setting قابل تنظیم است.
تغییر در کد نویسی/🔻
PlayerSettings.productName="Name";
@UnityLearning
تغییر در کد نویسی/🔻
PlayerSettings.productName="Name";
@UnityLearning
Unity Learning
⭕️کار با #ماوس در یونیتی به وسیله کلاس Cursor 🔸کلاس Cursor در #یونیتی به منظور دسترسی به ماوس(شکل ظاهری) به کار میرود. 🔘گاهی اوقات لازم است در بازی ماوس نمایش داده شود یا اینکه مخفی شود. شاید هم لازم باشد شکل ظاهری فلش ماوس تغییر کند. همه این اعمال و بیشتر…
⭕️ کار با ماوس در یونیتی #ادامه
🔸همانطور که قبلا نیز بیان شده در یونیتی برای کار با ماوس کلاس ساده ای به نام Cursor وجود دارد که برنامه نویس می توان تغییرات خاص خود روی ماوس را با آن انجام دهد. در این کلاس به منظور قفل کردن ماوس از دستور و پارامتر lockState استفاده می شود. قفل کردن ماوس باعث می شود، ماوس در وسط صفحه بدون حرکت باشد و نسبت به حرکت ساخت افزار ماوس واکنشی نشان ندهد (دقت کنید این کار فقط باعث می شود شکل ظاهری ماوس از کار بیافتد و سایر بخش های بازی مثل حرکت دوربین FPS از کار نخواهد افتاد)
🔹به منظور قفل کردن ماوس از دستور زیر استفاده می شود./🔻
Cursor.lockState = CursorLockMode.Locked;
🔸با اجرا دستور بالا ماوس به صورت قفل شده در وسط صفحه قرار می گیرد و تا بازی تمام نشود و یا دستور آزاد سازی صادر نشود، به همین شکل خواهد بود. دستور آزاد سازی ماوس به شکل زیر است./🔻
Cursor.lockState = CursorLockMode.None;
📍با دستور بالا ماوس در کل صفحه آزاد می شود، دقت کنید اگر بازی به صورت Windowsed یا پنجره کوچک در صفحه نمایش قرار گرفته باشد، دستور بالا باعث آزادی کامل ماوس در صفحه نمایش می شود (حتی خارج از صفحه بازی در زمانی که صفحه بازی کوچک تر است). در صورتی بخواهیم این اتفاق نیافتد از دستور دیگری استفاده می شود./🔻
Cursor.lockState = CursorLockMode.Confined;
💡دستور بالا نیز ماوس را در حالت آزاد قرار می دهد اما با محدودیت حرکت تنها در طول و عرض صفحه بازی و ماوس از صفحه خارج نمی شود (تفاوت دو دستور تنها در صورتی قابل مشاهده است که بازی به صورت Full Screen در محیط ویندوز یا مک اجرا نشده باشد)
👈 #ادامه_دارد
@UnityLearning
🔸همانطور که قبلا نیز بیان شده در یونیتی برای کار با ماوس کلاس ساده ای به نام Cursor وجود دارد که برنامه نویس می توان تغییرات خاص خود روی ماوس را با آن انجام دهد. در این کلاس به منظور قفل کردن ماوس از دستور و پارامتر lockState استفاده می شود. قفل کردن ماوس باعث می شود، ماوس در وسط صفحه بدون حرکت باشد و نسبت به حرکت ساخت افزار ماوس واکنشی نشان ندهد (دقت کنید این کار فقط باعث می شود شکل ظاهری ماوس از کار بیافتد و سایر بخش های بازی مثل حرکت دوربین FPS از کار نخواهد افتاد)
🔹به منظور قفل کردن ماوس از دستور زیر استفاده می شود./🔻
Cursor.lockState = CursorLockMode.Locked;
🔸با اجرا دستور بالا ماوس به صورت قفل شده در وسط صفحه قرار می گیرد و تا بازی تمام نشود و یا دستور آزاد سازی صادر نشود، به همین شکل خواهد بود. دستور آزاد سازی ماوس به شکل زیر است./🔻
Cursor.lockState = CursorLockMode.None;
📍با دستور بالا ماوس در کل صفحه آزاد می شود، دقت کنید اگر بازی به صورت Windowsed یا پنجره کوچک در صفحه نمایش قرار گرفته باشد، دستور بالا باعث آزادی کامل ماوس در صفحه نمایش می شود (حتی خارج از صفحه بازی در زمانی که صفحه بازی کوچک تر است). در صورتی بخواهیم این اتفاق نیافتد از دستور دیگری استفاده می شود./🔻
Cursor.lockState = CursorLockMode.Confined;
💡دستور بالا نیز ماوس را در حالت آزاد قرار می دهد اما با محدودیت حرکت تنها در طول و عرض صفحه بازی و ماوس از صفحه خارج نمی شود (تفاوت دو دستور تنها در صورتی قابل مشاهده است که بازی به صورت Full Screen در محیط ویندوز یا مک اجرا نشده باشد)
👈 #ادامه_دارد
@UnityLearning
⭕️ بررسی حرکت چرخش محور ماوس (Scroll)
💡یادآوری کلی: در یونیتی همه ورودی ها با کلاس Input بررسی می شوند و در کلاس Input نیز برای بررسی جهات از GetAxis استفاده می کنیم.
🔸برای بررسی چرخش محور وسط ماوس در یونیتی یک پارامتر در صفحه Input Setting
به نام Mouse ScrollWheel به طور پیش فرض تعریف شده است. البته می توانید با مراجعه به این پنجره آن را مشاهده یا تغییر دهید. در صورتی که محور به سمت روبرو (نسبت به ماوس بالا) چرخیده شود این پارامتر مقدار +1 و اگر به سمت پایین چرخیده شود، مقدار -1 را بر می گرداند و در هیچ کدام از این موارد نیز مقدارش 0 هست. بنابراین به راحتی می توانید از آن در بازی استفاده کنید. مثلا اگر بخواهید تست کنید Scroll در حال چرخش به سمت بالاست از شرط زیر استفاده کنید./🔻
if (Input.GetAxis("Mouse ScrollWheel") > 0.0f )
🔹همچنین برای بررسی چرخش به سمت پایین نیز از شرط زیر استفاده کنید./🔻
if (Input.GetAxis("Mouse ScrollWheel") < 0.0f )
📍به راحتی می توان با ضرب آن در بردارها حالت ایجاد حرکت با Scroll ماوس را ایجاد کرد.
Vector3.forward*Input.GetAxis("Mouse ScrollWheel") *3;
👈دستور بالا همیشه برداری خواهد بود به سمت روبرو با طول 3 که تنها زمانی شکل می گیرد که محور وسط ماوس در حال چرخیدن توسط کاربر باشد.
@UnityLearning
💡یادآوری کلی: در یونیتی همه ورودی ها با کلاس Input بررسی می شوند و در کلاس Input نیز برای بررسی جهات از GetAxis استفاده می کنیم.
🔸برای بررسی چرخش محور وسط ماوس در یونیتی یک پارامتر در صفحه Input Setting
به نام Mouse ScrollWheel به طور پیش فرض تعریف شده است. البته می توانید با مراجعه به این پنجره آن را مشاهده یا تغییر دهید. در صورتی که محور به سمت روبرو (نسبت به ماوس بالا) چرخیده شود این پارامتر مقدار +1 و اگر به سمت پایین چرخیده شود، مقدار -1 را بر می گرداند و در هیچ کدام از این موارد نیز مقدارش 0 هست. بنابراین به راحتی می توانید از آن در بازی استفاده کنید. مثلا اگر بخواهید تست کنید Scroll در حال چرخش به سمت بالاست از شرط زیر استفاده کنید./🔻
if (Input.GetAxis("Mouse ScrollWheel") > 0.0f )
🔹همچنین برای بررسی چرخش به سمت پایین نیز از شرط زیر استفاده کنید./🔻
if (Input.GetAxis("Mouse ScrollWheel") < 0.0f )
📍به راحتی می توان با ضرب آن در بردارها حالت ایجاد حرکت با Scroll ماوس را ایجاد کرد.
Vector3.forward*Input.GetAxis("Mouse ScrollWheel") *3;
👈دستور بالا همیشه برداری خواهد بود به سمت روبرو با طول 3 که تنها زمانی شکل می گیرد که محور وسط ماوس در حال چرخیدن توسط کاربر باشد.
@UnityLearning
Speed.js
217 B
⭕️ قطعه برنامه ای به زبان #جاوا اسکریپت برای افزایش و کاهش متغیر با چرخش محور وسط ماوس
👈این قطعه کد، تنها مقدار متغیر را زیاد و کم می کند و برای استفاده در کنار اسکریپت های دیگر کاربرد دارد.
👈این قطعه کد، تنها مقدار متغیر را زیاد و کم می کند و برای استفاده در کنار اسکریپت های دیگر کاربرد دارد.
This media is not supported in your browser
VIEW IN TELEGRAM
📸 با استفاده از پارامتر Field of view از کامپوننت Camera می توان محدودۀ دید دوربین را کم یا زیاد کرد. (این حالت می تواند برای زوم کردن دوربین کاربرد داشته باشد، چرا که زوم کردن یعنی کاهش محدودۀ دید)
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ اسکریپت آماده ساخت حالت حرکت دوربین و زوم کردن (مانند تصویر بالا👆)
📍جابجایی و زوم با لمس صفحه در پلتفرم WebGL و با ماوس در سایر پلتفرم ها
#دانلود در پست بعدی🔻
📍جابجایی و زوم با لمس صفحه در پلتفرم WebGL و با ماوس در سایر پلتفرم ها
#دانلود در پست بعدی🔻
Unity Learning
⭕️ اسکریپت آماده ساخت حالت حرکت دوربین و زوم کردن (مانند تصویر بالا👆) 📍جابجایی و زوم با لمس صفحه در پلتفرم WebGL و با ماوس در سایر پلتفرم ها #دانلود در پست بعدی🔻
CameraHandler.Cs
4.1 KB
⭕️ اسکریپت آماده حرکت و زوم دوربین بازی با کمک ماوس و یا لمس صفحه
💡این اسکریپت را باید به دوربین فعال بازی متصل کنید.
👈 #سی_شارپ
@UnityLearning
💡این اسکریپت را باید به دوربین فعال بازی متصل کنید.
👈 #سی_شارپ
@UnityLearning
⚫️ السلام علیک یا ابا محمد یا حَسن بن علی ایها الزَّکی الْعَسکری
⚪️ شهادت حضرت امام حسن عسکری(ع) پدر بزرگوار امام زمان را تسلیت عرض میکنیم.
🔸 التماس دعا
👉 @UnityLearning
⚪️ شهادت حضرت امام حسن عسکری(ع) پدر بزرگوار امام زمان را تسلیت عرض میکنیم.
🔸 التماس دعا
👉 @UnityLearning
📸 محدود کردن استفاده از Mesh Collider برای آبجکت ها در جهت بالابردن سرعت اجرای بازی
👈 کارت گرافیک و CPU برای ساخت مش کالیدر در ابتدای شروع بازی بسیار مورد استفاده قرار می گیرند.
@UnityLearning
👈 کارت گرافیک و CPU برای ساخت مش کالیدر در ابتدای شروع بازی بسیار مورد استفاده قرار می گیرند.
@UnityLearning
⭕️ کامپوننت LOD Group
🔹 با بزرگ شدن محیط بازی (Scene) کارایی و عملکرد بسیار تحت تأثیر قرار می گیرند که باید در مورد آنها تصمیم گیری های اساسی انجام شود. یکی از روش های کنترل کارایی در یونیتی استفاده از حالت های مختلفی از Rendering برای یک آبجکت است. با استفاده از #کامپوننت LOD می توان کاری کرد که Mesh Renderer های مختلفی از یک آبجکت در فواصل مختلف دوربین از آنها نمایش داده شود. با توجه به عمومی بودن این کامپوننت برای فاصله از درصد استفاده می کند و شما می توانید برای هر در صد یک MeshRenderer خاص تعریف کنید که در آن فاصله نمایش داده شود. مشخص است که بهترین عمل انتخاب MeshRendererهای با کیفیت پایین در فاصلۀ دور از دوربین و با کیفیت تر برای فاصله های نزدیک و نزدیک تر است.
🔸معمولاً آبجکت های درخت، پرچم، آینه و... از LOD Group برای نمایش حالت های مختلفی از خود استفاده می کنند.
به منظور اضافه کردن #کامپوننت LOD Group به آبجکت مورد نظر خود (که البته چند MeshRenderer با کیفیت متفاوت از آن وجود دارد) از مسیر زیر استفاده کنید./🔻
Component > Rendering > LOD Group
👈 #ادامه_دارد
@UnityLearning
🔹 با بزرگ شدن محیط بازی (Scene) کارایی و عملکرد بسیار تحت تأثیر قرار می گیرند که باید در مورد آنها تصمیم گیری های اساسی انجام شود. یکی از روش های کنترل کارایی در یونیتی استفاده از حالت های مختلفی از Rendering برای یک آبجکت است. با استفاده از #کامپوننت LOD می توان کاری کرد که Mesh Renderer های مختلفی از یک آبجکت در فواصل مختلف دوربین از آنها نمایش داده شود. با توجه به عمومی بودن این کامپوننت برای فاصله از درصد استفاده می کند و شما می توانید برای هر در صد یک MeshRenderer خاص تعریف کنید که در آن فاصله نمایش داده شود. مشخص است که بهترین عمل انتخاب MeshRendererهای با کیفیت پایین در فاصلۀ دور از دوربین و با کیفیت تر برای فاصله های نزدیک و نزدیک تر است.
🔸معمولاً آبجکت های درخت، پرچم، آینه و... از LOD Group برای نمایش حالت های مختلفی از خود استفاده می کنند.
به منظور اضافه کردن #کامپوننت LOD Group به آبجکت مورد نظر خود (که البته چند MeshRenderer با کیفیت متفاوت از آن وجود دارد) از مسیر زیر استفاده کنید./🔻
Component > Rendering > LOD Group
👈 #ادامه_دارد
@UnityLearning
Unity Learning
⭕️ کامپوننت LOD Group 🔹 با بزرگ شدن محیط بازی (Scene) کارایی و عملکرد بسیار تحت تأثیر قرار می گیرند که باید در مورد آنها تصمیم گیری های اساسی انجام شود. یکی از روش های کنترل کارایی در یونیتی استفاده از حالت های مختلفی از Rendering برای یک آبجکت است. با استفاده…
📸 کامپوننت LOD Group در پنجره Inspector
Level of details(LOD)
➕با زدن دکمه Add می توانید Mesh مربوط به بازه ای که تعیین می کنید را وارد کنید.
👈 #ادامه_دارد
@UnityLearning
Level of details(LOD)
➕با زدن دکمه Add می توانید Mesh مربوط به بازه ای که تعیین می کنید را وارد کنید.
👈 #ادامه_دارد
@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
🎥 استفاده از LOD Group در ساده ترین روش ممکن
🔸به جهت مشاهده عملکرد کامپوننت LOD در نمایش Mesh Rendererهای مختلف برای یک آبجکت در فواصل گوناگون، تماشای این #فیلم توصیه میشود.
@UnityLearning
🔸به جهت مشاهده عملکرد کامپوننت LOD در نمایش Mesh Rendererهای مختلف برای یک آبجکت در فواصل گوناگون، تماشای این #فیلم توصیه میشود.
@UnityLearning
⭕️ بارگزاری مراحل با نمایش میزان بارگزاری
🔹 در زمان بارگزاری مراحل بازی، در صورتی که بخواهیم این بارگزاری روی صفحه نمایش داده شود(مثلا به صورت درصد) به جای دستور LoadLevel از دستور دیگر به نام LoadLevelAsync از #کلاس Application استفاده می شود. تفاوت بارگزاری این دو دستور به این شکل است که در دستور LoadLevel کامپایلر در خط مورد نظر متوقف می شود تا مرحله شما کاملاً لود شود اما در دستور LoadLevelAsync این کار در پس زمینه انجام می شود و کامپایلر متوقف نمی شود. استفاده از این دستور کمی نسبت به LoadLevel متفاوت است، که در پست های بعدی به شرح آن خواهیم پرداخت.
👈 #ادامه_دارد
@UnityLearning
🔹 در زمان بارگزاری مراحل بازی، در صورتی که بخواهیم این بارگزاری روی صفحه نمایش داده شود(مثلا به صورت درصد) به جای دستور LoadLevel از دستور دیگر به نام LoadLevelAsync از #کلاس Application استفاده می شود. تفاوت بارگزاری این دو دستور به این شکل است که در دستور LoadLevel کامپایلر در خط مورد نظر متوقف می شود تا مرحله شما کاملاً لود شود اما در دستور LoadLevelAsync این کار در پس زمینه انجام می شود و کامپایلر متوقف نمی شود. استفاده از این دستور کمی نسبت به LoadLevel متفاوت است، که در پست های بعدی به شرح آن خواهیم پرداخت.
👈 #ادامه_دارد
@UnityLearning
Unity Learning
⭕️ بارگزاری مراحل با نمایش میزان بارگزاری 🔹 در زمان بارگزاری مراحل بازی، در صورتی که بخواهیم این بارگزاری روی صفحه نمایش داده شود(مثلا به صورت درصد) به جای دستور LoadLevel از دستور دیگر به نام LoadLevelAsync از #کلاس Application استفاده می شود. تفاوت بارگزاری…
⭕️بارگزاری بازی در پس زمینه #ادامه
🔹برای استفاده از دستور LoadLevelAsync نیاز هست از توابع IEnumerator استفاده شود. زمانی که دستور فوق صدا زده می شود، کامپایلر در این تابع متوقف نشده و ادامه می دهد. در صورتی که بخواهیم کامپایلر را تا زمانی که مرحله به طور کامل بارگزاری نشده در یک حلقه نگهداریم از پارامتر isDone از متغیر AsyncOperation استفاده می شود.
🔸متغیر AsyncOperation مقداری است که جریان بارگزاری در آن صورت می پذیرد و برای بررسی وضعیت بارگزاری از آن استفاده می شود(مثل درصد بارگزاری و...)
📍حالت کلی صدا زدن یک مرحله از بازی با تابع مذکور به شکل زیر است./🔻
AsyncOperation asyncLoad = Application.LoadLevelAsync(Scene);
👈 در دستور بالا متغیر asyncLoad همان وضعیت بارگزاری است که قرار است بعدا از ان استفاده کنیم. Scene نیز شماره و یا نام مرحله ای است که باید بارگزاری شود.
💡در پست های بعدی نحوۀ استفاده از متغیر asyncLoad که نمونه ای از #کلاس AsyncOperation می باشد را توضیح خواهیم داد. دقت کنید کاربرد این کلاس برای همه عملیاتی است که نیاز به بررسی شرایط بارگزاری دارند بنابراین در دستورات دیگر نیز مورد استفاده قرار خواهند گرفت.
👈 #ادامه_دارد
@UnityLearning
🔹برای استفاده از دستور LoadLevelAsync نیاز هست از توابع IEnumerator استفاده شود. زمانی که دستور فوق صدا زده می شود، کامپایلر در این تابع متوقف نشده و ادامه می دهد. در صورتی که بخواهیم کامپایلر را تا زمانی که مرحله به طور کامل بارگزاری نشده در یک حلقه نگهداریم از پارامتر isDone از متغیر AsyncOperation استفاده می شود.
🔸متغیر AsyncOperation مقداری است که جریان بارگزاری در آن صورت می پذیرد و برای بررسی وضعیت بارگزاری از آن استفاده می شود(مثل درصد بارگزاری و...)
📍حالت کلی صدا زدن یک مرحله از بازی با تابع مذکور به شکل زیر است./🔻
AsyncOperation asyncLoad = Application.LoadLevelAsync(Scene);
👈 در دستور بالا متغیر asyncLoad همان وضعیت بارگزاری است که قرار است بعدا از ان استفاده کنیم. Scene نیز شماره و یا نام مرحله ای است که باید بارگزاری شود.
💡در پست های بعدی نحوۀ استفاده از متغیر asyncLoad که نمونه ای از #کلاس AsyncOperation می باشد را توضیح خواهیم داد. دقت کنید کاربرد این کلاس برای همه عملیاتی است که نیاز به بررسی شرایط بارگزاری دارند بنابراین در دستورات دیگر نیز مورد استفاده قرار خواهند گرفت.
👈 #ادامه_دارد
@UnityLearning
Unity Learning
⭕️بارگزاری بازی در پس زمینه #ادامه 🔹برای استفاده از دستور LoadLevelAsync نیاز هست از توابع IEnumerator استفاده شود. زمانی که دستور فوق صدا زده می شود، کامپایلر در این تابع متوقف نشده و ادامه می دهد. در صورتی که بخواهیم کامپایلر را تا زمانی که مرحله به طور…
📸 قطعه کد (تابع) برای استفاده از متغیر AsyncLoad از کلاس AsyncOperation به منظور کنترل و نمایش درصد بارگزاری شده از مرحله مورد نظر (بر اساس شماره مرحله)
@UnityLearning
@UnityLearning
🌸 به #مناسبت سالروز شروع امامت امام زمان
⭐️ آغاز ۱۱۷۹ مین سال امامت حضرت اباصالح المهدی را به همه شیعیان و منتظران آن حضرت تبریک و تهنیت عرض میکنیم.
🌹السلام علیک یا اباصالح المهدی یا صاحب الزمان🌹
🌷اللهم عجل لولیک الفرج🌷
👉 @UnityLearning
⭐️ آغاز ۱۱۷۹ مین سال امامت حضرت اباصالح المهدی را به همه شیعیان و منتظران آن حضرت تبریک و تهنیت عرض میکنیم.
🌹السلام علیک یا اباصالح المهدی یا صاحب الزمان🌹
🌷اللهم عجل لولیک الفرج🌷
👉 @UnityLearning