Unity Learning
2.99K subscribers
574 photos
211 videos
1.05K files
280 links
⭕️کانال آموزش حرفـــه ای موتور بازی سازی یـــونیتی

▪️ @UnityLearning ▫️

🔹ارتباط با مدیر کانال/👇

@UnityLearning_Admin

🔹 کد شامد /👇

1-1-3526-61-3-1

💰 تعرفه تبلیغات/👇

@UnityLearning_Ads

لینک گروه تبادل نظر اعضای کانال
@UnityLearning_Group
Download Telegram
PingPong.js
319 B
⭕️ اسکریپت آماده ساخت یک حالت رفت و برگشتی (Loop) برای حرکت یک آبجکت در محور x از 0 تا 3

🔹 بــه زبان #جاوا اسکریپت

@UnityLearning
⭕️ رفتارها و رویدادها در یونیتی

[این پست جنبه یادآوری و توضیح بیشتر دارد]

🔹در یونیتی زمانی که بخواهیم یک آبجکت از خود رفتار خاصی نشان دهد، باید از #کامپوننت ها استفاده کنیم. کامپوننت ها ویژگی هایی هستند که آبجکت ها در حالت عادی ندارند و لازم است به آنها داده شوند. مثلا آبجکت ها در حالت عادی نسبت به جاذبه واکنشی نشان نمی دهند و ما با اضافه کردن کامپوننت Rigidbody این ویژگی را به آنها می دهیم.

🔸برای رفتار های خاص در یونیتی کامپوننت های زیادی وجود دارد که بسیاری از آنها را در کانال بررسی کرده ایم. اما گاهی اوقات رفتار مد نظر ما به عنوان یک کامپوننت خاص در دسترس نیست در اینجا لازم است برای آبجکت/آبجکت هایمان کد بنویسیم. در واقع این کد یک کامپوننت است که ویژگیهای مد نظر ما را برای آبجکت انجام خواهد داد. علت اسکریپت نویسی در یونیتی هم دقیقاً همین موضوع است یعنی «انجام برخی رفتار و ویژگیها که در یونیتی برای آنها کامپوننت خاصی تعریف نشده است.»

📍البته به ناچار لازم است در برخی اسکریپت ها از کامپوننت های دیگر نیز استفاده کنیم، در واقع این استفاده کار ما را برای کد نویسی راحت تر می کند. این کامپوننت خودش می تواند یک اسکریپت دیگر باشد و یا هر کامپوننت دیگری که در یونیتی تعریف شده است.

👈 #ادامه_دارد

@UnityLearning
Scripts_as_Behaviour_Components_Unity_Official_Tutorials.137.mp4
14.5 MB
🎥 Scripts as Behaviour Components

🔷 #فیلم قرار گرفته برای توصیف #کامپوننت ها و اسکریپت نویسی در سایت در یونیتی با کیفیت FHD

@UnityLearning
Unity Learning
Scripts_as_Behaviour_Components_Unity_Official_Tutorials.137.mp4
Change_Color.cs
599 B
⭕️ اسکریپت آماده معرفی شده در فیلم

«تغییر #رنگ یک آبجکت با کلید های RGB»

به زبان #سی_شارپ اسکریپت

به کانال یونیتی لرنینگ
بپیوندید./🔻
@UnityLearning
Its A Road Tool.unitypackage
1.4 MB
⭕️ #پکیج ساخت جاده در یونیتی

🔹 این پکیج برای ساخت محیط با جاده به هر شکلی استفاده می شود. هماهنگی با Terrain و سطوح آن از دیگر ویژگی های این پکیج است.

@UnityLearning
Unity Learning
Its A Road Tool.unitypackage
⭕️ #آموزش استفاده از #پکیج

🔹برای استفاده از این پکیج بعد از import کردن آن به پروژه بازی سازی خود، می توانید آن را از منوی GameObject به بازی اضافه کنید./🔻
GameObject->Create Other->Road

🔸سپس روی Terrain یا هر آبجکت دارای MeshRendrer و Collider کلیک کنید تا نقاط روی صفحه ثبت شود.

🔹در پایان تعیین مسیر دکمه قرمز رنگ Lock در کنار صفحه [پنجره Inspector] کلیک کنید و منتظر بمانید تا مسیر شما کامل شود.

📍بعداً نیز می توانید مسیرتان را تغییر دهید برای این کار مجددا روی دکمه سبز رنگ Modify در کنار صفحه کلیک کنید و مجددا مسیر را روی صفحه مشخص کنید.

📕 این پکیج ویژگیهای دیگری نیز دارد که می توانید آنها را در فایل Readme موجود در پوشه پکیج مشاهده نمایید.

به کانال یونیتی لرنینگ
بپیــــــــوندید./🔻
@UnityLearning
Unity Learning
⭕️ رفتارها و رویدادها در یونیتی [این پست جنبه یادآوری و توضیح بیشتر دارد] 🔹در یونیتی زمانی که بخواهیم یک آبجکت از خود رفتار خاصی نشان دهد، باید از #کامپوننت ها استفاده کنیم. کامپوننت ها ویژگی هایی هستند که آبجکت ها در حالت عادی ندارند و لازم است به آنها…
⭕️ اسکریپت نویسی برای ایجاد یک رفتار خاص #ادامه

🔸اسکریپت ها در یک بازی نقش بسیار مهمی را بر عهده دارند و یک بازی ساز حتماً باید به آن توجه کامل کند. همانطور که قبلاً نیز توضیح داده ایم، بدترین حالت برای کدها وجود اشکال (bug) در کد است که حتماً منجر به شکست کل بازی خواهد شد. در یونیتی این استراتژی وجود دارد که تا خطاهای کامپایلری کلیه اسکریپت های موجود در کد رفع نشود، به هیچ عنوان اجازۀ اجرای بازی را نخواهد داد اما خطاهای غیر دستوری مثل مقدار دهی اشتباه یک متغیر و... در یونیتی تست نخواهد شد و تنها در زمان اجرای بازی باعث Crash خواهند شد.

🔹حتما در اسکریپت نویسی سعی کنید یک کد را مدام کپی پِیست نکنید. این کار بیش از 5 بار در یک پروژۀ بازی سازی، نشان از متخصص نبودن برنامه نویسان آن دارد. همچنین سعی کنید، متغیرها در برنامه نویسی را با توجه به کاری که انجام می دهند، نام گذاری کنید. این کار ساختار اسکریپت شما را کاملاً مفهومی می کند که به Trace کردن (آزمون کردن) کد بسیار کمک خواهد کرد.

@UnityLearning
⭕️ تنظیم آسمان محیط

☀️ همانطور که می دانید در یونیتی، کامپوننت Skybox مسئول نمایش محیط آسمان در بازی می باشد. اما این #کامپوننت باید کجا استفاده شود تا خروجی لازم نمایش داده شود؟ همانطور که واضح است آسمان موضوعی است برای نمایش در دوربیـــن فعال بازی، بنابراین باید کامپوننت Skybox به آبجکتی که دارای کامپوننت Camera است داده شود. یعنی همیشه کامپوننت زمانی کار خواهد کرد که در کنار Camera باشد.

🔹ضمناً پارامتر Clear Flags نیز از کامپوننت Camera باید روی Skybox تنظیم شده باشد. در صورتی که لازم باشد دوربین فعال در بازی تغییر کند باید کامپوننت Skybox آن نیز همزمان تغییر کند.

🔸 کامپوننت Skybox تنها یک پارامتر دارد و آن ، همان آسمانی است که باید برای دوربین نمایش دهد، در صورتی که Skybox برای پروژه خود دانلود کرده باشید می توانید با کلیک روی دایره کنار پارامتر Custom Skybox آنرا انتخاب کنید.

@UnityLearning
Unity Learning
⭕️ تنظیم آسمان محیط ☀️ همانطور که می دانید در یونیتی، کامپوننت Skybox مسئول نمایش محیط آسمان در بازی می باشد. اما این #کامپوننت باید کجا استفاده شود تا خروجی لازم نمایش داده شود؟ همانطور که واضح است آسمان موضوعی است برای نمایش در دوربیـــن فعال بازی، بنابراین…
⭕️ استفاده از یک آسمان برای تمام دوربین های فعال

[تنظیم یک آسمان به عنوان Default Skybox برای همه دوربین ها]

🔸در یونیتی برای اینکه بخواهیم یک آسمان را روی تمام دوربین های فعال بازی اعمال کنیم و دیگر نخواهیم برای تک تک دوربین ها کامپوننت Skybox قرار دهیم، لازم است از پنجره Light Setting استفاده کنیم و در بخش Environment اقدام به تنظیم یک آسمان خاص برای بازی کنیم. این آسمان روی تمامی دوربین ها به عنوان پیش فرض تنظیم می شود و شما اگر بخواهید یک دوربین آسمان متفاوتی را نمایش دهد باید اختصاصاً برای آن #کامپوننت Skybox قرار دهید.

@UnityLearning
⭕️ تنظیم یک آسمان به عنوان پیش فرض برای تمام دوربین های موجود در بازی

Windows> Lighting > Setting > Scene(Tab) >Skybox Material

@UnityLearning
⭕️ یک Skybox در یونیتی مجموعه ای از چند تکسچر کنار هم است (در تصویر👆 حالت شش وجهی انتخاب شده است)

بهترین حالت برای Skybox وجود تکسچر برای تمام وجه ها (شش جهت) می باشد.

@UnityLearning
نحوه ساخت Skybox.pdf
249.1 KB
⭕️نحوه ساخت SkyBox در یونیتی

🔹 آموزش تصویری در قالب فایل PDF

[نحوۀ ساخت یک Skybox از روی تکسچرهای دو بعدی در یونیتی]

@UnityLearning
⭕️ کاربرد Material

🔹در یونیتی Materialهابرای نحوۀ رندر شدن سطوح استفاده می شوند. یعنی یک سطح (هر سطحی، اعم از سطوح آبجکت ها تا سطح آسمان) بنابراین Materialها قابلیت شکل گیری زیادی در یونیتی خواهند داشت. از آنها قبلا در کد نویسی برای تغییر رنگ آبجکت ها و نمایش محل برخورد تیر استفاده کرده ایم.

🔸تکسچر ها برای نمایش روی سطوح باید از Material ها استفاده کنند و به خودی خود قابلیت قرار گیری روی آبجکت ها را ندارند. درست است که بیان می کردیم، تکسچر را روی آبجکت بکشید اما در اصل با این کار شما یک Material برای آبجکت درست می کردید و #تکسچر مورد نظر به Material داده می شد. Material ها در یونیتی از طریق منوی زیر ساخته می شوند./🔻
Assets->Create->Material

📍با این کار در پنجره Inspector منویی باز می شود تا تنظیمات را در آن وارد کنید. مهمترین تنظیم برای یک Material نوع آن است که در پارامتر Shader قابل تنظیم است. نوع یک Material یعنی آن برای چه کاربردی قرار است ساخته شود/ ساخت تکسچر ساده، استفاده به عنوان Skybox و...

👈 #ادامه_دارد

@UnityLearning
Unity Learning
⭕️ استفاده از یک آسمان برای تمام دوربین های فعال [تنظیم یک آسمان به عنوان Default Skybox برای همه دوربین ها] 🔸در یونیتی برای اینکه بخواهیم یک آسمان را روی تمام دوربین های فعال بازی اعمال کنیم و دیگر نخواهیم برای تک تک دوربین ها کامپوننت Skybox قرار دهیم،…
🔹در صورتی که بخواهیم این کار یعنی قرار گیری یک آسمان به عنوان پیش فرض (Global) در کد نویسی انجام شود. باید از کلاس RenderSettings استفاده کنیم. تنظیمات مربوط به Rendering در یونیتی در این کلاس موجود است و با دستور skybox از این کلاس می توانیم به آسمان Global در یونیتی دسترسی داشت. /🔻
RenderSettings.skybox=mat;

همانطور که مشاهده می کنید نوع این دستور Material بوده و همان Materialییست که برای آسمان در یونیتی ساخته شده است. در فرض بالا mat یک متغیر سراسری برای مقدار دهی در یونیتی است که به شکل زیر تعریف شده است./🔻
var mat:Material;

[که البته باید بعداً در یونیتی با Material مناسب مقدار دهی گـــردد]

👈 این دستور (دستور RenderSettings.skybox)
برای تغییر آسمان در یونیتی استفاده می شود و زمانی کاربرد دارد که بخواهید به هر دلیلی در یونیتی آسمان تغییر کند یکی از این دلایل می تواند شبیه سازی محیط شب و روز در بازی باشد که با دستور بالا در محل مناسب آسمان بازی تغییر خواهد کرد.

@UnityLearning
BTScript.cs
2.4 KB
⭕️ اسکریپت آماده جهت ایجاد ارتباط با دستگاه های بلوتوث مثل Joystickها و کیبوردهای بلوتوثی

🔹 این اتصال به وسیله پورت ها برقرار می شود. (محل های کد نویسی در اسکریپت مشخص شده است)

@UnityLearning
⭕️ کامپوننت Mesh Collider

🔹 در مورد Meshها در یونیتی قبلاً توضیحاتی داده شد. Mesh در یونیتی بخش های سازندۀ آبجکت هستند که به وسیله آنها فضای دیداری آبجکت ساخته می شود. Mesh Rendrer با Material ها متفاوت است. آنچیزی که فضای حجمی آبجکت را می سازد، Mesh است و آنچه روی آن Mesh تکسچر قرار می دهد Materialها
هستند، بنابراین این دو در #یونیتی بسیار نزدیک به هم هستند.

🔸 در یونیتی علاوه بر تمام انواع کالیدر که بررسی کرده ایم یک کالیدر دیگر به نام Mesh وجود دارد. Mesh Collider به شکلی است که ما می خواهیم. یعنی مربع و سیلندر و... نیست و همان شکلی است که Mesh معادل آن را در برنامــه های تولید آبجکت ساخته و به کامپوننت داده می شود، در این صورت کالیدری که ساخته می شود معادل شکل آبجکت خواهد بود.

👈 #ادامه_دارد

@UnityLearning
Unity Learning
⭕️ کامپوننت Mesh Collider 🔹 در مورد Meshها در یونیتی قبلاً توضیحاتی داده شد. Mesh در یونیتی بخش های سازندۀ آبجکت هستند که به وسیله آنها فضای دیداری آبجکت ساخته می شود. Mesh Rendrer با Material ها متفاوت است. آنچیزی که فضای حجمی آبجکت را می سازد، Mesh است…
⭕️ زمانی که از Mesh Collider استفاده می‌شود، کالیدر ها دقیقاً روی آبجکت قرار می‌گیرد.

[ همچنین پکیج هایی وجود دارد که قابلیت ایجاد Mesh به شکل آبجکت ها رادارند که به زودی در کانال قرار خواهند گرفت ]
⭕️ #پکیج ساخت کالیدر برای آبجکت ها

🔹پکیجی برای ساخت Mesh Collider به صورت کاملا دقیق و پیچیده روی سطح آبجکت ها در یونیتی وجود دارد. نام این پکیج concave collider می باشد و پکیجی بسیار کاربردی برای دادن کالیدر به آبجکت های دانلودی است که کالیدر ندارند. پیشنهاد حتمی کانال استفاده از این پکیج در ساخت بازی ها می باشد.

💲 قیمت این پکیج در استور یونیتی 40 دلار تعیین شده که می توانید به رایگان از یونیتی لرنینگ دریافت کنید. ضمنا کلیه حقوق این فایل برای دانلود از یونیتی لرنینگ محفوظ می باشد.

📕 راهنمای استفاده از پکیج: برای اعمال کالیدر با این پکیج بعد از import کردن آن به پروژۀ بازی سازی خود به جای کالیدرهای دیگر از منوی Component استفاده کنید./🔻
Component >Ultimate Game Tools>Collider

👈 با اضافه شدن این #کامپوننت به آبجکت شما یک بخش (اسکریپت) به پنجره Inspector اضافه می شود که با زدن دکمه Compute hull کالیدر برای آبجکت مورد نظر ساخته می شود که بر اساس نوع آبجکت ممکن است چند دقیقه طول بکشد.

@UnityLearning

📍این پکیج بسیار کاربردی برای اولین بار در پست بعدی برای دانلود قرار خواهد گرفت.