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
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
🌀ترتیب قرار گیری آبجکت های UI برای نمایش در Canvas به همان ترتیبی است که در Hierarchy قرار گرفته اند.

🎦 یعنی اگر یک آبجکت در Hierarchy از همه بالا باشد در Canvas هم روی سایر آبجکت ها خواهد بود.
Rain_AI.unitypackage
916.2 KB
⭕️ #دانلود #پکیج Rain برای ساخت آبجکت های هوش مصنوعی با حداقل و یا بدون کد نویسی

🔹پکیج برای ساخت کاراکتر های هوش مصنوعی ساخته شده است.

@UnityLearning
🎨 #تکسچر بسیار عالی و با کیفیت برای استفاده در زیر آب دریا(کنار ساحل)

🔹 برای استفاده از این تکسچر از یک Plan دقیقا زیر Water خود استفاده کنید و Plan را متناسب با Water بزرگ کنید.

@UnityLearning
🔰 نکته برنامه نویسی

در کلاس Input برای بدست آوردن کلید های زده شده یک راه استفاده از دستورات مستقیم است و یک راه استفاده از دستورات سطح بالا یعنی مثلا شما می توانید بنویسید/

if(Input.GetMouseButtonDown(0))

👈 که فقط و فقط زمانی true خواهد شد که در بازی روی کلید چپ ماوس کلیک شود. اما می توانید سطح دستورات خود را بالا ببرید و بنویسید/👇

if(Input.GetButton("Fire1"))

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

🔹 همین حالت برای کلیدهای جهتی وجود دارد. زمــانی که شما بنویسید/👇

Input.GetAxis("Vertical");

🔸 این کد برگرداننده جهت انتخاب شده عمودی (یعنی بالا و پایین) است برای پایین -1 و برای بالا 1 را بر می گرداند زمانی که هیچ کدام از این کلیدها هم کلیک نشده باشد 0 یا False برگردانده می شود. حال زمانی که شما به این ترتیب کد بنویسید علاوه بر کلید های جهتی صفحه کلید(که هم می تواند WASD باشد و هم Arrowkey) در دسته های بازی هم اگر کلید های جهتی فشار داده شده باشند، همین مقادیر بر می گردد. این دستورات همگی در تنظیمات بازی Input Setting موجود است و شما می توانید آن ها را از حالت پیشفرض(آنچه تاکنون گفته شده است) تغییر دهید.

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


کانال یونیتی لرنینگ
💢 @UnityLearning💢
⭕️دسترسی به نام یک گیم آبجکت

🔸به منظور دسترسی به نام یک آبجکت (پارامتر Name در #پنجره Inspector که از Hierarchy هم قابل تنظیم است) از پارامتر name مربوط به یک GameObject استفاده می‌شود. به طور مثال کد زیر نام نام گیم آبجکتی که کد به آن متصل شده است را بر می‌گرداند/👇

transform.gameObject.name

🔹خروجی پارامتر name از نوع رشته ای String می‌باشد.

▫️هم چنین کد زیر نام آبجکت پدر گیم آبجکتی که کد به آن متصل شده است را بر می‌گرداند(منظور از پدر آبجکت، آبجکتی است که این آبجکت در Hierarchy به آن متصل شده است و اگر به آبجکتی متصل نباشد پدر یک آبجکت خودش است)

transform.parent.gameObject.name;

#اسکریپت_نویسی #کد_نویسی #سی_شارپ #جاوا #یونیتی #آبجکت




⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢