📸 انواع حالتِ توابع قابل اجرا توسط یک UI Button در زمان کلیک شدن روی آن توسط کاربر
🔹توابع دارای ورودی نیز قابلیت استفاده به عنوان OnClick یک Button را دارند.
@UnityLearning
🔹توابع دارای ورودی نیز قابلیت استفاده به عنوان OnClick یک Button را دارند.
@UnityLearning
⭕ #آموزش ساخت منوی وسط بازی با کمک UI Button ها
🔸 برای یادگیری بیشتر، این آموزش را که پیشتر در کانال به صورت متنی و عکسِ آموزشی قرار گرفته بود، هم اکنون به صورت #فیلم با کیفیت Full HD نیز تهیه گردید. در این فیلم نحوۀ استفاده از UI Button ها به طور ساده و کامل شرح داده خواهد شد و می توانید به راحتی از آنها برای ساخت Start Menu ، Pause Menu و هر منوی خاصی که در بازی به آن احتیاج دارید استفاده کنید.
🔹 #دانلود فیلم آموزشی در پست بعدی/🔻
🔸 برای یادگیری بیشتر، این آموزش را که پیشتر در کانال به صورت متنی و عکسِ آموزشی قرار گرفته بود، هم اکنون به صورت #فیلم با کیفیت Full HD نیز تهیه گردید. در این فیلم نحوۀ استفاده از UI Button ها به طور ساده و کامل شرح داده خواهد شد و می توانید به راحتی از آنها برای ساخت Start Menu ، Pause Menu و هر منوی خاصی که در بازی به آن احتیاج دارید استفاده کنید.
🔹 #دانلود فیلم آموزشی در پست بعدی/🔻
آموزش ساخت منوی وسط بازی.mkv
57 MB
🎥 #فیلم آموزش ساخت منو به کمک UI Buttonها و انجام تنظیمات روی آنها
🔹فیلم با کیفیت Full HD و با کمترین حجم ممکن قرار گرفته است.
⏰ مدت زمان: 11 دقیقه
@UnityLearning
🔹فیلم با کیفیت Full HD و با کمترین حجم ممکن قرار گرفته است.
⏰ مدت زمان: 11 دقیقه
@UnityLearning
📱 راه اندازی ساخت بازی اندروید در یونیتی #جدید (خلاصه شده)
1⃣ دانلود و نصب Android SDK و JDK (کتابخانه های لازم جاوا)
2⃣ فعال سازی حالت Debugging در گوشی اندروید
(معمولا قرار گرفته در مسیر Settings > Developer options گزینه Debugging در دستگاه اندرویدی)
3⃣ اتصال گوشی با کابل به سیستم و نصب درایور مخصوص آن
4⃣ معرفی محل نصب Android SDK به یونیتی
(قابل دسترسی در Unity > Preferences > External Tools)
5⃣ نصب و راه اندازی Android NDK (نسخه های مختلف در کانال)
(معرفی NDK به یونیتی از مسیر
Unity > Preferences > External Tools)
📍توصیه همیشگیِ یونیتی نصب اندروید استودیو برای این کار است.
👉 @UnityLearning
1⃣ دانلود و نصب Android SDK و JDK (کتابخانه های لازم جاوا)
2⃣ فعال سازی حالت Debugging در گوشی اندروید
(معمولا قرار گرفته در مسیر Settings > Developer options گزینه Debugging در دستگاه اندرویدی)
3⃣ اتصال گوشی با کابل به سیستم و نصب درایور مخصوص آن
4⃣ معرفی محل نصب Android SDK به یونیتی
(قابل دسترسی در Unity > Preferences > External Tools)
5⃣ نصب و راه اندازی Android NDK (نسخه های مختلف در کانال)
(معرفی NDK به یونیتی از مسیر
Unity > Preferences > External Tools)
📍توصیه همیشگیِ یونیتی نصب اندروید استودیو برای این کار است.
👉 @UnityLearning
Unity Learning
⭕️ بازی روزهای تاریک (Dark Days) ساخته شده بر اساس گیمیفیکشن با موتور یونیتی 🔹ارائه در کانال یونیتی لرنینگ «به زودی» ⚠️ کلیه حقوق این بازی ازجمله اسم و داستان برای سازنده (محمدعلی قادری) محفوظ است.
⭕️ نسخه بتای بازی روزهای تاریک (آماده برای دانلود)
🔹بازی روزهای تاریک یک بازی ساخته شده با موتور یونیتی است که با هدف بالا بردن انگیزه افراد (اعم از بازیکنان و بازی سازان) در جهت ساخت بازی با این موتور میباشد و مبنای ساخت آن بر اساس بازی IGI (به علت معروف بودن) میباشد. بازی برای پلتفرم ویندوز در دسترس است.
🔸با توجه به اینکه هدف از ساختِ بازی این بوده که افراد با قابلیت های یونیتی آشنا شوند و اینکه بازی بر پایه بازی IGI ساخته شده میشود، یک مرحله از این بازی فعلا طراحی و در اختیار عموم قرار خواهد گرفت.
▫️ نسخه بتا از یک بازی، به معنای نسخه تست توسط جامعه هدف میباشد، یعنی افرادی که نهایتا قرار است بازیکن یک بازی باشند (از نظر سنی، فرهنگی و شخصیتی) بازی را مورد تست قرار میدهند و هرگونه مشکلی که با آن مواجه شدند را به سازندگان بازی اعلام میکنند. سپس در مرحله بعد تیم ساخت اقدام به رفع این مشکلات و نهایتا ارائه نسخه نهایی از بازی خواهند کرد.
📂 فایل نصبی بازی هم به صورت دانلود از تلگرام و هم به صورت سایت قرار خواهد گرفت. ضمنا راهنمای بازی نیز در دو فایل PDF در کنار فایل اجرایی بازی قرار خواهد گرفت.
🙏 از کلیۀ بازی سازان، بازیکنان و همراهان گرامی درخواست می شود، لطفا با دانلود و انجام این بازی و در نهایت ارسال نظرات خود ، ما را در جهت ارائه یک بازی خوب و قابل قبول توسط جامعه هدف بازی (سنین بالای 14 سال) یاری کنید.
👉 @UnityLearning
🔹بازی روزهای تاریک یک بازی ساخته شده با موتور یونیتی است که با هدف بالا بردن انگیزه افراد (اعم از بازیکنان و بازی سازان) در جهت ساخت بازی با این موتور میباشد و مبنای ساخت آن بر اساس بازی IGI (به علت معروف بودن) میباشد. بازی برای پلتفرم ویندوز در دسترس است.
🔸با توجه به اینکه هدف از ساختِ بازی این بوده که افراد با قابلیت های یونیتی آشنا شوند و اینکه بازی بر پایه بازی IGI ساخته شده میشود، یک مرحله از این بازی فعلا طراحی و در اختیار عموم قرار خواهد گرفت.
▫️ نسخه بتا از یک بازی، به معنای نسخه تست توسط جامعه هدف میباشد، یعنی افرادی که نهایتا قرار است بازیکن یک بازی باشند (از نظر سنی، فرهنگی و شخصیتی) بازی را مورد تست قرار میدهند و هرگونه مشکلی که با آن مواجه شدند را به سازندگان بازی اعلام میکنند. سپس در مرحله بعد تیم ساخت اقدام به رفع این مشکلات و نهایتا ارائه نسخه نهایی از بازی خواهند کرد.
📂 فایل نصبی بازی هم به صورت دانلود از تلگرام و هم به صورت سایت قرار خواهد گرفت. ضمنا راهنمای بازی نیز در دو فایل PDF در کنار فایل اجرایی بازی قرار خواهد گرفت.
🙏 از کلیۀ بازی سازان، بازیکنان و همراهان گرامی درخواست می شود، لطفا با دانلود و انجام این بازی و در نهایت ارسال نظرات خود ، ما را در جهت ارائه یک بازی خوب و قابل قبول توسط جامعه هدف بازی (سنین بالای 14 سال) یاری کنید.
👉 @UnityLearning
Dark_Days(Beta_v0.9).exe
531 MB
🔹نسخه بتای بازی روزهای تاریک (Dark Days) ، این بازی با هدف ایجاد انگیزه بر پایه گیمیفیکشن ساخته شده است.
🔸به منظور ارائه نظرات خود و یا دانلود از سایت Tranbit از گزینه های زیر استفاده کنید./🔻
🔸به منظور ارائه نظرات خود و یا دانلود از سایت Tranbit از گزینه های زیر استفاده کنید./🔻
Unity Learning
⭕️ استفاده از توابع و پارامترهای یک اسکریپت دیگر #ادامه [کاربرد آموزش های این پست تنها برای #سی_شارپ می باشد] 🔹 تعریف کلاس در سی شارپ با استفاده از کلمۀ class امکان پذیر است و در یونیتی هر اسکریپتی که به یک آبجکت متصل می شود، در واقع یک کلاس است. بنابراین…
⭕️ استفاده از توابع و متدهای سی شارپ در جاوا و بالعکس
🔹با دستوراتی که پیشتر در کانال برای استفاده از توابع اسکریپت های دیگر در اسکریپت جاری بیان شد، این امکان برای صدا زدن توابع نوشته به زبان جاوا در سی شارپ و یا برعکس وجود ندارد. یعنی شما نمی توانید با دستور GetComponent در سی شارپ به یک کلاس (اسکریپت) نوشته شده به زبان جاوا دسترسی داشته باشید و این باعث نمایش خطا در صفحه یونیتی می شود.
🔸یکی از راه حل های این موضوع استفاده از دستور BroadcastMessage یا SendMessage برای آبجکتی که این اسکریپت به آن متصل است، می باشد. دستور BroadcastMessage هیچگونه مشکلی با زبان برنامه نویسی نداشته و در هر شرایطی اگر تابع داده شده را پیدا کند، اجرا خواهد کرد.
📍یادآوری: نحوه استفاده از تابع BroadcastMessage به منظور صدا زدن توابع موجود در یک اسکریپت دیگر که به یک آبجکت دیگر متصل شده است، به شکل زیر است./🔻
Obj.BroadcastMessage("function_name",[parameters],[SendMessageOptions])
👈در صورتی که تابع مذکور پارامتر داشته باشد، از بخش parameter استفاده می شود و در صورتی که بخواهیم این تابع برای پاسخ تابع در همین جا صبر کند از پارامتر سوم استفاده میشود که در پست های قبل مفصل توضیح داده شده است.
@UnityLearning
🔹با دستوراتی که پیشتر در کانال برای استفاده از توابع اسکریپت های دیگر در اسکریپت جاری بیان شد، این امکان برای صدا زدن توابع نوشته به زبان جاوا در سی شارپ و یا برعکس وجود ندارد. یعنی شما نمی توانید با دستور GetComponent در سی شارپ به یک کلاس (اسکریپت) نوشته شده به زبان جاوا دسترسی داشته باشید و این باعث نمایش خطا در صفحه یونیتی می شود.
🔸یکی از راه حل های این موضوع استفاده از دستور BroadcastMessage یا SendMessage برای آبجکتی که این اسکریپت به آن متصل است، می باشد. دستور BroadcastMessage هیچگونه مشکلی با زبان برنامه نویسی نداشته و در هر شرایطی اگر تابع داده شده را پیدا کند، اجرا خواهد کرد.
📍یادآوری: نحوه استفاده از تابع BroadcastMessage به منظور صدا زدن توابع موجود در یک اسکریپت دیگر که به یک آبجکت دیگر متصل شده است، به شکل زیر است./🔻
Obj.BroadcastMessage("function_name",[parameters],[SendMessageOptions])
👈در صورتی که تابع مذکور پارامتر داشته باشد، از بخش parameter استفاده می شود و در صورتی که بخواهیم این تابع برای پاسخ تابع در همین جا صبر کند از پارامتر سوم استفاده میشود که در پست های قبل مفصل توضیح داده شده است.
@UnityLearning
⭕️ فعال و غیر فعال کردن #کامپوننت Collider
🔹در #یونیتی در صورتی که یک کامپوننت کالیدر را غیر فعال کنیم، بدین منظور است که دیگر آن جسم به چیزی برخورد نمی کند و کلیۀ کالیدرهای دیگر روی آن تأثیری نخواهند داشت. (مانند بازی GTA یا Serious Sam که با یک کد تقلب می توان کاری کرد بازیکن نسبت به محیط کالیدر نداشته باشد)
💡برای فعال/غیرفعال کردن این کامپوننت دستور زیر را استفاده خواهیم کرد./🔻
GO.GetComponent<Collider> ().enabled=true; / false ;
🔸این دستور برای هر GameObject اجرا شود، کامپوننت کالیدر آن تغییر خواهد کرد.
@UnityLearning
🔹در #یونیتی در صورتی که یک کامپوننت کالیدر را غیر فعال کنیم، بدین منظور است که دیگر آن جسم به چیزی برخورد نمی کند و کلیۀ کالیدرهای دیگر روی آن تأثیری نخواهند داشت. (مانند بازی GTA یا Serious Sam که با یک کد تقلب می توان کاری کرد بازیکن نسبت به محیط کالیدر نداشته باشد)
💡برای فعال/غیرفعال کردن این کامپوننت دستور زیر را استفاده خواهیم کرد./🔻
GO.GetComponent<Collider> ().enabled=true; / false ;
🔸این دستور برای هر GameObject اجرا شود، کامپوننت کالیدر آن تغییر خواهد کرد.
@UnityLearning
ColliderEnabled.cs
799 B
📋 اسکریپت آماده برای ایجاد حالت تغییر کالیدر متصل شده به یک آبجکت (که کد به آن متصل می شود) با زدن دکمه Space
👈 #سی_شارپ
@UnityLearning
👈 #سی_شارپ
@UnityLearning
⭕️ پیدا کردن آبجکت(ها) از روی نوع آنها
📍 در صورتی که لازم باشد، در یونیتی آبجکت ها را از روی نوعِ شان شناسایی کنیم، از دستور FindObjectOfType از #کلاس GameObject استفاده می کنیم. این دستور نیز مانند دستورات Find و FindWithTag آرایه ای از آبجکت هایی که پیدا می کند را بر می گرداند.
🔸 مثلا اگر بخواهیم همه آبجکت های دارای GUITexture را در بازی پیدا کنیم به شکل زیر عمل خواهیم کرد. /🔻
🔹 #جاوا اسکریپت /🔻
FindObjectOfType(GUITexture);
🔹 #سی_شارپ /🔻
(GUITexture)FindObjectOfType(typeof(GUITexture));
💡هر دو دستور فوق در صورتی که یک آبجکت پیدا کنند، یک متغیر را که معادل همان آبجکت است را بر می گردانند اما اگر بیش از یک آبجکت با شرایط داده شده پیدا شود، دستورات فوق آرایه ای از این آبجکت ها بر می گردانند بنابراین باید توجه گردد که خروجی دستورات فوق با متغیر یا آرایه صحیح (از نوع آن آبجکت) معادل شوند.
[علت لازم بودن تبدیل در سی شارپ دقیقا همین موضوع است چون مقدار خروجی این دو دستور در هر شرایطی ممکن است فرق کند و سی شارپ باید در هر لحظه خروجی مورد نظر ما را بداند بر عکس جاوا اسکریپت که در این طور مسائل به شکل پویا عمل می کند، در رابطه با این موضوع به طور اختصاصی در پست های بعدی مطالبی را قرار خواهیم داد]
@UnityLearning
📍 در صورتی که لازم باشد، در یونیتی آبجکت ها را از روی نوعِ شان شناسایی کنیم، از دستور FindObjectOfType از #کلاس GameObject استفاده می کنیم. این دستور نیز مانند دستورات Find و FindWithTag آرایه ای از آبجکت هایی که پیدا می کند را بر می گرداند.
🔸 مثلا اگر بخواهیم همه آبجکت های دارای GUITexture را در بازی پیدا کنیم به شکل زیر عمل خواهیم کرد. /🔻
🔹 #جاوا اسکریپت /🔻
FindObjectOfType(GUITexture);
🔹 #سی_شارپ /🔻
(GUITexture)FindObjectOfType(typeof(GUITexture));
💡هر دو دستور فوق در صورتی که یک آبجکت پیدا کنند، یک متغیر را که معادل همان آبجکت است را بر می گردانند اما اگر بیش از یک آبجکت با شرایط داده شده پیدا شود، دستورات فوق آرایه ای از این آبجکت ها بر می گردانند بنابراین باید توجه گردد که خروجی دستورات فوق با متغیر یا آرایه صحیح (از نوع آن آبجکت) معادل شوند.
[علت لازم بودن تبدیل در سی شارپ دقیقا همین موضوع است چون مقدار خروجی این دو دستور در هر شرایطی ممکن است فرق کند و سی شارپ باید در هر لحظه خروجی مورد نظر ما را بداند بر عکس جاوا اسکریپت که در این طور مسائل به شکل پویا عمل می کند، در رابطه با این موضوع به طور اختصاصی در پست های بعدی مطالبی را قرار خواهیم داد]
@UnityLearning
JavaScript_CSharp.txt
1.7 KB
📋 اسکریپت آماده برای بررسی وجود داشتن یا نداشتن آبجکت ها از یک نوع خاص به هر دو زبان ( #جاوا و #سی_شارپ ) در فایل متنی
📍بخش های لازم را از این فایل برای بازی خود بردارید.
@UnityLearning
📍بخش های لازم را از این فایل برای بازی خود بردارید.
@UnityLearning
⭕️ ارائه یونیتی اسکریپت (عنوانی برای اسکریپت نویسی در یونیتی در کنار سی شارپ)
🔹 بر خلاف نظر بسیاری از افراد که بدون اطلاع قبلی بیان می کردند، یونیتی در حال منسوخ کردن و حذف جاوا اسکریپت از زبان های مورد پشتیبانی خود است، یونیتی از زبان یونیتی اسکریپت که از نظر ساختاری دقیقا همان جاوا اسکریپت بوده اما بخش های جدید به آن اضافه خواهد شد، رونمایی می کند. جاوا اسکریپت برتری هایی نسبت به سی شارپ دارد که به هیچ عنوان نمی توان آنها را نادیده گرفت و اینکه بگوییم یونیتی به یک باره (مانند Boo Script) اقدام به حذف یک زبان می کند کاملاً اشتباه می باشد، حتی می توان گفت حالا پشتیبانی یونیتی از جاوا اسکریپت بیشتر هم می شود، چه برسد به اینکه بخواهد آن را حذف کند. باید منتظر ماند و دید یونیتی با UnityScript چه می کند و چه ویژگی های خاصی به جاوا اسکریپت برای آن اضافه خواهد کرد.
💡در انتها باید به این نکته دقت کرد، جاوا اسکریپت و یونیتی اسکریپت با هم متفاوت خواهند بود و یونیتی اسکریپت یک زبان کاملا مستقل خواهد بود اما بر پایه دستوری جاوا اسکریپت!
👈با استفاده از لینک زیر می توانید مطالب بیشتر در رابطه با جاوا اسکریپت 🆚 یونیتی اسکریپت بخوانید./🔻
https://goo.gl/jEnAuf
@UnityLearning
🔹 بر خلاف نظر بسیاری از افراد که بدون اطلاع قبلی بیان می کردند، یونیتی در حال منسوخ کردن و حذف جاوا اسکریپت از زبان های مورد پشتیبانی خود است، یونیتی از زبان یونیتی اسکریپت که از نظر ساختاری دقیقا همان جاوا اسکریپت بوده اما بخش های جدید به آن اضافه خواهد شد، رونمایی می کند. جاوا اسکریپت برتری هایی نسبت به سی شارپ دارد که به هیچ عنوان نمی توان آنها را نادیده گرفت و اینکه بگوییم یونیتی به یک باره (مانند Boo Script) اقدام به حذف یک زبان می کند کاملاً اشتباه می باشد، حتی می توان گفت حالا پشتیبانی یونیتی از جاوا اسکریپت بیشتر هم می شود، چه برسد به اینکه بخواهد آن را حذف کند. باید منتظر ماند و دید یونیتی با UnityScript چه می کند و چه ویژگی های خاصی به جاوا اسکریپت برای آن اضافه خواهد کرد.
💡در انتها باید به این نکته دقت کرد، جاوا اسکریپت و یونیتی اسکریپت با هم متفاوت خواهند بود و یونیتی اسکریپت یک زبان کاملا مستقل خواهد بود اما بر پایه دستوری جاوا اسکریپت!
👈با استفاده از لینک زیر می توانید مطالب بیشتر در رابطه با جاوا اسکریپت 🆚 یونیتی اسکریپت بخوانید./🔻
https://goo.gl/jEnAuf
@UnityLearning
📸 آبجکت UI Dropdown به منظور انتخاب یک گزینه از بین چند گزینۀ متفاوت توسط کاربرِ بازی
🔹مطالب تکمیلی در #ادامه (به مرور در پست های بعدی در Reply این پست)
🔹مطالب تکمیلی در #ادامه (به مرور در پست های بعدی در Reply این پست)
DropDown(First).pdf
440.9 KB
📂 آبجکت UI Dropdown #ادامه
💡مقدمه ای بر آبجکت شامل معرفی - بیان کلی مشخصات و رویدادها (در قالب یک فایل PDF متن و تصویر)
@UnityLearning
💡مقدمه ای بر آبجکت شامل معرفی - بیان کلی مشخصات و رویدادها (در قالب یک فایل PDF متن و تصویر)
@UnityLearning
Unity Learning via @my_btnplusbot
Dark_Days(Beta_v0.9).exe
🔹 با تشکر از همه عزیزانی که بازی Dark Days را دانلود کردند. این بازی با هدف بالا بردن انگیزۀ بازیکنان و بازی سازان برای ساخت بازی و نمایش آنچه می توان با موتور یونیتی در سبک اول شخص ساخت و به منظور «اجرا و پیاده سازی یک روش پیشنهادی برای ساخت بازی در ایران»، طراحی گردیده است. لطفاً در صورت دانلود و استفاده از بازی حتماً فرم زیر در گوگل را برای ما پر کنید و نظرات، پیشنهادات و مشکلاتی که مشاهده می کنید را به ما گزارش کنید./
💡برای تکمیل فرم نظر سنجی روی لینک زیر کلیک کنید/🔻
https://goo.gl/forms/3FJypG1jlqlg8trT2
@UnityLearning
💡برای تکمیل فرم نظر سنجی روی لینک زیر کلیک کنید/🔻
https://goo.gl/forms/3FJypG1jlqlg8trT2
@UnityLearning
UnityDownloadAssistant-5.6.4f1.exe
719.2 KB
Unity Learning
⭕ #ادامه #آموزش دستورات #کلاس Physics ℹ مطلب قبلی/👇 https://t.me/UnityLearning/466 🔙 قبلا بیان کردیم زمانی که می خواهیم یک لیزر با هر کاربردی به یک محل مستقیم شکلیک شود و دستورات Reycast کلاس Physics بهره می بریم. امروز یکی از این دستورات را با هم بررسی…
⭕️ سایر دستورات مربوط به تیر اندازی
👈 در مطلب قبلی مطالبی در مورد ارسال لیزر با استفاده از #کلاس Physics بیان گردید.
▶️ https://t.me/UnityLearning/471
🔹دستور Raycast از کلاس Physics می تواند آبجکتی که لیزر به آن برخورد می کند را در یک متغیر از نوع RaycastHit قرار می دهد. حال برای بررسی و استفاده از این متغیر چگونه می توان عمل کرد.
🔸با فرض اینکه دستور Physics.Raycast استفاده شده باشد، با if های زیر می توان بخش های مختلف آبجکت را بررسی و به آنها دسترسی داشت.
if (hit.rigidbody)
👈این شرط در صورتی اجرا خواهد شد که آبجکتی که لیزر در آن لحظه به آن برخورد می کند rigidbody داشته باشد. در این صورت مثلا اگر بخواهیم به این آبجکت نیرویی وارد شود، از دستور زیر در بدنه شرط بالا استفاده می شود.
hit.rigidbody.AddForceAtPosition
📍یادآوری: تابع فوق دو پارامتر ورودی دارد اولی بردار جهت و میزان نیرو و دومی محل دقیق وارد شدن نیرو.
🔸به منظور بدست آوردن موقعیت دقیق محل بخورد لیزر با آبجکت از دستور hit.point استفاده می شود. این دستور مانند دستور position از نوع Vector3 بوده و دقیقا موقعیت محل بخورد لیزر با آبجکت را بر می گرداند.
[در تمام دستورات بالا فرض بر این بوده که hit از نوع RaycastHit تعریف شده و تمامی دستورات بالا در شرطی با دستور Physics.Raycast نوشته خواهد شد]
@UnityLearning
👈 در مطلب قبلی مطالبی در مورد ارسال لیزر با استفاده از #کلاس Physics بیان گردید.
▶️ https://t.me/UnityLearning/471
🔹دستور Raycast از کلاس Physics می تواند آبجکتی که لیزر به آن برخورد می کند را در یک متغیر از نوع RaycastHit قرار می دهد. حال برای بررسی و استفاده از این متغیر چگونه می توان عمل کرد.
🔸با فرض اینکه دستور Physics.Raycast استفاده شده باشد، با if های زیر می توان بخش های مختلف آبجکت را بررسی و به آنها دسترسی داشت.
if (hit.rigidbody)
👈این شرط در صورتی اجرا خواهد شد که آبجکتی که لیزر در آن لحظه به آن برخورد می کند rigidbody داشته باشد. در این صورت مثلا اگر بخواهیم به این آبجکت نیرویی وارد شود، از دستور زیر در بدنه شرط بالا استفاده می شود.
hit.rigidbody.AddForceAtPosition
📍یادآوری: تابع فوق دو پارامتر ورودی دارد اولی بردار جهت و میزان نیرو و دومی محل دقیق وارد شدن نیرو.
🔸به منظور بدست آوردن موقعیت دقیق محل بخورد لیزر با آبجکت از دستور hit.point استفاده می شود. این دستور مانند دستور position از نوع Vector3 بوده و دقیقا موقعیت محل بخورد لیزر با آبجکت را بر می گرداند.
[در تمام دستورات بالا فرض بر این بوده که hit از نوع RaycastHit تعریف شده و تمامی دستورات بالا در شرطی با دستور Physics.Raycast نوشته خواهد شد]
@UnityLearning
Unity Learning
⭕️ سایر دستورات مربوط به تیر اندازی 👈 در مطلب قبلی مطالبی در مورد ارسال لیزر با استفاده از #کلاس Physics بیان گردید. ▶️ https://t.me/UnityLearning/471 🔹دستور Raycast از کلاس Physics می تواند آبجکتی که لیزر به آن برخورد می کند را در یک متغیر از نوع RaycastHit…
📸 آنچه در دستور Reycast اتفاق می افتد. دستور Distance فاصله بین دو آبجکت را بر می گرداند و نوع آن float است.
🔹ساده ترین قالب استفاده از دستور Reycast از #کلاس Physics
@UnityLearning
🔹ساده ترین قالب استفاده از دستور Reycast از #کلاس Physics
@UnityLearning
📸 #فایل Editor Log در یونیتی
🔹 با استفاده از این فایل به عوامل بسیاری مثل جزئیات حجم نهایی پروژه (مانند تصویر) - مشخصات دستگاه میزبان و... دسترسی داشته باشید.
@UnityLearning
🔹 با استفاده از این فایل به عوامل بسیاری مثل جزئیات حجم نهایی پروژه (مانند تصویر) - مشخصات دستگاه میزبان و... دسترسی داشته باشید.
@UnityLearning
Unity Learning
📸 #فایل Editor Log در یونیتی 🔹 با استفاده از این فایل به عوامل بسیاری مثل جزئیات حجم نهایی پروژه (مانند تصویر) - مشخصات دستگاه میزبان و... دسترسی داشته باشید. @UnityLearning
📸 نحوه دسترسی به Editor Log
🔸 به منظور دسترسی ساده به #فایل Editor Log که یک فایل متنی (txt) می باشد، می توانید از منوی Console استفاده کنید. فایل همیشه نمایش دهندۀ آخرین رویدادهای پروژه است.
🔸 به منظور دسترسی ساده به #فایل Editor Log که یک فایل متنی (txt) می باشد، می توانید از منوی Console استفاده کنید. فایل همیشه نمایش دهندۀ آخرین رویدادهای پروژه است.
Unity Learning
📸 #فایل Editor Log در یونیتی 🔹 با استفاده از این فایل به عوامل بسیاری مثل جزئیات حجم نهایی پروژه (مانند تصویر) - مشخصات دستگاه میزبان و... دسترسی داشته باشید. @UnityLearning
⭕️ راهکار هایی مهم در جهت کاهش حجم پروژه
👈 همانطور که در تصویر مشاهده می کنید، بیشترین حجم یک پروژه Build شده را #تکسچر ها و Mesh ها اشغال می کنند. البته این موضوع کاملاً طبیعی است، هر آنچه در بازی دیده می شود، همین تکسچرها ، Meshها و انیمیشن ها هستند.
💡 برای کاهش حجم این موارد یونیتی قابلیت های بسیار خوبی را ارائه کرده است. قابلیت Mesh Compression برای کاهش Mesh مربوط به آبجکت ها و قابلیت Compression برای کاهش حجم تکسچرها با حفظ کیفیت آنها.
🔸زمانی که یک آبجکت به بازی خود اضافه می کنید و آن را در پنجره Project انتخاب می نمایید، مشخصات آن در Inspector نمایش داده می شود. گزینۀ Mesh Compression برای کاهش حجم Mesh مربوط به آبجکت به کار می رود، بنابراین می توانید آن را روی یکی از گزینه های Low برای فشرده سازی کم Medium متوسط و High برای انجام بیشترین میزان فشرده سازی ممکن انتخاب کنید.
🔹برای کاهش حجم تکسچرها نیز بخش Compression بعد از انتخاب عکس(تکسچر) در پنجره Inspector تعبیه شده است.
📍این عملیات به نظر ساده تاثیر بسیار زیادی در حجم نهایی پروژه شما خواهند داشت.
@UnityLearning
👈 همانطور که در تصویر مشاهده می کنید، بیشترین حجم یک پروژه Build شده را #تکسچر ها و Mesh ها اشغال می کنند. البته این موضوع کاملاً طبیعی است، هر آنچه در بازی دیده می شود، همین تکسچرها ، Meshها و انیمیشن ها هستند.
💡 برای کاهش حجم این موارد یونیتی قابلیت های بسیار خوبی را ارائه کرده است. قابلیت Mesh Compression برای کاهش Mesh مربوط به آبجکت ها و قابلیت Compression برای کاهش حجم تکسچرها با حفظ کیفیت آنها.
🔸زمانی که یک آبجکت به بازی خود اضافه می کنید و آن را در پنجره Project انتخاب می نمایید، مشخصات آن در Inspector نمایش داده می شود. گزینۀ Mesh Compression برای کاهش حجم Mesh مربوط به آبجکت به کار می رود، بنابراین می توانید آن را روی یکی از گزینه های Low برای فشرده سازی کم Medium متوسط و High برای انجام بیشترین میزان فشرده سازی ممکن انتخاب کنید.
🔹برای کاهش حجم تکسچرها نیز بخش Compression بعد از انتخاب عکس(تکسچر) در پنجره Inspector تعبیه شده است.
📍این عملیات به نظر ساده تاثیر بسیار زیادی در حجم نهایی پروژه شما خواهند داشت.
@UnityLearning