آموزشمرحلهبهمرحلهاستفادهاز.pdf
746 KB
⭕️ آموزش استفاده از نرم افزار Inno Setup برای ساخت فایل نصبی برای بازی های تولید شده با یونیتی
🔹آموزش قدم به قدم تصویری
به ما بپیوندید👇
@UnityLearning
🔹آموزش قدم به قدم تصویری
به ما بپیوندید👇
@UnityLearning
⭕️ نکاتی در رابطه با Transformها
#نکته های #برنامه_نویسی
🔹در صورتی که بخواهید بررسی کنید یک آبجکت (از نوع Transform) زیر مجموعه یک آبجکت دیگر است یا خیر؟ (یعنی آیا این آبجکت بچه آبجکت دیگری هست از دستور IsChildOf استفاده میکنیم /👇
var obj1:Transform;
var obj2:Transform;
if(obj1.IsChildOf (obj2)) {.....
🔸این شرط زمانی اجرا خواهد شد که در Hierarchy ، آبجکت اول (obj1) زیر مجموعه (بچه) obj2 باشد. در غیر این صورت این شرط false خواهد بود.
👈 این دستور در قسمت های خاصی از برنامه میتواند مورد استفاده قرار گیرد و کار برنامه نویسی را کاهش دهد. یک حالت و محل استفاده برای این دستور بررسی آبجکتی است که به محدوده ی کالیدر(یا trigger) یک آبجکت دیگر وارد میشود، است. گاهی خود این آبجکت مهم نیست بلکه مهم این است که پدر این آبجکت کیست، در چنین شرایطی می توان از دستور IsChildOf برای راحتی استفاده کرد.
⭕️ تغییر یا تعیین پدر یک آبجکت در کد نویسی(زمان اجرای بازی)
🔹 گاهی اوقات لازم است در کد نویسی پدر (آبجکتی که این آبجکت به آن متصل است) تغییر کند، برای اینکار از دستور بسیار کاربردی SetParent استفاده میشود، این دستور آبجکت مورد نظر را برداشته و به آبجکت دوم(که به عنوان پارامتر معرفی میشود) متصل میکند.
obj1.SetParent(obj2);
🔹در نتیجه 👈 obj1 به obj2 متصل میگردد.
▫️اگر با دستورات local که در پست های قبل بررسی شدند، کار کرده باشید، کاربرد بالای دستوراتی که در این پست بیان کردیم را کاملا ً متوجه خواهید شد و از آنها در کدهای خود استفاده خواهید کرد.
#اسکریپت_نویسی #یونیتی
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
#نکته های #برنامه_نویسی
🔹در صورتی که بخواهید بررسی کنید یک آبجکت (از نوع Transform) زیر مجموعه یک آبجکت دیگر است یا خیر؟ (یعنی آیا این آبجکت بچه آبجکت دیگری هست از دستور IsChildOf استفاده میکنیم /👇
var obj1:Transform;
var obj2:Transform;
if(obj1.IsChildOf (obj2)) {.....
🔸این شرط زمانی اجرا خواهد شد که در Hierarchy ، آبجکت اول (obj1) زیر مجموعه (بچه) obj2 باشد. در غیر این صورت این شرط false خواهد بود.
👈 این دستور در قسمت های خاصی از برنامه میتواند مورد استفاده قرار گیرد و کار برنامه نویسی را کاهش دهد. یک حالت و محل استفاده برای این دستور بررسی آبجکتی است که به محدوده ی کالیدر(یا trigger) یک آبجکت دیگر وارد میشود، است. گاهی خود این آبجکت مهم نیست بلکه مهم این است که پدر این آبجکت کیست، در چنین شرایطی می توان از دستور IsChildOf برای راحتی استفاده کرد.
⭕️ تغییر یا تعیین پدر یک آبجکت در کد نویسی(زمان اجرای بازی)
🔹 گاهی اوقات لازم است در کد نویسی پدر (آبجکتی که این آبجکت به آن متصل است) تغییر کند، برای اینکار از دستور بسیار کاربردی SetParent استفاده میشود، این دستور آبجکت مورد نظر را برداشته و به آبجکت دوم(که به عنوان پارامتر معرفی میشود) متصل میکند.
obj1.SetParent(obj2);
🔹در نتیجه 👈 obj1 به obj2 متصل میگردد.
▫️اگر با دستورات local که در پست های قبل بررسی شدند، کار کرده باشید، کاربرد بالای دستوراتی که در این پست بیان کردیم را کاملا ً متوجه خواهید شد و از آنها در کدهای خود استفاده خواهید کرد.
#اسکریپت_نویسی #یونیتی
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
#خبر
🔹در سری 5 یونیتی نسخه جدیدی ارائه شده است.
💡سایت یونیتی نسخه 5.6.3p2 را ارائه کرده است، ضمناً این نسخه در ابتدای شروع نرم افزار نیز برای آپدیت پیشنهاد می شود. در این نسخه به گفته سایت یونیتی یک سری ویژگی اندک به برنامه افزوده شده و همچنین تعداد زیادی باگ که توسط کاربران بیان شده است، رفع گردیده است.
📍به زودی و با ارائه نسخه نهایی از این شماره ، جهت دانلود در کانال قرار خواهد گرفت.
به ما بپیوندید👇
@UnityLearning
🔹در سری 5 یونیتی نسخه جدیدی ارائه شده است.
💡سایت یونیتی نسخه 5.6.3p2 را ارائه کرده است، ضمناً این نسخه در ابتدای شروع نرم افزار نیز برای آپدیت پیشنهاد می شود. در این نسخه به گفته سایت یونیتی یک سری ویژگی اندک به برنامه افزوده شده و همچنین تعداد زیادی باگ که توسط کاربران بیان شده است، رفع گردیده است.
📍به زودی و با ارائه نسخه نهایی از این شماره ، جهت دانلود در کانال قرار خواهد گرفت.
به ما بپیوندید👇
@UnityLearning
⭕️ #نکته در رابطـــه با پکیج Control Freak
🔻در زمان استفاده از پکیج پر طرف دار Control Freak لطفا به آنچه در این پست گفته می شود، هم توجه داشته باشید.
🔸پکیج Control Freak برای انجام اعمال خود کلیه اسکریپت های شما را که در آنها از دستورات Input استفاده کردید، طبق استاندارد های خود و بر اساس کلاس خود تغییر می دهد. این تغییر گاهی کدهای شما را برای استفاده در PC دچار مشکل می کند. یعنی در هنگام اجرای بازی در ویندوز خطاهایی ممکن است رخ دهد و آن هم به علت ناشناخته بودن دستورات ورودی است که Control Freak تغییر داده است. این مشکل در اجرای بازی در موبایل رخ نمی هد.
🔹توصیه ما این است ابتدا بازی خود را به طور کامل در محیط ویندوز بسازید، حتی اگر لازم هست یک Build هم از بازی داشته باشید و اگر هیج خطایی نبود، حال از #پکیج Control Freak استفاده کنید. ضمنا این پکیج در منوی اختصاصی خود یک گزینه برای برگرداندن اسکریپت ها به حالت قبل از تغییر دارد. اگر بعد از تغییر کدها خطایی رخ داد با استفاده از گزینه Restore Backuped Script می توانید اسکریپت های بازی را به حالت قبل از تبدیل برگردانید.
❗️تاکید می گردد قبل از استفاده از پکیج مذکور یک بک آپ کامل از پروژه بازی سازی خود تهیه کنید.
🔘یادآوری: پکیج Control Freak برای ایجاد کنترلهای ورودی موبایل به کار می رود و کار با آن نیاز به هیچ برنامه نویسی خاصی ندارد. (این پکیج را قبلا در کانال به طور مفصل توضیح داده ایم-با جستجوی کلمه Control Freak می توانید به مطالب و فیلم های آموزشی این پکیج دسترسی داشته باشید)
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔻در زمان استفاده از پکیج پر طرف دار Control Freak لطفا به آنچه در این پست گفته می شود، هم توجه داشته باشید.
🔸پکیج Control Freak برای انجام اعمال خود کلیه اسکریپت های شما را که در آنها از دستورات Input استفاده کردید، طبق استاندارد های خود و بر اساس کلاس خود تغییر می دهد. این تغییر گاهی کدهای شما را برای استفاده در PC دچار مشکل می کند. یعنی در هنگام اجرای بازی در ویندوز خطاهایی ممکن است رخ دهد و آن هم به علت ناشناخته بودن دستورات ورودی است که Control Freak تغییر داده است. این مشکل در اجرای بازی در موبایل رخ نمی هد.
🔹توصیه ما این است ابتدا بازی خود را به طور کامل در محیط ویندوز بسازید، حتی اگر لازم هست یک Build هم از بازی داشته باشید و اگر هیج خطایی نبود، حال از #پکیج Control Freak استفاده کنید. ضمنا این پکیج در منوی اختصاصی خود یک گزینه برای برگرداندن اسکریپت ها به حالت قبل از تغییر دارد. اگر بعد از تغییر کدها خطایی رخ داد با استفاده از گزینه Restore Backuped Script می توانید اسکریپت های بازی را به حالت قبل از تبدیل برگردانید.
❗️تاکید می گردد قبل از استفاده از پکیج مذکور یک بک آپ کامل از پروژه بازی سازی خود تهیه کنید.
🔘یادآوری: پکیج Control Freak برای ایجاد کنترلهای ورودی موبایل به کار می رود و کار با آن نیاز به هیچ برنامه نویسی خاصی ندارد. (این پکیج را قبلا در کانال به طور مفصل توضیح داده ایم-با جستجوی کلمه Control Freak می توانید به مطالب و فیلم های آموزشی این پکیج دسترسی داشته باشید)
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️روشی دیگر برای صدا زدن توابع یک اسکریپت در یک اسکریپت دیگر
📍همانطور که قبلا نیز توضیح دادیم، یکی از روش های اصلی برای صدا زدن توابع یک اسکریپت دیگر استفاده از تابع BroadcastMessage است. حالت های مختلف این دستور را به طور کامل توضیح داده ایم. حال یک روش دیگر برای اینکار توضیح داده خواهــد شد.
💡در صورتی که بخواهیم یک تابع از یک اسکریپت که به آبجکت خاصی متصل شده است را صدا بزنیم و آن را اجرا کنیم، از دستور GetComponent نـــیز می توان استفاده کرد. همانطور که می دانیم این دستور #کامپوننت خاصی از یک آبجکت را بر می گرداند. از آنجا که اسکریپت ها نیز از کامپوننت های یک آبجکت محسوب می شوند، بنابراین با این تابع (GetComponent)
می توان به اسکریپت ها دسترسی داشت. این دستور را با پارامتر ورودی نامِ اسکریپت از یک آبجکت صدا بزنیم، می توانیم در ادامه به متغیرها و توابع Public آن اسکریپت دسترسی داشت. /👇
GameObject1.GetComponent<ScriptName> ().function(inputpar);
🔹در دستور بالا اسکریپت GameObject1 نام آبجکتی است که می خواهیم توابع اسکریپتی که به آن متصل است را صدا بزنیم، است.
🔸پارامتر ScriptName نام اسکریپت مورد نظر است (بدون "")
🔹پارامتر function نام تابعی است که می خواهیم اجرا شود و inputpar نیز پارامتر های ورودیِ تابع مورد نظر است که باید به آن ارسال شود.
#سی_شارپ #اسکریپت_نویسی #یونیتی
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
📍همانطور که قبلا نیز توضیح دادیم، یکی از روش های اصلی برای صدا زدن توابع یک اسکریپت دیگر استفاده از تابع BroadcastMessage است. حالت های مختلف این دستور را به طور کامل توضیح داده ایم. حال یک روش دیگر برای اینکار توضیح داده خواهــد شد.
💡در صورتی که بخواهیم یک تابع از یک اسکریپت که به آبجکت خاصی متصل شده است را صدا بزنیم و آن را اجرا کنیم، از دستور GetComponent نـــیز می توان استفاده کرد. همانطور که می دانیم این دستور #کامپوننت خاصی از یک آبجکت را بر می گرداند. از آنجا که اسکریپت ها نیز از کامپوننت های یک آبجکت محسوب می شوند، بنابراین با این تابع (GetComponent)
می توان به اسکریپت ها دسترسی داشت. این دستور را با پارامتر ورودی نامِ اسکریپت از یک آبجکت صدا بزنیم، می توانیم در ادامه به متغیرها و توابع Public آن اسکریپت دسترسی داشت. /👇
GameObject1.GetComponent<ScriptName> ().function(inputpar);
🔹در دستور بالا اسکریپت GameObject1 نام آبجکتی است که می خواهیم توابع اسکریپتی که به آن متصل است را صدا بزنیم، است.
🔸پارامتر ScriptName نام اسکریپت مورد نظر است (بدون "")
🔹پارامتر function نام تابعی است که می خواهیم اجرا شود و inputpar نیز پارامتر های ورودیِ تابع مورد نظر است که باید به آن ارسال شود.
#سی_شارپ #اسکریپت_نویسی #یونیتی
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ آپدیت درایور کارت گرافیک
🔹برای بهره گیری از حداکثر قابلیت های کارت گرافیک خود، درایور آن را به روز رسانی کنید.
💻 بهترین روش برای آپدیت کردن درایور در لپ تاپ و PC استفاده گزینه Update در نرم افزار کارت گرافیک است که روی سیستم نصب کرده اید. البته هر سه ارائه کننده ی کارت گرافیک یعنی AMD ، nVidia و Intel آی پی های ایرانی را تحریم کرده اند که راه حل آن استفاده از فیلـــترشـکن های موجود است. روش دیگر دانلود آخرین آپدیت از درایور نیز مراجعه به سایت سازندگان و انتخاب و یا جستجوی نوع کارت گرافیک و دانلود آخرین نرم افزار موجود است(همانطور که بیان شد هر سه این سایت ها برای آی پی های ایرانی مسدود هستند)
📍سایت دانلود درایور AMD
➡️ https://goo.gl/LHmcft
🔸 بعد از مراجعه به این سایت ردیف مربوط به سری کارت گرافیک خود را پیدا کرده و طبق سیستم عاملتان دانلود کنید. (حجم این نرم افزار چیزی حدود 350 الی 450 مگابایت است)
📍سایت دانلود درایور nVIDIA
➡️ https://goo.gl/dVWTBd
🔸 با مراجعه به این سایت نوع کارت خود را وارد کنید و دانلود کنید.
📍سایت درایور کارت گرافیک Intel
➡️ https://goo.gl/VGHNJy
🔸 در اینجا هم سری کارت گرافیک خود را یافته و درایور را دانلود و نصب کنید.
🔘 به منظور بهره گیری از حداکثر انطباق برای یونیتی و کارت های گرافیکی در لپ تاپ هایی که دو کارت گرافیکی دارند، نرم افزار یونیتی را به لیست نرم افزارهای سه بعدی در تنظیمات کارت گرافیکی خود وارد کنید، این کار باعث میشود یونیتی در لپ تاپ شما با کارت گرافیکی دوم که تنها به منظور اجرای بازی های گرافیکی به کار گرفته میشود، اجرا شود.
به کانال آموزش یونیتی بپیوندید👇
@UnityLearning
🔹برای بهره گیری از حداکثر قابلیت های کارت گرافیک خود، درایور آن را به روز رسانی کنید.
💻 بهترین روش برای آپدیت کردن درایور در لپ تاپ و PC استفاده گزینه Update در نرم افزار کارت گرافیک است که روی سیستم نصب کرده اید. البته هر سه ارائه کننده ی کارت گرافیک یعنی AMD ، nVidia و Intel آی پی های ایرانی را تحریم کرده اند که راه حل آن استفاده از فیلـــترشـکن های موجود است. روش دیگر دانلود آخرین آپدیت از درایور نیز مراجعه به سایت سازندگان و انتخاب و یا جستجوی نوع کارت گرافیک و دانلود آخرین نرم افزار موجود است(همانطور که بیان شد هر سه این سایت ها برای آی پی های ایرانی مسدود هستند)
📍سایت دانلود درایور AMD
➡️ https://goo.gl/LHmcft
🔸 بعد از مراجعه به این سایت ردیف مربوط به سری کارت گرافیک خود را پیدا کرده و طبق سیستم عاملتان دانلود کنید. (حجم این نرم افزار چیزی حدود 350 الی 450 مگابایت است)
📍سایت دانلود درایور nVIDIA
➡️ https://goo.gl/dVWTBd
🔸 با مراجعه به این سایت نوع کارت خود را وارد کنید و دانلود کنید.
📍سایت درایور کارت گرافیک Intel
➡️ https://goo.gl/VGHNJy
🔸 در اینجا هم سری کارت گرافیک خود را یافته و درایور را دانلود و نصب کنید.
🔘 به منظور بهره گیری از حداکثر انطباق برای یونیتی و کارت های گرافیکی در لپ تاپ هایی که دو کارت گرافیکی دارند، نرم افزار یونیتی را به لیست نرم افزارهای سه بعدی در تنظیمات کارت گرافیکی خود وارد کنید، این کار باعث میشود یونیتی در لپ تاپ شما با کارت گرافیکی دوم که تنها به منظور اجرای بازی های گرافیکی به کار گرفته میشود، اجرا شود.
به کانال آموزش یونیتی بپیوندید👇
@UnityLearning
Rain_Maker_2D_and_3D_Rain_Particle
9.2 MB
⭕️ #پکیج ایجاد باران در بازی
Rain Maker Package
استفاده از این پکیج بسیار آسان است.
به ما بپیوندید
@UnityLearning
Rain Maker Package
استفاده از این پکیج بسیار آسان است.
به ما بپیوندید
@UnityLearning
Unity Learning
Rain_Maker_2D_and_3D_Rain_Particle
⭕️ #آموزش استفاده از پکیج عالی ایجاد باران در بازی
🔸برای ایجاد محیط بارانی برای بازی خود از این پکیج می توانید به راحتی استفاده کنید. برای این کار بعد از Import کردن پکیج به پروژه بازی خود پوشه آن به نام Rain Maker در پوشه های #پنجره Project اضافه می شود. به این مسیر بروید و در نهایت یکی از Prefab های مورد نظر را به بازی تان اضافه کنید. /👇
Rain Maker > Prefab
2️⃣ پریفاب یکی دو بعدی و دیگری سه بعدی برای استفاده در این پکیج موجود است با درگ کردن آن به محیط بازی ، باران و صدای باران در بازی ایجاد می شود.
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔸برای ایجاد محیط بارانی برای بازی خود از این پکیج می توانید به راحتی استفاده کنید. برای این کار بعد از Import کردن پکیج به پروژه بازی خود پوشه آن به نام Rain Maker در پوشه های #پنجره Project اضافه می شود. به این مسیر بروید و در نهایت یکی از Prefab های مورد نظر را به بازی تان اضافه کنید. /👇
Rain Maker > Prefab
2️⃣ پریفاب یکی دو بعدی و دیگری سه بعدی برای استفاده در این پکیج موجود است با درگ کردن آن به محیط بازی ، باران و صدای باران در بازی ایجاد می شود.
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
Zombie.unitypackage
9.8 MB
⭕️ #پکیج کاراکترهای زامبی به #درخواست کاربران کانال
🔹این پکیج شامل چند کاراکتر زامبی برای استفاده در بازی به عنوان Prefab است.
@UnityLearning
🔹این پکیج شامل چند کاراکتر زامبی برای استفاده در بازی به عنوان Prefab است.
@UnityLearning
⭕️ #دانلود #آبجکت خانه ساده برای استفاده در بازی
📍با فرمت های Obj و 3ds به صورت یکجا
🔸دانلود در پست بعدی
@UnityLearning
📍با فرمت های Obj و 3ds به صورت یکجا
🔸دانلود در پست بعدی
@UnityLearning
19lapfcihmhs_casadecampo.rar
9.8 MB
⭕️ #آبجکت خانه با کیفیت مطلوب برای ساخت شهر در محیط بازی
📍فرمت آبجکت obj و 3ds میباشد، بنابراین نصب 3D Max یا Maya برای استفاده ضروریست.
@UnityLearning
📍فرمت آبجکت obj و 3ds میباشد، بنابراین نصب 3D Max یا Maya برای استفاده ضروریست.
@UnityLearning
l1wsvpvd06ww_Residential_Buildings_Set.zip
69 MB
⭕️ #پکیج کاملی از ساختمان های اداری با کیفیت بسیار بالا
📍کلیه فرمت های تولید آبجکت در این پک موجود است.
@UnityLearning
📍کلیه فرمت های تولید آبجکت در این پک موجود است.
@UnityLearning
⭕️ بازگشت پیکر پاک و مطهر شهید مدافــع حرم را گرامی می داریم.
🔹 مراسم استقبال و تشییع پیکر پاک شهید مدافع حرم «محسن حججی» هم اکنون میدان امام حسین تهران - پخش زنده از شبکه خبر
🔸مراسم تشییع و خاک سپاری پیکر پاک شهید فردا در نجف آباد
▪️یاد و خاطره تمام شهدای راه حق را گرامـــی می داریم.
🔹 مراسم استقبال و تشییع پیکر پاک شهید مدافع حرم «محسن حججی» هم اکنون میدان امام حسین تهران - پخش زنده از شبکه خبر
🔸مراسم تشییع و خاک سپاری پیکر پاک شهید فردا در نجف آباد
▪️یاد و خاطره تمام شهدای راه حق را گرامـــی می داریم.
⭕️ نکاتی در مورد #پکیج هایی که به پروژه بازی اضافه می شود.
🔹 زمانی که یک پیکج یونیتی را به پروژه بازی خود اضافه می کنید، این پکیج در #پنجره Project و در پوشه های پروژه (Asset Folder) یک پوشه به نام خود اضافه می کند. این پوشه نیز شامل چندین فولدر دیگر است. فولدری به نام Scripts برای قرار گیری اسکریپت های لازم برای اجرای آن پکیج است. البته این اسکریپت ها، کدهای اجرایی برای آبجکت ها در زمان اجرای بازی هستند. (اجرای رفتارهای لازم برای آبجکت ها)
▫️ پوشه ای به نام Editor برای قرار گیری اسکریپت هایی که روی Unity Editor اجرا می شوند (مثل دستورات ایجاد منوی خاص در پروژه یا ایجاد تغییر در #پنجره Inspector) قبلاً این دستورات را توضیح داده ایم. کدهای این پوشه در زمان اجرای بازی اجرا نمی شوند، بلکه برای ایجاد تغییر در محیط یونیتی استفاده می شوند.
🔸 معمولاً پوشه ای هم به نام Objects یا شبیه به این اسم برای قرار گیری آبجکت های لازم برای پکیج در این پوشه نیز موجود است.
▫️پوشه مهم Prefab است که پریفاب هایی است که می توان از آنها در بازی استفاده کرد. همانطور که می دانید پریفاب همان آبجکت هایی است که به آنها ویژگی های لازم داده شده (مثل اسکریپت ها، کامپوننت هاو...) و آنها آماده برای استفاده در محیط بازی هستند و نیازی به اضافه کردن هیچ موردی را ندارند.
▪️ بنابراین برای استفاده از پکیج ها معمولا پوشه ای به نام Prefab وجـــود دارد که می توان با باز کردن آن به پریفاب های لازم برای استفاده در بازی دسترسی خواهیم داشت.
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔹 زمانی که یک پیکج یونیتی را به پروژه بازی خود اضافه می کنید، این پکیج در #پنجره Project و در پوشه های پروژه (Asset Folder) یک پوشه به نام خود اضافه می کند. این پوشه نیز شامل چندین فولدر دیگر است. فولدری به نام Scripts برای قرار گیری اسکریپت های لازم برای اجرای آن پکیج است. البته این اسکریپت ها، کدهای اجرایی برای آبجکت ها در زمان اجرای بازی هستند. (اجرای رفتارهای لازم برای آبجکت ها)
▫️ پوشه ای به نام Editor برای قرار گیری اسکریپت هایی که روی Unity Editor اجرا می شوند (مثل دستورات ایجاد منوی خاص در پروژه یا ایجاد تغییر در #پنجره Inspector) قبلاً این دستورات را توضیح داده ایم. کدهای این پوشه در زمان اجرای بازی اجرا نمی شوند، بلکه برای ایجاد تغییر در محیط یونیتی استفاده می شوند.
🔸 معمولاً پوشه ای هم به نام Objects یا شبیه به این اسم برای قرار گیری آبجکت های لازم برای پکیج در این پوشه نیز موجود است.
▫️پوشه مهم Prefab است که پریفاب هایی است که می توان از آنها در بازی استفاده کرد. همانطور که می دانید پریفاب همان آبجکت هایی است که به آنها ویژگی های لازم داده شده (مثل اسکریپت ها، کامپوننت هاو...) و آنها آماده برای استفاده در محیط بازی هستند و نیازی به اضافه کردن هیچ موردی را ندارند.
▪️ بنابراین برای استفاده از پکیج ها معمولا پوشه ای به نام Prefab وجـــود دارد که می توان با باز کردن آن به پریفاب های لازم برای استفاده در بازی دسترسی خواهیم داشت.
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ متوقف کردن اجرای بازی در محیط Editor
▫️در صورتی که بخواهید در یک زمان خاص در اسکریپت اجرای بازی متوقف شود تا بتوانید عمل تست یا به اصطلاح Trace کدها را انجام دهید، می توانید از دستور Break از کلاس Debug استفاده کنید /👇
Debug.Break();
🔸این دستور تقریبا معادل BreakPoint ساختن در برنامه نویسی است. زمانی که شما یک نقطه از کد های برنامه تان را Breakpoint میکنید، زمانی که کامپایلر به اجرای آن نقطه می رسد، برنامه را متوقف میکند و سایر دستورات بعد از آن خط نیز اجرا نمی شوند. همانطور که می دانید این نقطه تاثیری در خروجی نهایی برنامه ندارد و تنها در زمان اجرای برنامه در محیط کد نویسی (مثلا ویژوال استودیو) باعث توقف میشود.
🔹در یونیتی هم به همین شکل است زمانی که کامپایلر به خط Debug.Break میرسد ادامه اجرای بازی را متوقف میکند و در این لحظه بازی ساز میتواند اطلاعاتی که لازم دارد را مشاهده و بر اساس آنها تصمیم بگیرد.
#اسکریپت_نویسی #کد_نویسی
#برنامه #یونیتی
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
▫️در صورتی که بخواهید در یک زمان خاص در اسکریپت اجرای بازی متوقف شود تا بتوانید عمل تست یا به اصطلاح Trace کدها را انجام دهید، می توانید از دستور Break از کلاس Debug استفاده کنید /👇
Debug.Break();
🔸این دستور تقریبا معادل BreakPoint ساختن در برنامه نویسی است. زمانی که شما یک نقطه از کد های برنامه تان را Breakpoint میکنید، زمانی که کامپایلر به اجرای آن نقطه می رسد، برنامه را متوقف میکند و سایر دستورات بعد از آن خط نیز اجرا نمی شوند. همانطور که می دانید این نقطه تاثیری در خروجی نهایی برنامه ندارد و تنها در زمان اجرای برنامه در محیط کد نویسی (مثلا ویژوال استودیو) باعث توقف میشود.
🔹در یونیتی هم به همین شکل است زمانی که کامپایلر به خط Debug.Break میرسد ادامه اجرای بازی را متوقف میکند و در این لحظه بازی ساز میتواند اطلاعاتی که لازم دارد را مشاهده و بر اساس آنها تصمیم بگیرد.
#اسکریپت_نویسی #کد_نویسی
#برنامه #یونیتی
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ دستورات Try Catch برای کنترل خطا
🔸 زمانی در کد ممکن است خطاهایی رخ می دهد، این خطا ها می تواند علل بسیار مختلفی داشته باشد (مثلا تقسیم بر صفر یا هر خطای دیگری که ممکن است در زمان Runtime بازی رخ میدهد) در هنگام اجرای بازی در Editor یونیتی این خطاها در پنجره Console نمایش داده میشود(با رنگ قرمز) .
▪️ در هنگام اجرای بازی در Editor در موقع رخداد این خطاها بازی متوقف نمی شود و فقط متن خطا در کنسول نمایش داده میشود، اما اگر این خطا در هنگام اجرای بازی نهایی (مثلا در اندروید یا Pc) رخ دهد، بازی به طور کامل بسته شده و از محیط بازی خارج میشود.
▫️این مورد از مواردی است که ممکن است در کدها اتفاق بیافتد و بازی ما را با چالش روبرو میکند و این بدترین حالت ممکن برای یک بازی میتواند باشد.
❓ حال چگونه می توان از این خارج شدن در زمان رخداد خطا جلوگیری کرد؟
🔹در اکثر زبان های برنامه نویسی از جمله #جاوا و #سی_شارپ دستوری به نام Try Catch وجود دارد که برای مدیریت خطاها به کار برده میشود. اگر در دستورات از Try Catch استفاده و در این دستورات خطای کامپایلری رخ دهد، برنامه یا بازی دیگر بسته نمیشود بلکه دستوراتی که بلوک Catch نوشته شده است اجرا میشود. (به جای نقطه ها .... باید دستورات مورد نظر نوشته شود)
try
{
........
}
catch(e: Exception)
{
.......
}
👈 اگر در دستوراتی که در قسمت try نوشته میشود، خطایی رخ دهد اجرای دستورات آن قسمت متوقف شده و دستورات بخش Catch اجرا میشود. واضح است که این دستورات باید دستورات مدیریت خطا باشد که در پارامتر e قرار میگیرد. در پست های بعدی این دستورات را مفصلا مورد بررسی قرار می دهیم. این مدیریت باید توسط پارامتر e و دستورات اعلام پیغام در کلاس Debug باشد که سعی بر این است به طور کامل توضیح داده شود.
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔸 زمانی در کد ممکن است خطاهایی رخ می دهد، این خطا ها می تواند علل بسیار مختلفی داشته باشد (مثلا تقسیم بر صفر یا هر خطای دیگری که ممکن است در زمان Runtime بازی رخ میدهد) در هنگام اجرای بازی در Editor یونیتی این خطاها در پنجره Console نمایش داده میشود(با رنگ قرمز) .
▪️ در هنگام اجرای بازی در Editor در موقع رخداد این خطاها بازی متوقف نمی شود و فقط متن خطا در کنسول نمایش داده میشود، اما اگر این خطا در هنگام اجرای بازی نهایی (مثلا در اندروید یا Pc) رخ دهد، بازی به طور کامل بسته شده و از محیط بازی خارج میشود.
▫️این مورد از مواردی است که ممکن است در کدها اتفاق بیافتد و بازی ما را با چالش روبرو میکند و این بدترین حالت ممکن برای یک بازی میتواند باشد.
❓ حال چگونه می توان از این خارج شدن در زمان رخداد خطا جلوگیری کرد؟
🔹در اکثر زبان های برنامه نویسی از جمله #جاوا و #سی_شارپ دستوری به نام Try Catch وجود دارد که برای مدیریت خطاها به کار برده میشود. اگر در دستورات از Try Catch استفاده و در این دستورات خطای کامپایلری رخ دهد، برنامه یا بازی دیگر بسته نمیشود بلکه دستوراتی که بلوک Catch نوشته شده است اجرا میشود. (به جای نقطه ها .... باید دستورات مورد نظر نوشته شود)
try
{
........
}
catch(e: Exception)
{
.......
}
👈 اگر در دستوراتی که در قسمت try نوشته میشود، خطایی رخ دهد اجرای دستورات آن قسمت متوقف شده و دستورات بخش Catch اجرا میشود. واضح است که این دستورات باید دستورات مدیریت خطا باشد که در پارامتر e قرار میگیرد. در پست های بعدی این دستورات را مفصلا مورد بررسی قرار می دهیم. این مدیریت باید توسط پارامتر e و دستورات اعلام پیغام در کلاس Debug باشد که سعی بر این است به طور کامل توضیح داده شود.
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ دسترسی به رنگ های بیشتر با کلاس Color32
📍در مورد کلاس Color قبلا در کانال توضیحاتی داده شده است (پارامتر های این کلاس عددی بوده و از 0 تا 1 مقدار می گیرد و تعداد رنگ قابل نمایش این کلاس 16 بیتی است (2 به توان 16 رنگ))
📌 کلاس Color32 پارامتر هایی بین 0 تا 255 میگیرد و تعداد رنگ 32 بیتی را پشتیبانی میکند.
🔸از نظر تعداد پارامتر این کلاس دقیقا معادل کلاس Color دارای چهار پارامتر برای رنگ قرمز، آبی و سبز است و پارامتر چهارم میزان آلفا یا تیرگی رنگ است.
🔸🔶 #مثال /👇
Color32(64, 128, 192, 255);
🔹 پست های مربوط به #کلاس های Color
⬅️ معرفی کلاس Color /👇
▶️ https://t.me/UnityLearning/683
⬅️ آموزش استفاده از کلاس برای تغییر رنگ آبجکت ها /👇
▶️ https://t.me/UnityLearning/1005
〰〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
📍در مورد کلاس Color قبلا در کانال توضیحاتی داده شده است (پارامتر های این کلاس عددی بوده و از 0 تا 1 مقدار می گیرد و تعداد رنگ قابل نمایش این کلاس 16 بیتی است (2 به توان 16 رنگ))
📌 کلاس Color32 پارامتر هایی بین 0 تا 255 میگیرد و تعداد رنگ 32 بیتی را پشتیبانی میکند.
🔸از نظر تعداد پارامتر این کلاس دقیقا معادل کلاس Color دارای چهار پارامتر برای رنگ قرمز، آبی و سبز است و پارامتر چهارم میزان آلفا یا تیرگی رنگ است.
🔸🔶 #مثال /👇
Color32(64, 128, 192, 255);
🔹 پست های مربوط به #کلاس های Color
⬅️ معرفی کلاس Color /👇
▶️ https://t.me/UnityLearning/683
⬅️ آموزش استفاده از کلاس برای تغییر رنگ آبجکت ها /👇
▶️ https://t.me/UnityLearning/1005
〰〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ اسکریپت جدید برای بررسی اتصال مناسب برای دستگاه های موبایل
🔹در پست بعدی یک اسکریپت با قابلیت اعلام اتصال قرار می گیرد. یعنی این اسکریپت دو تابع کلی دارد که شما می توانید کدهایی که لازم است در زمان اتصال یا عدم اتصال به وای فای و #اینترنت اجرا شوند را وارد کنید.
☑️ خود اسکریپت اکنون تنها با #کلاس Debug این اتصال یا عدم اتصال را به بازی ساز اعلام می کند. (توابع در انتهای اسکریپت هستند و استفاده از آنها بسیار ساده است.)
🔘 این اسکریپت اتصال را با کلاس Application و متد internetReachability بررسی می کند که دستوری است جهت انجام اعمال Reach در محیط اینترنت برای یونیتی
ℹ️ دستورات جستجو یا به اصطلاح Reach در اینترنت برای علل مختلفی مورد استفاده قرار می گیرند. دستورات Ping و Tracert که در ویندوز از آنها برای بررسی اتصال استفاده می کنیم، از جمله این دستورات محسوب می شوند.
🔸🔶 اسکریپت مذکور نیز بررسی اتصال را با دستورات Ping روی آدرس pingAddress انجام می دهد. دستور Ping دستوریست که در پارامتر ورودی اش یک String به عنوان آدرس IP یا Domain Name (نام دامنه - URL) که باید به دنبال آن بگردد دریافت می کند.
✅ اسکریپت به زبان #سی_شارپ در پست بعدی برای دانلود قرار خواهد گرفت.
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔹در پست بعدی یک اسکریپت با قابلیت اعلام اتصال قرار می گیرد. یعنی این اسکریپت دو تابع کلی دارد که شما می توانید کدهایی که لازم است در زمان اتصال یا عدم اتصال به وای فای و #اینترنت اجرا شوند را وارد کنید.
☑️ خود اسکریپت اکنون تنها با #کلاس Debug این اتصال یا عدم اتصال را به بازی ساز اعلام می کند. (توابع در انتهای اسکریپت هستند و استفاده از آنها بسیار ساده است.)
🔘 این اسکریپت اتصال را با کلاس Application و متد internetReachability بررسی می کند که دستوری است جهت انجام اعمال Reach در محیط اینترنت برای یونیتی
ℹ️ دستورات جستجو یا به اصطلاح Reach در اینترنت برای علل مختلفی مورد استفاده قرار می گیرند. دستورات Ping و Tracert که در ویندوز از آنها برای بررسی اتصال استفاده می کنیم، از جمله این دستورات محسوب می شوند.
🔸🔶 اسکریپت مذکور نیز بررسی اتصال را با دستورات Ping روی آدرس pingAddress انجام می دهد. دستور Ping دستوریست که در پارامتر ورودی اش یک String به عنوان آدرس IP یا Domain Name (نام دامنه - URL) که باید به دنبال آن بگردد دریافت می کند.
✅ اسکریپت به زبان #سی_شارپ در پست بعدی برای دانلود قرار خواهد گرفت.
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
InternetChecker.cs
1.9 KB
اسکریپت آماده بررسی اتصال با دستور Ping
به زبان #سی_شارپ
به کانال یونیتی لرنینگ
بپیوندید
@UnityLearning
به زبان #سی_شارپ
به کانال یونیتی لرنینگ
بپیوندید
@UnityLearning
table1-1024x927.png
723 KB
آخرین مقایسه صورت گرفته روی شش موتور بازی سازی برتر جهان توسط سایت
gamesparks.com
یونیتی همچنان در صدر داشتن اکثر ویژگی ها قرار دارد.
به کانال یونیتی لرنینگ بپیوندید
@UnityLearnin
gamesparks.com
یونیتی همچنان در صدر داشتن اکثر ویژگی ها قرار دارد.
به کانال یونیتی لرنینگ بپیوندید
@UnityLearnin
⭕️ قابلیت های دیگر دستور Destroy
📄 همانطور که بارها در پست های قبل دستور Destroy را توضیح داده ایم، این دستور و تابع برای از بین بردن یک آبجکت در یونیتی به کــــار می رود. اما این دستور تنها برای حذف آبجکت ها به کار نمی رود، بلکه این یکی از ویژگی های آن است. دستور فوق برای حذف هر Asset در یونیتی استفاده می شود و Asset می تواند یک اسکریپت، #کامپوننت و هر چیزی که به یک آبجکت در بازی متصل شده است نیز باشد کافی است این Asset به یک نحوی برای اسکریپت تعریف شده باشد. چند حالت از این دستور در زیر بررسی شده است.
🔹حذف کامپوننت Rigidbody متصل شده به گیم آبجکت جاری (که کد به ان متصل می شود) /👇
Destroy (rigidbody);
🔸حذف یک کامپوننت خاص از یک گیم #آبجکت (Name نام کامپوننت است) /👇
Destroy(GetComponent<Name> ());
(مثال برای حالت قبل - حذف اسکریپت متصل شده به یک آبجکت به نام enemy) /👇
Destroy(enemy.GetComponent<EnemyAI> ());
🔸🔶 باید توجه داشت دستور Destroy ، آبجکت یا Asset را به طور کامل حذف می کند و دیگر مجددا قابل بازگشت و دسترسی مجدد در زمان اجرای بازی نیست، مگر به یک نحوی مجدداً با دستور Instantiate ایجاد شود. بنابراین اگر می خواهید موقتا یک #کامپوننت، اسکریپت یا هر چیزی را غیر فعال کنید و لازم بعداً دوباره فعال شود، از دستورات Active و enabled استفاده کنید.
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
📄 همانطور که بارها در پست های قبل دستور Destroy را توضیح داده ایم، این دستور و تابع برای از بین بردن یک آبجکت در یونیتی به کــــار می رود. اما این دستور تنها برای حذف آبجکت ها به کار نمی رود، بلکه این یکی از ویژگی های آن است. دستور فوق برای حذف هر Asset در یونیتی استفاده می شود و Asset می تواند یک اسکریپت، #کامپوننت و هر چیزی که به یک آبجکت در بازی متصل شده است نیز باشد کافی است این Asset به یک نحوی برای اسکریپت تعریف شده باشد. چند حالت از این دستور در زیر بررسی شده است.
🔹حذف کامپوننت Rigidbody متصل شده به گیم آبجکت جاری (که کد به ان متصل می شود) /👇
Destroy (rigidbody);
🔸حذف یک کامپوننت خاص از یک گیم #آبجکت (Name نام کامپوننت است) /👇
Destroy(GetComponent<Name> ());
(مثال برای حالت قبل - حذف اسکریپت متصل شده به یک آبجکت به نام enemy) /👇
Destroy(enemy.GetComponent<EnemyAI> ());
🔸🔶 باید توجه داشت دستور Destroy ، آبجکت یا Asset را به طور کامل حذف می کند و دیگر مجددا قابل بازگشت و دسترسی مجدد در زمان اجرای بازی نیست، مگر به یک نحوی مجدداً با دستور Instantiate ایجاد شود. بنابراین اگر می خواهید موقتا یک #کامپوننت، اسکریپت یا هر چیزی را غیر فعال کنید و لازم بعداً دوباره فعال شود، از دستورات Active و enabled استفاده کنید.
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢