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

▪️ @UnityLearning ▫️

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

@UnityLearning_Admin

🔹 کد شامد /👇

1-1-3526-61-3-1

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

@UnityLearning_Ads

لینک گروه تبادل نظر اعضای کانال
@UnityLearning_Group
Download Telegram
#دانلود #آبجکت فشنگ اسلحه

🔹 با قابلیت تغییر رنگ (بدون #تکسچر)

🔸 با فرمت های مختلف به خصوص FBX و همچنین Prefab شده در یونیتی

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

@UnityLearning
bullet.7z
302.5 KB
#آبجکت تیر اسلحه (Bullet) به صورت Prefab شده برای استفاده در اسکریپت تیر اندازی (Shoot)

🔹 بدون #تکسچر برای انتخاب رنگ مورد نظر

@UnityLearning
🎨 تنظیم رنگ برای آبجکت هایی که به صورت تک رنگ استفاده می‌شوند.

👈به عنوان material برای #کامپوننت Renderer آبجکت

#آموزش تصویری

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
The Uncertain: The
Last Quiet Day

🎦 #تریلر بازی با کیفیت عالی

🔸بازی ساخته شده با #یونیتی برای ویندوز، iOS و اندروید

📅 انتشار نهایی: سپتامبر 2016

@UnityLearning
اسکریپت آماده برای تیر اندازی (جدید)

🔹 اسکریپتی که بتوان از آن برای تیر اندازی سلاح هایی که تیر آنها دیده می شوند، در کانال قبلاً با عنوان Shoot قـــرار گرفته است. اکنون اسکریپت دیگری قرار می گیرد که این کار را به صورت دقیق تر و بهینه تر انجام می دهد. این دستور تیر را ایجاد کرده و با دستور Velocity آن را پرتاب می کند.

توضیح پارامتر های ورودی تابع

🔸 پارامتر اول Bullet است، که همان تیر یا فشنگی است که شلیک می شود. شما باید به این تیر #کامپوننت Rigidbody و Collider بدهید. ابتدا کالیدر آن را به درستی تنظیم کنید (به پست، با موضوع چرخش کالیدر مراجعه کنید) سپس در تنظیمات #کامپوننت Rigidbody سعی کنید وزن (Mass) کـــمی برای تیر اندازی انتخاب کنید، همچنین آن را نسبت به جاذبه نگهدارید(Use Gravity=false) با این کار جاذبــه تاثیری روی آبجکت تیر نخواهد داشت. اکنون می توانید اسکریپت نابود شدن نیز به این آبجکت بدهید (آبجکت تیر زمانی که به سایر اشیا برخورد می کند باید نابود شود) این اسکریپت نیز با عنوان Explo در پست های قبل کانال موجود است و همچنین در پست های بعدی اسکریپت دیگری برای آن قرار می دهیم و در انتهای این پست در مورد آن توضیح می دهیم (بنابراین توجه کنید قبل از ایجاد Prefab این اسکریپت را حتما به تیر بدهید)

👈 اکنون از تیر یک Prefab بسازید و آن را به عنوان پارامتر Bullet به اسکریپت تیر اندازی بدهید.

🔹 پارامتر دوم برای فاصله بین تیر هاست آن را روی حالت مناسب برای اسلحه خود قرار دهید مثلا اگر سلاح شما کلت کمری است روی 0.5 یا 1 ثانیه قرار دهید و اگر تیر بار (مثل کلاشینکف) است روی 0.2 یا 0.1 قرار دهید. هیچگاه آن را روی 0 قرار ندهید چون تیر ها به هم برخورد می کنند.

کار تمام است و اگر این اسکریپت را به آبجکتی که به اسلحه شما متصل شده است و دقیقاً مقابل لوله آن قرار گرفته بدهید با عمل فشردن کلیک راست ماوس اسلحه تیر اندازی می کند.

راجع به اسکریپت دوم

🔸 این اسکریپت را تغییر دادیم تا یک ایده جالب از دستورات تغییر رنگ ایجاد کنیم. این اسکریپت با برخورد به هر سطحی (که کالیدر داشته باشد) بعد از گذشت نیم ثانیه آبجکت را حذف می کند، اما کار اصلی که در این اسکریپت انجام شده است این است که تیر به هر آبجکت دارای تگ "Object" برخورد کند، رنگ آن را تغییر می دهد. بنابراین شما به هر آبجکتی که تگ آن "Object" باشد تیر انــدازی کنید، آن آبجکت رنگ عوض می کند. (کار اصلی که باید انجام شود کاهش جان است می توانید مثل قبل تغییر را در اسکریپت بدهید)

🔹 بنابراین اسکریپت دوم را قبل از Prefab کــردن به آبجکت تیر بدهید و سپس از آن Prefab بسازید.

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


کانال یونیتی لرنینگ
💢 @UnityLearning💢
Shoot_Bullet.js
803 B
اسکریپت آماده تیر اندازی در سلاح هایی که تیر آن ها دیده می شود.

برای تیر از آبجکت فشتگ که در کانال قــرار دادیم، استفاده کنید.

@UnityLearning
ChangeColorInCollision.js
375 B
اسکریپت آماده تغییر رنگ آبجکت های دارای تگ Object در هنگام برخورد تیر (Bullet) با آن ها
این اسکریپت همچنین آبجکت تیر را در هنگام برخورد حذف می کند.

@UnityLearning
آموزش استفاده از اسکریپت های تیر اندازی

👆 بالا نحوه استفاده از اسکریپت اول

👇 پایین ایجاد پریفاب تیر

@UnityLearning
⭕️ #آبجکت مسیر و جاده مسابقه

🔹بسیار عالی برای ساخت بازی های مسابقه‌ای ماشین سواری

📍فرمت فایل blend

⬇️ #دانلود در پست بعدی

@UnityLearning
7qz4e7jqw7wg_RaceTrack.zip
4.8 MB
⭕️ #دانلود #آبجکت مسیر مسابقه

🔹ساخته شده با بلندر و قابلیت تغییر مسیر در بلندر

(به همراه کلیه تکسچر ها و استفاده مستقیم در یونیتی)

@UnityLearning
⭕️ اگر می‌خواهید اسکریپت دارای توابع OnTrigger.... برای یک آبجکت اجرا شود باید حتما گزینه Is Trigger #کامپوننت Collider را بزنید.

محدوده کالیدر به عنوان Trigger در نظر گرفته شده و توابع مذکور می‌شود.
⭕️ بازکردن سایت در بازی

🔹اگر به هر دلیل می‌خواهید یک سایت در زمان اجرای بازی باز شود(مثلا برای تبلیغات یا معرفی) می‌توانید از #کلاس Application با متد زیر استفاده کنید/👇

Application.OpenURL("http://unity3d.com/");

🔸به طور #مثال این دستور سایت یونیتی را در محل مورد نظر و در مرورگر پیش فرض سیستم باز می‌کند.

▫️این دستور می‌تواند در رویداد OnClick یکی از دکمه های منوی بازی و یا در محلی خاص در بازی اجرا شود.

#اسکریپت_نویسی #کد_نویسی #یونیتی #آموزش


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ تغییر متدی که در زمان On Click توسط یک UI Button اجرا می‌شود، در کد نویسی یا زمان اجرای بازی

▫️آموزش اسکریپت نویسی در پست بعدی

@UnityLearning
⭕️ تغییر در توابعی که که توسط Button و در زمان کلیک شدن اجرا می‌شوند.

▪️برای اینکه یک تابع(متد) به رویداد OnClick یک Button اضافه کنیم، در #برنامه #یونیتی مانند تصویر قبل عمل می کردیم. اما اگر بخواهیم این کار را در کد نویسی انجام دهیم، باید چکار کنیم؟

👈هر Burton که تعریف می‌شود یک رویداد یا بهتر بگوئیم پارامتر به نام onClick دارد، این پارامتر معادل لیست توابعی است که باید توسط Event System یونیتی در زمان فشرده شدن Button توسط کاربر اجرا شود.

▫️برای اضافه کردن یک متد جدید به این لیست از دستور AddListener استفاده می‌شود و این تابع نام متدی که می خواهیم به عنوان متد جدید در Button شناخته شود را به عنوان ورودی می‌گیرد.

🔹برای مثال دستور زیر را در نظر بگیرید/👇

btn.onClick.AddListener(TaskOnClick);

🔰این دستور تابع TaskOnClick که در همین اسکریپت باید تعریف شده باشد را به عنوان یک متد OnClick برای دکمه btn تعریف می‌کند و هر آنچه در آن تابع از اسکریپت نوشته شده باشد در زمان کلیکِ کاربر روی دکمه اجرا می‌شود.

❗️تذکر مهم: منظور از btn در اسکریپت بالا #کامپوننت Button است، یعنی کامپوننتی که به عنوان یک تنظیم کننده به دکمه اصلی داده شده است، برای بدست آوردن آن در کد نویسی می‌توان از دستور زیر استفاده کرد. (فرض کنید myButton نام آبجکت UI است که در یونیتی باید مقدار دهی شود)

var btn: Button = myButton.GetComponent.<Button>();

🔹اکنون میتوان از پارامتر onClick مربوط به btn استفاده کرد.

⭕️برای راهنمایی ساخت اسکریپت/👇

🔸زمانی که می‌خواهید یک اسکریپت بنویسید که در آن تابعی داشته باشید که در هنگام کلیک شدن روی یک Button اجرا شود، باید برای آن اسکریپت یک پارامتر ورودی مثل زیر برای Button تعریف کنید و آن را به اسکریپت بدهید(در یونیتی)

var myButton: Button;

🔹سپس از آن در اسکریپت استفاده کنید به طور مثال در تابع Start متد مورد نظرتان را به Button تعریف شده معرفی کنید(با دستوراتی که توضیح داده شد) و درنهایت هم می‌توانید برای اجرای این اسکریپت آن را به یک گیم آبجکت خالی و یا خود Button بدهید.

#اسکریپت_نویسی #جاوا


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
آمار کلی از سخت افزار ها و سیستم عامل های استفاده کننده از یونیتی طی 2016-2017

🔹 مرجع: سایت یونیتی

@UnityLearning
UnityWebPlayer64.exe
1.1 MB
⭕️ شبیه ساز Web Player یونیتی

🔹برای ویندوز های 64 بیتی

🔸ساخت بازی های تحت وب در یونیتی

@UnityLearning
webplayer_mini.dmg
4.9 MB
⭕️ شبیه ساز Web Player یونیتی

🔹برای سیستم عامل مک

🔸ساخت بازی های تحت وب در یونیتی

@UnityLearning
⚫️ فرا رسیدن سالروز شهادت حضرت امام محمد باقر علیه السلام را به تمام شیعیان و دل دادگان اهل بیت تسلیت عرض می‌کنیم.

▪️◾️◼️السلام علیک یا باقر العلوم ◼️◾️▪️

@UnityLearning
master.zip
68.1 MB
⭕️ #پکیج پیشنهاد کلمات در برنامه نویسی برای یونیتی « #تست_نشده»

📍پشتیبانی سه زبان( #سی_شارپ، #جاوا و بو اسکریپت) و قابل استفاده روی یونیتی 5.6 به بالا

🔸نام پکیج
🔹Unity Completions

@UnityLearning
⭕️ استفاده از دستور Time.deltaTime

🔸دستور دلتا تایم از #کلاس Time برگرداننده اختلاف زمانی بین تابع FixedUpdate و Update است، به این معنی که اگر بخواهیم در تابع Update یک کار (معمولا کار های حرکتی و چرخشی) بر اساس زمان دقیق تکرار شود باید خروجی آن را در دستور فوق ضرب کنیم. این دستور عددی بین صفر و یک بر می گرداند و باعث می‌شود عمل شما دقیقا بر واحد زمان اجرا شود. از این دستور در اسکریپت های کانال بسیار استفاده کرده ایم.

🔹به طور #مثال دستور زیر آبجکتی که کد به آن داده شده است را در واحد زمان به سمت بالا جابجا می‌کند./👇

transform.position += Vector3.up * Time.deltaTime;

👈اگر به جای Time.deltaTime از یک عدد مثلا 10 استفاده می کردیم یعنی در هر بار تکرار تابع Update ـ ۱۰ واحد آبجکت بالا رود و به علت اینکه سرعت تکرار تابع Update یکسان نیست این جابجایی به صورت مطلوب انجام نمی شد(چون سرعت در سیستم ها و محل های مختلف متفاوت بود) اما استفاده از این دستور ( Time.deltaTime) بسیار می‌تواند کارساز باشد و باعث دقیق شدن عملیات در بازی شود. بنابراین همیشه برای انجام عملیاتی مثل حرکت و چرخش آبجکت ها حتماً از دستور Time.deltaTime به صورت ضرب در خروجی دستور استفاده کنید.

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


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

🔹برای بررسی تگ اختصاص داده شده به یک آبجکت دو روش وجود دارد که ما از روش اول زیاد در اسکریپت ها استفاده کرده ایم.

روش اول) بررسی تگ با استفاده از خصوصیت tag همه آبجکت ها(transform) در یونیتی دارای خصوصیتی به نام tag هستند که میتوان به کمک آن تگ یک آبجکت را تعیین کرد یا آن را بدست آورد.

🔸قرار دادن تگ پلیر روی آبجکت/👇
transform.tag = "Player";
🔸بررسی تگ آبجکت که پلیر هست یا خیر؟ /👇
if (transform.tag == "Player")

روش دوم) استفاده از دستور و تابع CompareTag است، این تابع بررسی می‌کند تگ یک آبجکت آنچه در ورودی تابع داده شده هست یا خیر؟ /👇

if (transform.CompareTag ("Player"))

🔹این دستور دقیقا معادل همان دستور قبل است و هیچ تفاوتی نمی کند.

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

❗️ضمناً تأکید می‌گردد کلیه آبجکت ها در یونیتی دارای تگ هستند آنهایی که هنوز برای آنها تگ خاصی تعریف نکرده ایم دارای تگ به نام Untagged هستند. دقت کنید Untagged به معنای این نیست که آبجکت تگ ندارد بلکه نام یک تگ است که یونیتی به طور پیش فرض به تمام آبجکت ها می‌دهد.


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