⭕️ شبیه سازی وزش باد 💨 در یونیتی
👈همانطور که در پنجره Terrain Setting(پست قبل) مشاهده میکنید، بخشی برای تنظیمات Wind در یونیتی وجود دارد.
🔹در یونیتی درختان 🌲 و Grass ها 🌾 نسبت به باد واکنش نشان میدهند که این موضوع زمانی که به محیط بازی خود Grass (چمن) اضافه میکنید بیشتر نمایان است.
🔸برای اضافه کردن یک مرکز تولید باد که به اصطلاح Wind Zone نامیده میشود از مسیر زیر استفاده میشود. /👇
Game Object > Create General > Wind Zone.
▪️با اضافه کردن آن یک آبجکت جداگانه به #پنجره Hierarchy افزوده میشود که با انتخاب آن با گزینه های تنظیماتی آن در Inspector دسترسی خواهیم داشت.
🌬اولین و مهمترین گزینه، Mode است این گزینه مشخص کننده نوع باد (خطی یا چرخشی است) یاد خطی یا Direction کل Terrain را در یک جهت برای باد تحت تاثیر قرار می دهد.
🌪در مقابل باد چرخشی که واقعی تر هم به نظر می آید، فقط بخشی که در شعاع آن قرار دارد را در جهات مختلف تحت تاثیر قرار می دهد.
▫️گزینه های دیگر منوط به انتخاب نوع باد خواهند بود، مثلا گزینه Radius همان شعاعی است که در باد Spherical(چرخشی) در مورد آن صحبت کردیم.
👈گزینه های دیگر نیز برای تنظیمات پیشرفته مربوط به باد مثلا زمان تکرار (Frequently) و.... به کار می رود.
🌫 قدرت وزش بادی که همیشه به صورت پیش فرض به Grass ها وزیده میشود، در پنجره Terrain Setting قابل تنظیم است. این میزان باد فقط برای تکان خوردن Grass ها حتی زمانی که Wind Zone در محیط بازی قرار نداده اید ، تنظیم شده است.
🔹با قرار دادن Wind Zone باد در جهت معقول به درخت ها نیز وارد میشود، بنابراین توصیه میشود اگر لازم است در بازی شما باد وجود داشته باشد از Wind Zone استفاده کنید.
#یونیتی #برنامه
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
👈همانطور که در پنجره Terrain Setting(پست قبل) مشاهده میکنید، بخشی برای تنظیمات Wind در یونیتی وجود دارد.
🔹در یونیتی درختان 🌲 و Grass ها 🌾 نسبت به باد واکنش نشان میدهند که این موضوع زمانی که به محیط بازی خود Grass (چمن) اضافه میکنید بیشتر نمایان است.
🔸برای اضافه کردن یک مرکز تولید باد که به اصطلاح Wind Zone نامیده میشود از مسیر زیر استفاده میشود. /👇
Game Object > Create General > Wind Zone.
▪️با اضافه کردن آن یک آبجکت جداگانه به #پنجره Hierarchy افزوده میشود که با انتخاب آن با گزینه های تنظیماتی آن در Inspector دسترسی خواهیم داشت.
🌬اولین و مهمترین گزینه، Mode است این گزینه مشخص کننده نوع باد (خطی یا چرخشی است) یاد خطی یا Direction کل Terrain را در یک جهت برای باد تحت تاثیر قرار می دهد.
🌪در مقابل باد چرخشی که واقعی تر هم به نظر می آید، فقط بخشی که در شعاع آن قرار دارد را در جهات مختلف تحت تاثیر قرار می دهد.
▫️گزینه های دیگر منوط به انتخاب نوع باد خواهند بود، مثلا گزینه Radius همان شعاعی است که در باد Spherical(چرخشی) در مورد آن صحبت کردیم.
👈گزینه های دیگر نیز برای تنظیمات پیشرفته مربوط به باد مثلا زمان تکرار (Frequently) و.... به کار می رود.
🌫 قدرت وزش بادی که همیشه به صورت پیش فرض به Grass ها وزیده میشود، در پنجره Terrain Setting قابل تنظیم است. این میزان باد فقط برای تکان خوردن Grass ها حتی زمانی که Wind Zone در محیط بازی قرار نداده اید ، تنظیم شده است.
🔹با قرار دادن Wind Zone باد در جهت معقول به درخت ها نیز وارد میشود، بنابراین توصیه میشود اگر لازم است در بازی شما باد وجود داشته باشد از Wind Zone استفاده کنید.
#یونیتی #برنامه
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ #تکسچر مناسب Terrain برای زمین های ترک خورده (مثل کویر و یا کف رودخانه)
💡کیفیت: عادی
@UnityLearning
💡کیفیت: عادی
@UnityLearning
🌹در این عصر روز عرفه، روز دعا و استغفار ، ما را از دعای خیرتان بی بهره نگذارید.
🌸اللهم عجل لولیک الفرج🌸
▫️◽️◻️الـتماس دعا◻️◽️▫️
@UnityLearning
🌸اللهم عجل لولیک الفرج🌸
▫️◽️◻️الـتماس دعا◻️◽️▫️
@UnityLearning
Unity Learning
⭕️ شبیه سازی وزش باد 💨 در یونیتی 👈همانطور که در پنجره Terrain Setting(پست قبل) مشاهده میکنید، بخشی برای تنظیمات Wind در یونیتی وجود دارد. 🔹در یونیتی درختان 🌲 و Grass ها 🌾 نسبت به باد واکنش نشان میدهند که این موضوع زمانی که به محیط بازی خود Grass (چمن)…
👈چپ: Wind Zone در حالت Spherical
👉راست: Wind Zone در حالت Directional
🌪در حالت چرخشی باد فقط در محدوده مورد نظر اعمال میشود.
@UnityLearning
👉راست: Wind Zone در حالت Directional
🌪در حالت چرخشی باد فقط در محدوده مورد نظر اعمال میشود.
@UnityLearning
⭕️ استفاده از چند #دوربین برای یک صحنه
🎦 در صورتی که بخواهیم در بازی چند دوربین داشته باشیم، و در هر زمان یکی از آنها فعال باشد باید در بخش های مورد نظر دوربین را با کمک پارامتر enabled فعال/غیر فعال کرد. این حالت مشابه بازی هایی است که در آن ها با فشردن یک کلید دوربین جابجا میشود، مثل بازی های ماشین سواری که دوربین در آنها با فشردن کلید C جابجا میشود.
🔹به طور #مثال اگر دو دوربین که به صورت زیر تعریف شده است و در یونیتی برای اسکریپت معرفی شده اند را داشته باشیم/👇
var firstPersonCamera: Camera;
var overheadCamera: Camera;
👈میتوانیم با دستوراتی مثل زیر یکی از آنها را فعال و دیگری را غیر فعال کنیم /👇
firstPersonCamera.enabled = false;
overheadCamera.enabled = true;
☑️به طور مثال میتوان این دستورات را در شرط فشرده شدن یک کلید خاص قرار داد.
🔜 در پست های آتی اسکریپت های آماده و دستورات بیشتری از #کلاس Camera را بررسی میکنیم.
#اسکریپت_نویسی #کد_نویسی #یونیتی
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🎦 در صورتی که بخواهیم در بازی چند دوربین داشته باشیم، و در هر زمان یکی از آنها فعال باشد باید در بخش های مورد نظر دوربین را با کمک پارامتر enabled فعال/غیر فعال کرد. این حالت مشابه بازی هایی است که در آن ها با فشردن یک کلید دوربین جابجا میشود، مثل بازی های ماشین سواری که دوربین در آنها با فشردن کلید C جابجا میشود.
🔹به طور #مثال اگر دو دوربین که به صورت زیر تعریف شده است و در یونیتی برای اسکریپت معرفی شده اند را داشته باشیم/👇
var firstPersonCamera: Camera;
var overheadCamera: Camera;
👈میتوانیم با دستوراتی مثل زیر یکی از آنها را فعال و دیگری را غیر فعال کنیم /👇
firstPersonCamera.enabled = false;
overheadCamera.enabled = true;
☑️به طور مثال میتوان این دستورات را در شرط فشرده شدن یک کلید خاص قرار داد.
🔜 در پست های آتی اسکریپت های آماده و دستورات بیشتری از #کلاس Camera را بررسی میکنیم.
#اسکریپت_نویسی #کد_نویسی #یونیتی
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
🌺فرا رسیدن ِ عید سعید قربان را به تمام مسلمین جهان تبریک و تهنیت عرض میکنیم.
🌹اَلسَّلامُ علَی ابراهیم خَلیل اللّه
💐با آرزوی ایام شاد و پر خیر و برکت برای شما
@UnityLearning
🌹اَلسَّلامُ علَی ابراهیم خَلیل اللّه
💐با آرزوی ایام شاد و پر خیر و برکت برای شما
@UnityLearning
peeling_red_paint_on_old_wooden_boards_texture.jpg
1.5 MB
⭕️ #تکسچر چوب دیگر برای ساخت درب و میز های قدیمی
🔸کیفیت خوب برای استفاده در #یونیتی و سایر نرم افزارهای گرافیکی تولید آبجکت
@UnityLearning
🔸کیفیت خوب برای استفاده در #یونیتی و سایر نرم افزارهای گرافیکی تولید آبجکت
@UnityLearning
⭕️ نکاتی در مورد ساخت بازی
🔹یکی از مواردی که در بازی مهم است و باعث بهتر شدن کیفیت بازی میشود استفاده صحیح از با کیفیت ترین #تکسچر هاست. تکسچر باید در محل مورد نظر به خوبی دیده شود و باعث زیبا شدن کیفیت بازی شود، حال آنکه اگر از تکسچری با کیفیت پایین برای بازی استفاده کنید و یا اینکه تکسچر را در محل مناسب قرار ندهید خروجی مطلوبی برای بازی خود نخواهید داشت.
🔸نکته دیگر این است که سعی کنید در محل های باز (محیط بیرون) در بازی تان آبجکت های زیبا قرار دهید و در صورتی که فرصت برنامه نویسی برای آن ها را ندارید به کمک کالیدر راه دسترسی به آنها را ببندید. ضمنا در کل سعی کنید تنها بازیکن را در محل های جریان بازی قرار دهید و اجازه آزاد بودن آن را در Terrain ندهید. قرار دادن آبجکت هایی در محیط بازی که در کل مربوط به بازی میشوند اما در بازی تاثیر ندارند، باعث ایجاد انگیزه در بازیکنان میشود.
▫️◽️◻️به طور مثال فرض کنید اگر بازی در یک خیابان اتفاق میافتد، قرار دادن اتوموبیل کنار جاده به صورت پارک شده میتواند به افزایش جذابیت بازی کمک کند.
#نکته #یونیتی #برنامه
〰〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔹یکی از مواردی که در بازی مهم است و باعث بهتر شدن کیفیت بازی میشود استفاده صحیح از با کیفیت ترین #تکسچر هاست. تکسچر باید در محل مورد نظر به خوبی دیده شود و باعث زیبا شدن کیفیت بازی شود، حال آنکه اگر از تکسچری با کیفیت پایین برای بازی استفاده کنید و یا اینکه تکسچر را در محل مناسب قرار ندهید خروجی مطلوبی برای بازی خود نخواهید داشت.
🔸نکته دیگر این است که سعی کنید در محل های باز (محیط بیرون) در بازی تان آبجکت های زیبا قرار دهید و در صورتی که فرصت برنامه نویسی برای آن ها را ندارید به کمک کالیدر راه دسترسی به آنها را ببندید. ضمنا در کل سعی کنید تنها بازیکن را در محل های جریان بازی قرار دهید و اجازه آزاد بودن آن را در Terrain ندهید. قرار دادن آبجکت هایی در محیط بازی که در کل مربوط به بازی میشوند اما در بازی تاثیر ندارند، باعث ایجاد انگیزه در بازیکنان میشود.
▫️◽️◻️به طور مثال فرض کنید اگر بازی در یک خیابان اتفاق میافتد، قرار دادن اتوموبیل کنار جاده به صورت پارک شده میتواند به افزایش جذابیت بازی کمک کند.
#نکته #یونیتی #برنامه
〰〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ #دانلود #آبجکت بسیار زیبا هلیکوپتر
🚁با فرمت های متعدد مثل 3ds,max و...
👇دانلود در پست بعدی👇
@UnityLearning
🚁با فرمت های متعدد مثل 3ds,max و...
👇دانلود در پست بعدی👇
@UnityLearning
⭕️ #دانلود #آبجکت هلیکوپتر کبرا
🚁Cobra Helicopter
📍با فرمت 3ds و تکسچر با فرمت tga
👇دانلود در پست بعدی👇
@UnityLearning
🚁Cobra Helicopter
📍با فرمت 3ds و تکسچر با فرمت tga
👇دانلود در پست بعدی👇
@UnityLearning
🔊بخش Audio Mixer در یونیتی
◽️به منظور ترکیب صداها و همچنین اعمال افکت های مختلف صوتی روی صدا ها یونیتی بخشی به نام Audio Mixer را به موتور خود افزوده است.
📢در یونیتی میتوان به هر تعداد که دلخواه باشد، Audio Mixer به بازی اضافه کرد و از آن استفاده کرد. در کل کار با Audio Mixer بسیار ساده است کافی است آن را به محیط بازی افزوده و پارامتر های آن را تنظیم کرد.
🖱اگر مفهوم Game Object , Transform و Asset را به یاد داشته باشید ، Audio Mixer یک Asset است و شامل چندین Transform میشود که (همانطور که تأکید شد) میتوان به هر تعداد از آن در بازی داشت.
⬅️ سؤال اینجاست Audio Mixer کجا اعمال میشود؟
☑️ پاسخ این است که Audio Mixer روی AudioSourceها اعمال میشوند و در واقع سیگنال خروجی آنها را تحت تأثیر قرار میدهد.
👈 #ادامه_دارد
#صدا #یونیتی
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
◽️به منظور ترکیب صداها و همچنین اعمال افکت های مختلف صوتی روی صدا ها یونیتی بخشی به نام Audio Mixer را به موتور خود افزوده است.
📢در یونیتی میتوان به هر تعداد که دلخواه باشد، Audio Mixer به بازی اضافه کرد و از آن استفاده کرد. در کل کار با Audio Mixer بسیار ساده است کافی است آن را به محیط بازی افزوده و پارامتر های آن را تنظیم کرد.
🖱اگر مفهوم Game Object , Transform و Asset را به یاد داشته باشید ، Audio Mixer یک Asset است و شامل چندین Transform میشود که (همانطور که تأکید شد) میتوان به هر تعداد از آن در بازی داشت.
⬅️ سؤال اینجاست Audio Mixer کجا اعمال میشود؟
☑️ پاسخ این است که Audio Mixer روی AudioSourceها اعمال میشوند و در واقع سیگنال خروجی آنها را تحت تأثیر قرار میدهد.
👈 #ادامه_دارد
#صدا #یونیتی
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
Audio_Mixer_and_Audio_Mixer_Groups_Unity_Official_Tutorials.mp4
26 MB
🎥 Audio Mixer and Audio Mixer Groups
🔹#فیلم #آموزش استفاده از Audio Mixer در #یونیتی از سایت یونیتی با کیفیت FullHD
@UnityLearning
🔹#فیلم #آموزش استفاده از Audio Mixer در #یونیتی از سایت یونیتی با کیفیت FullHD
@UnityLearning
RandomMovement.cs
5 KB
⭕ اسکریپت آماده حرکت تصادفی در محل تعیین شده (حرکت افقی)
🔹 حرکت فقط در بین محدوده که تعیین می شود. سرعت حرکت نیز در اسکریپت قابل تنطیم است.
@UnityLearning
🔹 حرکت فقط در بین محدوده که تعیین می شود. سرعت حرکت نیز در اسکریپت قابل تنطیم است.
@UnityLearning
⭕اسکریپت آماده جهت پیمایش در صفحه به صورت رندوم و تصادفی /👆
🔹 اسکریپت های خاص برای حرکت در کانال زیاد قرار گرفته است. این اسکریپت در محدوده تعیین شده حرکت را به صورت رندوم انجام می دهد و همچنین حرکت به صورت افقی است (یعنی محور y آبجکت تغییر نمی کند) - علاوه بر اکثر استفاده های مد نظر که در مورد این اسکریپت هست یکی از استفاده ها آن می تواند اتصال به دوربین باشد (مثلا بخواهید یک دوربین ابتدای بازی کل صفحه را به صورت رندوم نمایش دهد)
🔸 این اسکریپت #آبجکت که کد به آن متصل شده است را جابجا می کند.
▫ محدوده ی حرکت آبجکت با پارامتر های minX و MaxX برای حداقل و حداکثر مقادیر X که می تواند روی آبجکت بین آنها جابجا شود و همچنین همین اوصاف برای MinZ و MaxZ بـــرای محور Z
👈 پارامتر دیگر هم velocidadMax سرعت نهایی آبجکت است که می تواند بر اساس آن حرکت کند.
❗ این اسکریپت برای حرکت از #کامپوننت Rigidbody استفاده نمی کند. بنابراین برای استفاده از این #کامپوننت مختار هستید و آبجکت می تواند Rigidbody داشته باشد و یا نداشته باشد.
🔹ضمناً در این اسکریپت از کلاس های مختلفی برای پیدا کردن جهت چرخش و... استفاده شده است، مثل کلاس Mathf و یا #کلاس Quaternion که برای اعمال حرکت و چرخش صحیح از آنها استفاده شده است.
#اسکریپت_نویسی #کد_نویسی #یونیتی #آموزش
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
🔹 اسکریپت های خاص برای حرکت در کانال زیاد قرار گرفته است. این اسکریپت در محدوده تعیین شده حرکت را به صورت رندوم انجام می دهد و همچنین حرکت به صورت افقی است (یعنی محور y آبجکت تغییر نمی کند) - علاوه بر اکثر استفاده های مد نظر که در مورد این اسکریپت هست یکی از استفاده ها آن می تواند اتصال به دوربین باشد (مثلا بخواهید یک دوربین ابتدای بازی کل صفحه را به صورت رندوم نمایش دهد)
🔸 این اسکریپت #آبجکت که کد به آن متصل شده است را جابجا می کند.
▫ محدوده ی حرکت آبجکت با پارامتر های minX و MaxX برای حداقل و حداکثر مقادیر X که می تواند روی آبجکت بین آنها جابجا شود و همچنین همین اوصاف برای MinZ و MaxZ بـــرای محور Z
👈 پارامتر دیگر هم velocidadMax سرعت نهایی آبجکت است که می تواند بر اساس آن حرکت کند.
❗ این اسکریپت برای حرکت از #کامپوننت Rigidbody استفاده نمی کند. بنابراین برای استفاده از این #کامپوننت مختار هستید و آبجکت می تواند Rigidbody داشته باشد و یا نداشته باشد.
🔹ضمناً در این اسکریپت از کلاس های مختلفی برای پیدا کردن جهت چرخش و... استفاده شده است، مثل کلاس Mathf و یا #کلاس Quaternion که برای اعمال حرکت و چرخش صحیح از آنها استفاده شده است.
#اسکریپت_نویسی #کد_نویسی #یونیتی #آموزش
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⭕️توضیحاتی برای ابزار Paint Height در یونیتی
🔹برای یک دست کردن ارتفاع در محیط بازی از این گزینه استفاده کنید.
@UnityLearning
🔹برای یک دست کردن ارتفاع در محیط بازی از این گزینه استفاده کنید.
@UnityLearning
⭕️همه چیز در مورد #پنجره Game در #یونیتی
🔹این پنجره برای نمایش آنچه در خروجی بازی نمایش داده می شود، استفاده می شود.
@UnityLearning
🔹این پنجره برای نمایش آنچه در خروجی بازی نمایش داده می شود، استفاده می شود.
@UnityLearning
⭕️تفاوت توابع OnTrigger و OnCollision
( #آموزش توابع OnCollision برای بررسی برخورد در یونیتی)
▫️این پست به #درخواست کاربران قرار میگیرد.
🔙 همانطور که قبلا بیان کردیم در یونیتی #کامپوننت Collider به دو منظور بکار میرود.
🔘اول) ساخت یک مانع برای آبجکت ها (یعنی محلی که باعث میشود آبجکت ها از هم رد نشوند)
🔘دوم) تعیین محدوده برای اجرای تابع OnTrigger... (اگر هر آبجکتی وارد این محدوده شود کل کدهای تابع OnTriggerEnter اجرا میشود و...)
🔹توابع OnCollision زمانی اجرا میشوند که دو کالیدر به هم برخورد کنند. حال باعث میشود این سؤال پیش آید که تفاوت این دو تابع در چیست؟
✅ پاسخ کاملا واضح است، زمانی که دو جسم دارای کالیدر بهم برخورد میکنند به هیچ وجه از هم رد نمیشود یعنی دو کالیدر مماس هم میشوند و وارد محدوده هم نمی شوند. که توابع به ترتیب زیر اجرا میشوند:
1⃣ در ابتدای شروع لمس و فقط یک بار تابع OnCollisionEnter اجرا میشود. (از آن قبلا برای تشخیص برخورد تیر استفاده کرده ایم، برای مشاهده نحوه استفاده به اسکریپت های مربوطه مراجعه کنید)
2⃣ در زمان لمس تابع OnCollisionSlay دایما اجرا میشود(نحوه اجرای این تابع مانند تابع Update است فقط تا زمانی اجرا میشود که دو آبجکت یک دیگر را لمس کرده اند و در زمان پایان لمس اجرای تابع نیز متوقف میشود)
3⃣ در پایان لمس و هنگام جدا شدن فقط یک بار دستورات تابع OnCollisionExit استفاده میشود.
⬅️ این توابع همگی یک پارامتر ورودی دارند که #کامپوننت ِ کالیدری است که به آبجکت جاری برخورد کرده است. از روی آن میتوان دقیقا محل برخورد و لمس دو آبجکت را از بدست آورد.
🔸#جاوا /👇
function OnCollisionEnter(P: Collider )
{.....
🔸#سی_شارپ /👇
void OnCollisionEnter(Collider p)
{....
◀️ در اینجا P همان کامپوننت کالیدری است که آبجکت جاری(که کد را به آن متصل کرده ایم) را لمس کرده است.
💡یادآوری: برای بدست آوردن آبجکت یک کالیدر (آبجکتی که این کالیدر به آن متصل شده است یا اصطلاحا پدر این کالیدر) از دستور زیر استفاده میشود.
Collider.transform;
به طور مثال برای p /👇
p.transform
👈آبجکتی است که کالیدر به آن متصل است (یعنی همان آبجکت دیگری که شی جاری به وسیله آن لمس شده است)
#اسکریپت_نویسی #کد_نویسی #یونیتی #برنامه_نویسی
▪️همین شرایط اجرا برای توابع OnTrigger موجود است. با این تفاوت که توابع OnTrigger در زمان ورودی یک کالیدر به محدوده Trigger اجرا میشود.
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
( #آموزش توابع OnCollision برای بررسی برخورد در یونیتی)
▫️این پست به #درخواست کاربران قرار میگیرد.
🔙 همانطور که قبلا بیان کردیم در یونیتی #کامپوننت Collider به دو منظور بکار میرود.
🔘اول) ساخت یک مانع برای آبجکت ها (یعنی محلی که باعث میشود آبجکت ها از هم رد نشوند)
🔘دوم) تعیین محدوده برای اجرای تابع OnTrigger... (اگر هر آبجکتی وارد این محدوده شود کل کدهای تابع OnTriggerEnter اجرا میشود و...)
🔹توابع OnCollision زمانی اجرا میشوند که دو کالیدر به هم برخورد کنند. حال باعث میشود این سؤال پیش آید که تفاوت این دو تابع در چیست؟
✅ پاسخ کاملا واضح است، زمانی که دو جسم دارای کالیدر بهم برخورد میکنند به هیچ وجه از هم رد نمیشود یعنی دو کالیدر مماس هم میشوند و وارد محدوده هم نمی شوند. که توابع به ترتیب زیر اجرا میشوند:
1⃣ در ابتدای شروع لمس و فقط یک بار تابع OnCollisionEnter اجرا میشود. (از آن قبلا برای تشخیص برخورد تیر استفاده کرده ایم، برای مشاهده نحوه استفاده به اسکریپت های مربوطه مراجعه کنید)
2⃣ در زمان لمس تابع OnCollisionSlay دایما اجرا میشود(نحوه اجرای این تابع مانند تابع Update است فقط تا زمانی اجرا میشود که دو آبجکت یک دیگر را لمس کرده اند و در زمان پایان لمس اجرای تابع نیز متوقف میشود)
3⃣ در پایان لمس و هنگام جدا شدن فقط یک بار دستورات تابع OnCollisionExit استفاده میشود.
⬅️ این توابع همگی یک پارامتر ورودی دارند که #کامپوننت ِ کالیدری است که به آبجکت جاری برخورد کرده است. از روی آن میتوان دقیقا محل برخورد و لمس دو آبجکت را از بدست آورد.
🔸#جاوا /👇
function OnCollisionEnter(P: Collider )
{.....
🔸#سی_شارپ /👇
void OnCollisionEnter(Collider p)
{....
◀️ در اینجا P همان کامپوننت کالیدری است که آبجکت جاری(که کد را به آن متصل کرده ایم) را لمس کرده است.
💡یادآوری: برای بدست آوردن آبجکت یک کالیدر (آبجکتی که این کالیدر به آن متصل شده است یا اصطلاحا پدر این کالیدر) از دستور زیر استفاده میشود.
Collider.transform;
به طور مثال برای p /👇
p.transform
👈آبجکتی است که کالیدر به آن متصل است (یعنی همان آبجکت دیگری که شی جاری به وسیله آن لمس شده است)
#اسکریپت_نویسی #کد_نویسی #یونیتی #برنامه_نویسی
▪️همین شرایط اجرا برای توابع OnTrigger موجود است. با این تفاوت که توابع OnTrigger در زمان ورودی یک کالیدر به محدوده Trigger اجرا میشود.
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢