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
‼️ #نکته مهمی در مورد اسکریپت های آماده به زبان #سی_شارپ که در کانال قرار می‌گیرد.

⚪️ همانطور که می‌دانید در یونیتی نام کلاسِ تعریف شده در اسکریپت باید با نام اسکریپت یکی باشد. این موضوع در اسکریپت های آماده #سی_شارپ کاملا ً رعایت می‌شود.

🔸در هنگام دانلود اسکریپت از یونیتی باید آن را در دانلود ها ذخیره کنید (با گزینه Save to download) و آن را با نام واقعی از پوشه دانلود به محل پروژه خود کپی کنید. اگر اسکریپت را بعد از دانلود بدون Save to download از پوشه Telegram Document کپی کنید، این فایل نام اصلی که ما قرار دادیم را ندارد و مثلا با نام یک عدد و پسوند cs هست، اگر شما این فایل را به پروژه کپی کنید و بخواهید از آن استفاده کنید با خطای زیر مواجه خواهید شد/👇

Script Class not found

▫️بنابراین توصیه می‌شود همواره اسکریپت ها و فایل هایی که در کانال قرار می‌دهیم را Save to Download کنید و سپس برای مراجعه و کپی آن به سیستم از پوشه Download استفاده کنید.


#دانلود_صحیح_از_تلگرام


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ #دانلود #آبجکت جنگنده اف 16

🔹با کیفیت عالی

📍با فرمت های 3ds و obj به همراه تکسچر های جداگانه

🔸دانلود در پست بعدی

@UnityLearning
Airplane_F16_FIN.7z
610 KB
⭕️ #دانلود #آبجکت جنگنده F16

🔸به همراه تکسچر های جداگانه

(شما باید به تک تک اعضای آبجکت تکسچر مورد نظر را بدهید)

@UnityLearning
مقدار دهی پیش فرض برای متغیرها در یونیتی

🔸 اگر بخواهید متغیرهای یک اسکریپت را که به صورت سراســـری برای مقدار دهـــی در یونیتی تعریف شده اند، به صورت پیش فرض یک مقدار هم بدهید، باید به این نحو که در ادامه بیان خــواهد شد، عمل کنید.

🔹 اگر متغیر شما به صورت عددی (یا به طور کلی غیر آبجکتی) است، همانطور که در اسکریپت های قبلی هم دیده اید، مقدار پیش فرض آن را در هنگام تعریف به آن می دهیم. مثلا برای تعریف یک متغیر عددی با مقدار اولیه 4 در یونیتی به این شکل متغیر را تعریف می کنیم/
👇

#جاوا
var i=4;
#سی_شارپ
public int i=4;

این کار باعث می شود، i یک متغیر قابل مقدار دهی در یونیتی باشد، اما هر بار که اسکریپت را استفاده می کنیم، مقدار اولیه 4 در آن قــرار گیرد.

🔸 اما اگر متغیر مورد نظر یک متغیر از نوع آبجکتی (مثلاً Texture2D) بود، باید به این شکــل عمل کرد. (تصویر gif نیز در پست بعدی قرار خواهد گرفت)

🔹 برای این که متغیری از نوع آبجکت مثل (Transform، Texture2D و...) را بخواهیم مقدار دهی اولیه و پیش فرض کنیم، باید در پنجره Project اسکریپت را انتخاب کنیم. با این کار مشخصات اسکریپت به همراه کلیه متغیر های قابل مقدار دهی آن در پنجره Inspector نمایش داده می شود. اگر این متغیرها را در اینجا مقدار دهی کنید، این مقادیر به عنوان مقادیر پیش فرض آن اسکریپت در نظر گرفته خواهند شــد و اگر شما اسکریپت را به آبجکت های مختلف بدهید دیگر نیازی به مقدار دهی پارامتر های ورودی نیست و آن ها به طور #پیش_فرض مقدار دهی شده اند. /همانطور که تاکید شد تصویر این کار نیز در پست بعدی قـــرار خواهد گرفت.

#مقدار_دهی_اولیه_متغیر_ها_در_یونیتی
#اسکریپت_نویسی #کد_نویسی #نکته



کانال یونیتی لرنینگ
💢 @UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
مقدار دهی اولیه متغیرهای آبجکتی در یونیتی

🔹 بعد از انتخاب اسکریپت «در پنجره Project» و نمایش خصوصیات آن به این شکل پارامترهای آن را مقدار دهی کنید.

(اینجا مقدار دهی Texture2D به طور مثال)
This media is not supported in your browser
VIEW IN TELEGRAM
#آموزش ساخت نوار پیمایش برای مقدار دهی یک متغیر عددی در #یونیتی (مانند gif بالا👆 )

👈 آموزش در پست بعدی قرار خواهد گرفت.

@UnityLearning
⭕️آموزش ساخت نوار پیمایش برای مقدار دهی ساده به متغیر های عددی (int و float)

👈این کار علاوه بر سادگی باعث می شود، کاربر نتواند مقداری بیش از آنچه شما انتظار دارید به اسکریپت بدهد و باعث بروز مشکلات شود.

🔹برای اینکه برای یک متغیر عددی یک نوار پیمایش بسازیم، به شکل زیر عمل می کنیم(نام متغیر همانی اســت که در gif پست قبل قرار گرفته است/👇 ( #سی_شارپ )

[Range(0, 1000)]
public int enemyCount;

🔸دقت کنید، این دستور هم یک دستور تغییر در ساختار یونیتی یا Unity Editor اســت به همین دلیل در [] نوشته شده و آخر دستور ; (سمی کالن) ندارد. همچنین برای اینکه این نوار پیمایش برای متغیر مورد نظر باشد، باید دقیقا یک خط قبل از تعریف سراســری آن متغیر نوشته شود(دستور Range)

🔸این دستور یک نوار پیمایش از صفر تا 1000 برای مقدار دهی متغیر در یونیتی(دقیقا مطابق gif بالا) درست می کند. محل نوشتن این دستور در هنگام تعریف متغیرهای سراسری-قابل مقدار دهی در یونیتی است. (بعد از تعریف کلاس-قبل از شروع اولین تابع)

🔹برای نوشتن دستورات Unity Editor attribute در #جاوا اسکریپت نیز باید به این شکل عمل کرد که ابتدای دستور علامت @ قرار می‌گیرد و دستور در [] نخواهد بود، حالت مثال قبل در زبان جاوا به این شکل خواهد بود/👇

@Range(0,1000)
var enemyCount:int;

▫️همانطور که مشاهده می‌کنید، در جاوا هم نباید آخر دستور range سمی کالن ; گذاشت. در جاوا هم محل نوشتن دستور ابتدای اسکریپت و دقیقا یک خط قبل از متغیری است که می‌خواهیم برای آن نوار پیمایش درست کنیم.




⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
ذخیره حالت انتخاب آبجکت ها در #پنجره Hierarchy

برای اینکه نوع انتخابی که انجام می‌دهید ذخیره شود تا بعدا با یک کلیک بتوانید آن آبجکت(ها) را مجدد انتخاب کنید، از این روش استفاده کنید.

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ با انتخاب پیام هایی که در Console ظاهر می‌شود(دوبار کلیک) آبجکت تولید کننده آن پیغام(خطا، ⚠️هشدار یا 💬پیام) در #پنجره Hierarchy نمایش داده خواهد شد.

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ حذف یکی از اعضای آرایه مقدار دهی شده در یونیتی

👈بعد از انتخاب عضو آرایه کلید های Shift + Delete را بزنید تا عضو مورد نظر حذف شود و سایر اعضا به جای آن جایگزین شوند(شیفت داده شوند)

@UnityLearning
با زدن کلید Shift F می‌توانید دوربین پنجره Scene را روی آبجکت انتخاب شده قفل کنید.

(با جابجایی آبجکت دوربین هم جابجا خواهد شد)

🖱زدن کلید F فقط باعث فوکوس دوربین روی آبجکت می‌شود.

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
🎨برای اینکه یک رنگ را کپی کنید و آن را روی پارامتر دیگری قرار دهید مانند تصویر بالا عمل کنید.

Copy Paste Color

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ اگر حالت نمایش را در پنجره Scene از حالت Global به Local Mode تغییر دهید محور های حرکتی همیشه در جهت چرخش آبجکت قرار می‌گیرند(در شکل کاملا مشهود است)

@UnityLearning
animation.gif
2.5 KB
⭕️تغییر پنجره Scene از حالت Global به Local

👆با استفاده از دکمه مذکور می توانید این عمل را انجام دهید.

@UnityLearning
⭕️ #کلاس Quaternion «ادامه»

▫️با استفاده از این کلاس می‌توان اعمال مربوط به چرخش را در بازی انجام داد. بخش اول /👇

▶️ https://t.me/UnityLearning/591

🔹برای ایجاد یک بردار چرخشی از دستور euler استفاده می‌شود که البته این تابع سه پارامتر ورودی برای جهت چرخش بر می گرداند (خروجی این دستور اگر در یک بردار دیگر ضرب شود، بردار خروجی معادل چرخش بردار قبل در جهت داده داده شده می‌چرخد)

👇برای توضیح بیشتر👇

اگر بخواهیم یک بردار را نسبت به یک جهت (xyz) بچرخانیم باید آن بردار را در دستور Euler #کلاس Quarternion با پارمتر (X,Y,Z) ضرب کنیم.

👈 برای #مثال فرض کنید بخواهیم جهت بردار Direction را به میزان 45 درجه در جهت محور Y(محور سمت بالا و پایین در یونیتی) نسبت به محل جاریش بچرخانیم باید آن را در تابع Euler با پارامتر (0,45,0) ضرب کنید و نتیجه را برابر خود بردار قرار دهیم.


Direction=Quarternion.Euler(0,45,0) * Direction;

⚪️ البته باید دقت کرد که بردار Direction که از نوع Vector3 است باید برابر (0,0,0) نباشد چون در این صورت ضرب این بردار در هر چیزی برابر صفر خواهد بود.

ℹ️ در اسکریپت های آماده بعدی از این دستور برای تعیین جهت بردار بیشتر استفاده خواهیم کرد(هر چند در برخی اسکریپت های قبلی مثل ساعت نیز از آن استفاده شده است)

#اسکریپت_نویسی #کد_نویسی #ادامه #یونیتی

◀️ سایر دستورات مربوط به کلاس Quarternion به همراه اسکریپت های آماده در پست های بعدی قرار خواهد گرفت.


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ #دانلود #آبجکت این ماشین اسپورت با کیفیت بسیار عالی

👈به صورت آماده شده برای استفاده در یونیتی

🔸با فرمت FBX

(دانلود در پست بعدی)

@UnityLearning
Sport Car.7z
4.3 MB
#دانلود #آبجکت Sport Car با کیفیت بالا به همراه کلیه #تکسچر ها

🔹 آماده برای استفاده در فرمت FBX

🔸 کیفیت بسیار عالی

@UnityLearning
⭕️جابجایی و بزرگ و کوچک کردن آبجکت طبق یک مقدار خاص

🔹اگر بخواهید یک آبجکت طبق یک اصول و بر اساس مقادیر خاص در جهت های مورد نظر جابجا شود از پنجره Snap Settings  استفاده کنید، مسیر دسترسی آن از منوی Edit است.

🔸مقادیری که در این بخش وارد می‌شود، برای جابجایی آبجکت ها استفاده می‌شود.

❗️نکته مهم این است که اگر می‌خواهیم آبجکت بر اساس مقادیر Snap Settings جابجا و یا Scale شوند، باید همزمان کلید Ctrl را نیز نگهداریم. در غیر این صورت همچنان آبجکت ها مانند قبل جابجا می‌شوند.

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
🔹جابجایی آبجکت همزمان با نگهداشتن کلید Ctrl باعث اعمال تنظیمات Snap Settings  می‌شود.
(همچنین Scale کردن)

@UnityLearning
⭕️ #پنجره Snap Settings  برای تنظیم میزان جابجایی و Scale آبجکت ها در محیط Scene

👉 Edit -> Snap Settings 

@UnityLearning
⭕️ کاظمین حرم مطهر امام کاظم و امام جواد(علیهاالسلام) «هم اکنون»

⚫️سالروز شهادت امام جواد الائمه را تسلیت عرض می‌کنیم.

@UnityLearning