⭕دسترسی به انواع داده ای کلاس ها در یونیتی
(معرفی دستور typeof در سی شارپ)
◀ همانطور که می دانید یک #کلاس برای ارائه یک نوع داده ای با ویژگی های جدید ساخته می شود. مثلاً کلاس integer برای تعریف اعداد صحیح ارائه شده و شما می توانید از آن متغیر هایی تعریف کنید. یا به طور مثلا کلاس Transform یک نوع داده ای است که خصوصیت های Transform را به کد نویسی اضافه می کند و باعث می شود بتوانیم در کدها متغیر هایی از نوع آبجکت تعریف کنیم.
⬅ حال برای دسترسی به نوع این کلاس ها در دستوراتی مثل (Resource.Load که در پست قبلی توضیح کامل داده شد) باید بتوانیم نوع این کلاس ها را از نظر برنامه نویسی به دستور معرفی کنیم.
🔹 در #جاوا این کار ساده است کافی است نام کلاس را به بدون هیچ کار اضافی به دستور بدهیم. مثال برای نوع داده GameObject در دستور Resource.Load /👇
Resources.Load("File", GameObject)
👈 در #سی_شارپ برای این کار یک دستور وجود دارد به نام typeof که از آن برای معرفی نوع داده ای یک #کلاس استفاده می شود. در واقــع این دستور نوع داده ای کلاسی که در پارامتر آن داده شده است را بر می گرداند. مثال سی شارپ برای حالت بالا /👇
Resources.Load("File", typeof(GameObject))
🔸 البته در سی شارپ باید برای دستورات انتسابی به متغیر ها از دستور as هم استفاده کرد. به حالت زیر توجه کنید /👇
GameObject Obj ;
Obj =Resources.Load("File", typeof(GameObject)) as GameObject;
🔹 برای این انتساب (دادن خروجی دستور Load به متغیر Obj) در #سی_شارپ باید از کلمه as برای تبدیل نهایی استفاده کرد. اگر کلمه as نوشته شود عمل تبدیل انجام نمی شود و با خطا مواجه خواهید شد.
#اسکریپت_نویسی #جاوا
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
(معرفی دستور typeof در سی شارپ)
◀ همانطور که می دانید یک #کلاس برای ارائه یک نوع داده ای با ویژگی های جدید ساخته می شود. مثلاً کلاس integer برای تعریف اعداد صحیح ارائه شده و شما می توانید از آن متغیر هایی تعریف کنید. یا به طور مثلا کلاس Transform یک نوع داده ای است که خصوصیت های Transform را به کد نویسی اضافه می کند و باعث می شود بتوانیم در کدها متغیر هایی از نوع آبجکت تعریف کنیم.
⬅ حال برای دسترسی به نوع این کلاس ها در دستوراتی مثل (Resource.Load که در پست قبلی توضیح کامل داده شد) باید بتوانیم نوع این کلاس ها را از نظر برنامه نویسی به دستور معرفی کنیم.
🔹 در #جاوا این کار ساده است کافی است نام کلاس را به بدون هیچ کار اضافی به دستور بدهیم. مثال برای نوع داده GameObject در دستور Resource.Load /👇
Resources.Load("File", GameObject)
👈 در #سی_شارپ برای این کار یک دستور وجود دارد به نام typeof که از آن برای معرفی نوع داده ای یک #کلاس استفاده می شود. در واقــع این دستور نوع داده ای کلاسی که در پارامتر آن داده شده است را بر می گرداند. مثال سی شارپ برای حالت بالا /👇
Resources.Load("File", typeof(GameObject))
🔸 البته در سی شارپ باید برای دستورات انتسابی به متغیر ها از دستور as هم استفاده کرد. به حالت زیر توجه کنید /👇
GameObject Obj ;
Obj =Resources.Load("File", typeof(GameObject)) as GameObject;
🔹 برای این انتساب (دادن خروجی دستور Load به متغیر Obj) در #سی_شارپ باید از کلمه as برای تبدیل نهایی استفاده کرد. اگر کلمه as نوشته شود عمل تبدیل انجام نمی شود و با خطا مواجه خواهید شد.
#اسکریپت_نویسی #جاوا
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⭕️ #آبجکت کمد و تخت خواب
📍برای استفاده در اتاق
🔹با فرمت FBX و Blend آماده جهت استفاده
@UnityLearning
👇دانلود در پست بعدی👇
📍برای استفاده در اتاق
🔹با فرمت FBX و Blend آماده جهت استفاده
@UnityLearning
👇دانلود در پست بعدی👇
⭕ باز کردن محتویات سایت ها در بازی
(دریافت اطلاعات از اینترنت برای استفاده در بازی)
🔹 حال که نحوه باز کردن فایل ها به عنوان آبجکت (مثل عکس، فیلم و...) را از منابع سیستم بیان کردیم، جای آن است که نحوه دسترسی و لود کردن از اینترنت را آموزش دهیم. این کار از یک حالت ساده شروع می شود که قصد داریم در این پســـت توضیح دهیم/👇
✅ عمل کار با اینترنت در یونیتی توسط کلاسی به نام WWW انجام می شود(کلیه حروف بزرگ) بنابراین برای دریافت اطلاعات یک آدرس اینترنتی (URL) از دستورات این #کلاس استفاده می کنیم.
◀ دریافت اطلاعات یک URL در ابتدای تعریف متغیر از این کلاس به شکل زیر انجام می شود (به این کار یعنی مقدار دهی اولیه متغیر از کلاس Constructor گفته می شود)/👇
#جاوا /👇
var net: WWW = new WWW(url);
#سی_شارپ /👇
WWW net= new WWW(url);
yield return net;
👈فرض کنید net نام متغیر است، با این کار اطلاعات کلی url داده شده در متغیر قرار می گیرد. بنابراین url نیز از نوع رشته String بوده و حاوی آدرس معتبر یک سایت اینترنتی است. مثلا
url="https://google.com";
ℹ حال این متغیر (net) دارای اطلاعات خاصی است مثلا اگر URL عکس باشد با پارامتر زیر می توان به این تکسچر دسترسی داشت./👇
net.texture;
🔸 یا با پارامتر text می توان به اطلاعات متنی سایت دسترسی داشت/👇
net.text;
⬅ خروجی این دستور از نوع رشته بوده و حاوی تمام متن های یک صفحه اینترنتی است.
▫ در کلاس WWW یک سری متد برای بررسی برخی مسائل ارائه شده است. مثلا پارامتـــر error که اگـــر دریافت اطلاعات با مشکلی مواجه شود خطای تولید شده در این پارامتر قرار می گیرد./👇
net.error;
👈 اگـــر دریافتِ اطلاعات، بدون مشکل انجام شود این پارامتر برابر null یا "" خواهد بود.
🔸 همچنین پارامتر isDone برای تایید نهایی دانلود انجام می شود. اگر دانلود به صورت کامل و بدون مشکل انجام شود این پارامتر (که از جنس Boolean است) برابر
ـ true می شود. بهترین محل برای استفاده از این دستور برای شرط حلقه هاست یعنی دانلود تا زمانی که تمام نشده کاری انجام نشود و اگر دانلود تمام شد ( net.isDone==true) عمل های بعدی صورت گیرد.
🔹 سایر دستورات تکمیلی مربوط به دسترسی به اینترنت در بازی های یونیتی را در پست های آتی بررسی می کنیم.
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
(دریافت اطلاعات از اینترنت برای استفاده در بازی)
🔹 حال که نحوه باز کردن فایل ها به عنوان آبجکت (مثل عکس، فیلم و...) را از منابع سیستم بیان کردیم، جای آن است که نحوه دسترسی و لود کردن از اینترنت را آموزش دهیم. این کار از یک حالت ساده شروع می شود که قصد داریم در این پســـت توضیح دهیم/👇
✅ عمل کار با اینترنت در یونیتی توسط کلاسی به نام WWW انجام می شود(کلیه حروف بزرگ) بنابراین برای دریافت اطلاعات یک آدرس اینترنتی (URL) از دستورات این #کلاس استفاده می کنیم.
◀ دریافت اطلاعات یک URL در ابتدای تعریف متغیر از این کلاس به شکل زیر انجام می شود (به این کار یعنی مقدار دهی اولیه متغیر از کلاس Constructor گفته می شود)/👇
#جاوا /👇
var net: WWW = new WWW(url);
#سی_شارپ /👇
WWW net= new WWW(url);
yield return net;
👈فرض کنید net نام متغیر است، با این کار اطلاعات کلی url داده شده در متغیر قرار می گیرد. بنابراین url نیز از نوع رشته String بوده و حاوی آدرس معتبر یک سایت اینترنتی است. مثلا
url="https://google.com";
ℹ حال این متغیر (net) دارای اطلاعات خاصی است مثلا اگر URL عکس باشد با پارامتر زیر می توان به این تکسچر دسترسی داشت./👇
net.texture;
🔸 یا با پارامتر text می توان به اطلاعات متنی سایت دسترسی داشت/👇
net.text;
⬅ خروجی این دستور از نوع رشته بوده و حاوی تمام متن های یک صفحه اینترنتی است.
▫ در کلاس WWW یک سری متد برای بررسی برخی مسائل ارائه شده است. مثلا پارامتـــر error که اگـــر دریافت اطلاعات با مشکلی مواجه شود خطای تولید شده در این پارامتر قرار می گیرد./👇
net.error;
👈 اگـــر دریافتِ اطلاعات، بدون مشکل انجام شود این پارامتر برابر null یا "" خواهد بود.
🔸 همچنین پارامتر isDone برای تایید نهایی دانلود انجام می شود. اگر دانلود به صورت کامل و بدون مشکل انجام شود این پارامتر (که از جنس Boolean است) برابر
ـ true می شود. بهترین محل برای استفاده از این دستور برای شرط حلقه هاست یعنی دانلود تا زمانی که تمام نشده کاری انجام نشود و اگر دانلود تمام شد ( net.isDone==true) عمل های بعدی صورت گیرد.
🔹 سایر دستورات تکمیلی مربوط به دسترسی به اینترنت در بازی های یونیتی را در پست های آتی بررسی می کنیم.
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⭕اسکریپت آماده برای باز و بسته شدن درب های بزرگ
🔸 یک اسکریپت بسیار کاربردی برای شبیه سازی حالت باز و بسته شدن درب های بزرگ (مثل درب آشیانه هواپیما یا درب یک مکانیکی) که به صورت بالا ⬆ و پایین ⬇ رونده باز و بسته شود، را تهیه و آماده کردیم. هدف از این اسکریپت ایجاد حرکت در یک جهت خاص (مثلا برای بالا و پایین رفتن محور y) است.
🔹 این اسکریپت به شکل کاملا کاربردی نوشته شده است و کلیه چک های لازم در آن انجام می شود و نکته مهم این که این اسکریپت را به ساده ترین زبان ممکن طراحی کردیم.
👈 تست هایی که اسکریپت انجام می دهد از این قرار است، ابتدا بررسی می کند فردی که به درب نزدیک شده (در واقع وارد محدوده Trigger شــده) آیا Player است (با بررسی تگ ها) در صورتی که این طور بود درب را باز می کند. همچنین این اسکریپت صبر می کند تا عمل باز و بسته شدن درب کامل انجام شود و سپس عمل بعدی را انجام می دهد (یعنی کاربر نمی تواند به طور همزمان مدام کلید E را فشار دهد تا درب بالا و پایین شود) زمانی که درب بسته است با فشردن کلید E درب باز می شود و تا زمانی که به طور کامل باز نشده عمل دیگری انجام نمی شود و بر عکس اگر درب باز است اسکریپت با فشردن کلید E درب را پایین آورده و آن را می بنند.
🔹 دقت کنید اعداد تنظیمی این اسکریپت را باید بر اساس نیاز تان تغییر دهید (این اسکریپت فرض می کند پایین تر حالت برای درب قرار گیری y برابر 2 است و بالاترین عدد نیز 15 است مسلما در بازی شما این اعداد متفاوت است که باید آنها را حلقه های While تغیـــیر دهید.
⬅ برای تست این اسکریپت از یک Cube به عنوان درب استفاده کنید، به آن Trigger بدهید، تگ بازیکن خود را روی Player تنظیم کنید و اسکریپت را نیز به Cube بدهید. خواهید دید Cube بین yهای 2 تا 15 جابجا می شود و اگر Cube شما مانند درب طراحی شده باشد این کار عمل باز و بسته شدن درب را برایتان انجام می دهد.
❗ در پایان تاکید می گردد، Trigger این درب را باید کاملاً صحیح تنظیم کنید تا زمانی که درب بالا می رود پلیر از محدوده آن خارج نشود، زیرا در این صــورت دیگر با فشردن مجدد کلید E درب بسته نمی شود، زیرا Player دیگر در محدوده Trigger نیست.
#اسکریپت_نویسی #کد_نویسی #جاوا #سی_شارپ
⬇ #دانلود اسکریپت در پست بعدی⬇
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
🔸 یک اسکریپت بسیار کاربردی برای شبیه سازی حالت باز و بسته شدن درب های بزرگ (مثل درب آشیانه هواپیما یا درب یک مکانیکی) که به صورت بالا ⬆ و پایین ⬇ رونده باز و بسته شود، را تهیه و آماده کردیم. هدف از این اسکریپت ایجاد حرکت در یک جهت خاص (مثلا برای بالا و پایین رفتن محور y) است.
🔹 این اسکریپت به شکل کاملا کاربردی نوشته شده است و کلیه چک های لازم در آن انجام می شود و نکته مهم این که این اسکریپت را به ساده ترین زبان ممکن طراحی کردیم.
👈 تست هایی که اسکریپت انجام می دهد از این قرار است، ابتدا بررسی می کند فردی که به درب نزدیک شده (در واقع وارد محدوده Trigger شــده) آیا Player است (با بررسی تگ ها) در صورتی که این طور بود درب را باز می کند. همچنین این اسکریپت صبر می کند تا عمل باز و بسته شدن درب کامل انجام شود و سپس عمل بعدی را انجام می دهد (یعنی کاربر نمی تواند به طور همزمان مدام کلید E را فشار دهد تا درب بالا و پایین شود) زمانی که درب بسته است با فشردن کلید E درب باز می شود و تا زمانی که به طور کامل باز نشده عمل دیگری انجام نمی شود و بر عکس اگر درب باز است اسکریپت با فشردن کلید E درب را پایین آورده و آن را می بنند.
🔹 دقت کنید اعداد تنظیمی این اسکریپت را باید بر اساس نیاز تان تغییر دهید (این اسکریپت فرض می کند پایین تر حالت برای درب قرار گیری y برابر 2 است و بالاترین عدد نیز 15 است مسلما در بازی شما این اعداد متفاوت است که باید آنها را حلقه های While تغیـــیر دهید.
⬅ برای تست این اسکریپت از یک Cube به عنوان درب استفاده کنید، به آن Trigger بدهید، تگ بازیکن خود را روی Player تنظیم کنید و اسکریپت را نیز به Cube بدهید. خواهید دید Cube بین yهای 2 تا 15 جابجا می شود و اگر Cube شما مانند درب طراحی شده باشد این کار عمل باز و بسته شدن درب را برایتان انجام می دهد.
❗ در پایان تاکید می گردد، Trigger این درب را باید کاملاً صحیح تنظیم کنید تا زمانی که درب بالا می رود پلیر از محدوده آن خارج نشود، زیرا در این صــورت دیگر با فشردن مجدد کلید E درب بسته نمی شود، زیرا Player دیگر در محدوده Trigger نیست.
#اسکریپت_نویسی #کد_نویسی #جاوا #سی_شارپ
⬇ #دانلود اسکریپت در پست بعدی⬇
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
OpenDoor_Ashiane.js
728 B
⭕ اسکریپت آماده برای باز و بسته شدن درب
🔹 درب هایی که به شکل بالا و پایین باز و بسته می شوند.
🔴 کلیه حقوق آموزش های یونیتی لرنینگ محفوظ است.
@UnityLearning
🔹 درب هایی که به شکل بالا و پایین باز و بسته می شوند.
🔴 کلیه حقوق آموزش های یونیتی لرنینگ محفوظ است.
@UnityLearning
⭕️ #آبجکت تونل برای استفاده در راهها به همراه کف خیابان (Road)
🛣 با فرمت Fbx آماده جهت استفاده
آبجکت Tunnel ➕ Road
👇 #دانلود در پست بعدی👇
@UnityLearning
🛣 با فرمت Fbx آماده جهت استفاده
آبجکت Tunnel ➕ Road
👇 #دانلود در پست بعدی👇
@UnityLearning
jwdyrb0rpkow_Tunnel.rar
2 MB
🛣 #دانلود #آبجکت لازم برای ساخت تونل در جاده ها
📍برای بیشتر شدن طول تونل آبجکت را Scale نکنید، بلکه Duplicate کنید و آنرا پشت سر هم تکرار کنید.
@UnityLearning
📍برای بیشتر شدن طول تونل آبجکت را Scale نکنید، بلکه Duplicate کنید و آنرا پشت سر هم تکرار کنید.
@UnityLearning
DownloadTexture.js
467 B
⭕ اسکریپت آماده دانلود یک تکسچر دو بعدی از اینترنت و اختصاص آن به عنوان #تکسچر به یک آبجکت(که کد را به آن متصل شده است)
🔴 اسکریپت ویرایش شده👇
https://t.me/UnityLearning/1098
@UnityLearning
🔴 اسکریپت ویرایش شده👇
https://t.me/UnityLearning/1098
@UnityLearning
⭕ دریافت اطلاعات از اینترنت #ادامه
⬅ با توجه به استقبال بالای کاربران از آمــوزش اتصال بازی به اینترنت، این آموزش ادامه پیدا می کند.
▫ با توجه به مطـــالب قبلی، ادامه دستورات کلاس WWW را به این شرح توضیح می دهیم/👇 (با فــرض اینکه همچنان net از نوع WWW اســت)
🔹با دستــور progress می توان میزان دانلود را بررسی نمود، این متغیر float از 0 تا یک است و اگر برابر 1.0 شود یعنی دانلود به طور کامل صورت گرفته، بنابراین اگر می خواهید میزان دانلود شما به صورت درصدی نمایش داده شود، این متغیر را در 100 ضرب کنید./👇
net.progress;
🔸با #تابع Dispose می توان جلوی دانلود را گــرفت. اگر به هر دلیل لازم بود دانلود دیگر انجام نشود با این دستور می توان دانلود را متوقف کرد. /👇
net.Dispose();
👈 با دستور uploadProgress می توان به میزان آپلود دسترسی داشت، دستورات ارسال اطلاعات به اینترنت (در قالب فرم) را در پســت های بعدی قـــرار خواهیم داد، دستور uploadProgress مقدار اطلاعات آپلود شده در سرور را نمایش می دهد. (این دستور مانند progress اســـت)
#اسکریپت_نویسی #یونیتی #اینترنت
〰〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⬅ با توجه به استقبال بالای کاربران از آمــوزش اتصال بازی به اینترنت، این آموزش ادامه پیدا می کند.
▫ با توجه به مطـــالب قبلی، ادامه دستورات کلاس WWW را به این شرح توضیح می دهیم/👇 (با فــرض اینکه همچنان net از نوع WWW اســت)
🔹با دستــور progress می توان میزان دانلود را بررسی نمود، این متغیر float از 0 تا یک است و اگر برابر 1.0 شود یعنی دانلود به طور کامل صورت گرفته، بنابراین اگر می خواهید میزان دانلود شما به صورت درصدی نمایش داده شود، این متغیر را در 100 ضرب کنید./👇
net.progress;
🔸با #تابع Dispose می توان جلوی دانلود را گــرفت. اگر به هر دلیل لازم بود دانلود دیگر انجام نشود با این دستور می توان دانلود را متوقف کرد. /👇
net.Dispose();
👈 با دستور uploadProgress می توان به میزان آپلود دسترسی داشت، دستورات ارسال اطلاعات به اینترنت (در قالب فرم) را در پســت های بعدی قـــرار خواهیم داد، دستور uploadProgress مقدار اطلاعات آپلود شده در سرور را نمایش می دهد. (این دستور مانند progress اســـت)
#اسکریپت_نویسی #یونیتی #اینترنت
〰〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⭕ دریافت اطلاعات از اینترنت #نکته
👈 همانطور که در اسکریپت قرار داده شده در کانال مشاهده می کنید، این اسکریپت تصویر را به عنوان تکسچر نمایش نمی دهد. اما علت چیست؟ با این مثال می خواهیم کاربرد صحیح دستور isDone را بیان کنیم.
🔸 علت این مشکل این است که ما در همان لحظه که متغیر را از کلاس WWW می سازیم می خواهیم از تکسچر آن استفاده کنیم، این یعنی هنوز تصویری/ یا هر چیزی، دانلود نشده است و ما به اسکریپت می گوییم، تکسچر را نمایش بده.
🔹 همانطور که قبلا ذکر کردیم دستور isDone زمانی true می شود که دانلود محتویات سایت به طور کامل در متغیر انجام شده است، بنابراین اگـــر ما در اسکریپت تا زمانی که isDone بــرابر true شد تاخیر ایجاد کنیم و سپس دستورات انتساب تکسچر را انجام دهیم، این مشکل حل می شود. به علت اینکه دستور isDone از نوع boolean اســـت بنابراین بهترین راه برای ایجاد تاخیر استفاده از حلقه While است به شکل زیر/👇
while(!www.isDone);
👈 این دستور اجرای اسکریپت را تا زمانی که صفحه اینترنتی کاملا دانلود نشده است در همین خط متوقف می کند. اسکریپت ویرایش شده در پست بعدی قرار می گیرد، این اسکریپت تکسچری را که از URL دانلود می کند به آبجکتی که کد به آن متصل شده است می دهد. URL یک متغیر رشته ای سراسری است که می توانید سایت مورد نظر را در آن وارد کنید.
#اسکریپت_نویسی #اینترنت #جاوا #سی_شارپ
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
👈 همانطور که در اسکریپت قرار داده شده در کانال مشاهده می کنید، این اسکریپت تصویر را به عنوان تکسچر نمایش نمی دهد. اما علت چیست؟ با این مثال می خواهیم کاربرد صحیح دستور isDone را بیان کنیم.
🔸 علت این مشکل این است که ما در همان لحظه که متغیر را از کلاس WWW می سازیم می خواهیم از تکسچر آن استفاده کنیم، این یعنی هنوز تصویری/ یا هر چیزی، دانلود نشده است و ما به اسکریپت می گوییم، تکسچر را نمایش بده.
🔹 همانطور که قبلا ذکر کردیم دستور isDone زمانی true می شود که دانلود محتویات سایت به طور کامل در متغیر انجام شده است، بنابراین اگـــر ما در اسکریپت تا زمانی که isDone بــرابر true شد تاخیر ایجاد کنیم و سپس دستورات انتساب تکسچر را انجام دهیم، این مشکل حل می شود. به علت اینکه دستور isDone از نوع boolean اســـت بنابراین بهترین راه برای ایجاد تاخیر استفاده از حلقه While است به شکل زیر/👇
while(!www.isDone);
👈 این دستور اجرای اسکریپت را تا زمانی که صفحه اینترنتی کاملا دانلود نشده است در همین خط متوقف می کند. اسکریپت ویرایش شده در پست بعدی قرار می گیرد، این اسکریپت تکسچری را که از URL دانلود می کند به آبجکتی که کد به آن متصل شده است می دهد. URL یک متغیر رشته ای سراسری است که می توانید سایت مورد نظر را در آن وارد کنید.
#اسکریپت_نویسی #اینترنت #جاوا #سی_شارپ
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
DownloadTexture.js
382 B
⭕ اسکریپت ویرایش شده برای «دانلود #تکسچر از اینترنت» و انتساب آن به آبجکتی که کد را به آن متصل کرده ایم.
🔹 به همراه دستور While بــرای ایجاد تاخیر
@UnityLearning
🔹 به همراه دستور While بــرای ایجاد تاخیر
@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ #آموزش حذف Splash ابتدایی بازی
👈ـSplash همان فیلم کوتاه معرفی بازی است که پیش فرض آرم یونیتی را نمایش می دهد.
#درخواست
@UnityLearning
👈ـSplash همان فیلم کوتاه معرفی بازی است که پیش فرض آرم یونیتی را نمایش می دهد.
#درخواست
@UnityLearning
Unity Learning
OpenDoor_Ashiane.js
OpenDoor_LeftRight.js
839 B
⭕️اسکریپت آماده برای باز و بسته شدن درب هایی که به صورت چپ و راستی باز بسته می شوند.
🔹این اسکریپت مانند اسکریپت قبل است با برخی تفاوت ها که در پست بعدی بیان خواهد شد.
@UnityLearning
🔹این اسکریپت مانند اسکریپت قبل است با برخی تفاوت ها که در پست بعدی بیان خواهد شد.
@UnityLearning
⭕ روش دیگــری برای انجام اعمالی که باید با نزدیک شدن به آبجکت ها انجام گیرد (غیر از روش وقت گیر Trigger)
🔹 در روش های قبل برای انجام این گونه اعمال (مثل باز کردن درب) از Trigger ها استفاده می شد که هم درد سر ساز و هم طراحی آن کمی سخت بود. البته در همینجا خاطر نشان می شود، برخی اعمال باید توسط Trigger انجام شود و جایگزین ندارد. مثل حالت سوار شدن به ماشین که فقط باید زمانی رخ دهد که کاربر در محل مورد نظر ما قـــرار گرفته است.
🔸 برای اعمال دیــگری مثل همین موضوع باز و بسته کردن درب ها روش دیگری ارائه می شود(که در اسکریپت پست قبل مشهود است) و آن محاسبه فاصله آبجکت تا Player است. اگر اسکریپت بتواند به آبجکت Player دسترسی داشته باشد و فاصله او تا درب را محاسبه کند می توانیم با دستور if کاری کنیم هر گاه این فاصله کمتر از یک حد معمول شد، و کلید مورد نظر فشار داده شد، عمل انجام شود. مثلاً درب باز یا بسته شود و یا آژیر خطر فعال شود.
(این روش در اسکریپت کاملا انجام شده است و کلیه دستورات نیز در کانال توضیح داده شده است، برای بدست آوردن آبجکت
ـ Player از دستور FindWithTag استفاده شده است و برای محاسبه فاصلــه از Distance)
👈 دقت کنید این روش برای بازی های چند نفری یا بازی هایی که در یک آن چند Player دارد غیر قابل انجام است و تنها در بازی هایی قابل پیاده سازی است که در آن در حل لحظه تنها یک Player وجود دارد. بنابراین برای انجام اینگونه موارد (انجام عمل در بازی های چند نفری) تنها راه استفاده از Trigger هاست.
✅ مزیت این روش ساده بودن آن است، شما اسکریپتی که نوشتید را به هر آبجکت مشابهی بدهید عمل بدون مشکل انجام می شود، بدون اینکه لازم باشد به آبجکت Trigger بدهید.
❎ عیب این روش اجرای همیشگی اسکریپت است و اگر تعداد عمل ها (مثلا تعداد درب ها) زیاد باشد، سرعت اجرای بازی کاهش میابد چون تمام اسکریپت ها همیشه در حال محاسبه فاصله دو آبجکت هستند و هیچگاه متوقف نمی شوند. اما استفاده از روش Trigger باعث می شود اسکریپت تنها زمانی اجــرا شود که کاراکتر (Player) وارد محدوده شده و در خارج آن هیچ کدی اجرا نمی شود.
#اسکریپت_نویسی #کد_نویسی #جاوا #باز_و_بسته_شدن_درب
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
🔹 در روش های قبل برای انجام این گونه اعمال (مثل باز کردن درب) از Trigger ها استفاده می شد که هم درد سر ساز و هم طراحی آن کمی سخت بود. البته در همینجا خاطر نشان می شود، برخی اعمال باید توسط Trigger انجام شود و جایگزین ندارد. مثل حالت سوار شدن به ماشین که فقط باید زمانی رخ دهد که کاربر در محل مورد نظر ما قـــرار گرفته است.
🔸 برای اعمال دیــگری مثل همین موضوع باز و بسته کردن درب ها روش دیگری ارائه می شود(که در اسکریپت پست قبل مشهود است) و آن محاسبه فاصله آبجکت تا Player است. اگر اسکریپت بتواند به آبجکت Player دسترسی داشته باشد و فاصله او تا درب را محاسبه کند می توانیم با دستور if کاری کنیم هر گاه این فاصله کمتر از یک حد معمول شد، و کلید مورد نظر فشار داده شد، عمل انجام شود. مثلاً درب باز یا بسته شود و یا آژیر خطر فعال شود.
(این روش در اسکریپت کاملا انجام شده است و کلیه دستورات نیز در کانال توضیح داده شده است، برای بدست آوردن آبجکت
ـ Player از دستور FindWithTag استفاده شده است و برای محاسبه فاصلــه از Distance)
👈 دقت کنید این روش برای بازی های چند نفری یا بازی هایی که در یک آن چند Player دارد غیر قابل انجام است و تنها در بازی هایی قابل پیاده سازی است که در آن در حل لحظه تنها یک Player وجود دارد. بنابراین برای انجام اینگونه موارد (انجام عمل در بازی های چند نفری) تنها راه استفاده از Trigger هاست.
✅ مزیت این روش ساده بودن آن است، شما اسکریپتی که نوشتید را به هر آبجکت مشابهی بدهید عمل بدون مشکل انجام می شود، بدون اینکه لازم باشد به آبجکت Trigger بدهید.
❎ عیب این روش اجرای همیشگی اسکریپت است و اگر تعداد عمل ها (مثلا تعداد درب ها) زیاد باشد، سرعت اجرای بازی کاهش میابد چون تمام اسکریپت ها همیشه در حال محاسبه فاصله دو آبجکت هستند و هیچگاه متوقف نمی شوند. اما استفاده از روش Trigger باعث می شود اسکریپت تنها زمانی اجــرا شود که کاراکتر (Player) وارد محدوده شده و در خارج آن هیچ کدی اجرا نمی شود.
#اسکریپت_نویسی #کد_نویسی #جاوا #باز_و_بسته_شدن_درب
〰〰〰〰〰〰〰
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⭕️ انجام اعمال مربوط به ماتریس ها
📟 گاهی اوقات در ساخت بازی لازم است به محاسبات ماتریسی دسترسی داشته باشیم. همانطور که برای انجام اعمال ریاضی از mathf استفاده میشود، برای انجام اعمال ماتریسی از #کلاس Matrix4x4 استفاده میشود. این کلاس کلیه محاسبات لازم ماتریسی را انجام میدهد(البته ماتریس 4 در 4)
💡این گونه محاسبات در اعمال حرکتی و چرخشی(Vector3 و Quarternion) بسیار مورد استفاده قرار میگیرند.
📍به طور #مثال با دستور determinant دترمینان یک متغیر که از نوع ماتریسی است را بر می گرداند. این متغیر (دترمینان) از نوع float است.
▫️برای محاسبه معکوس یک ماتریس نیز از inverse استفاده میشود که خروجی آن از نوع ماتریسی است (Matrix4x4)
🔜 در سایر پست ها نحوه کار با متغیر های ماتریسی را بیشتر بررسی خواهیم کرد.
#اسکریپت_نویسی #جاوا #یونیتی #ماتریس
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
📟 گاهی اوقات در ساخت بازی لازم است به محاسبات ماتریسی دسترسی داشته باشیم. همانطور که برای انجام اعمال ریاضی از mathf استفاده میشود، برای انجام اعمال ماتریسی از #کلاس Matrix4x4 استفاده میشود. این کلاس کلیه محاسبات لازم ماتریسی را انجام میدهد(البته ماتریس 4 در 4)
💡این گونه محاسبات در اعمال حرکتی و چرخشی(Vector3 و Quarternion) بسیار مورد استفاده قرار میگیرند.
📍به طور #مثال با دستور determinant دترمینان یک متغیر که از نوع ماتریسی است را بر می گرداند. این متغیر (دترمینان) از نوع float است.
▫️برای محاسبه معکوس یک ماتریس نیز از inverse استفاده میشود که خروجی آن از نوع ماتریسی است (Matrix4x4)
🔜 در سایر پست ها نحوه کار با متغیر های ماتریسی را بیشتر بررسی خواهیم کرد.
#اسکریپت_نویسی #جاوا #یونیتی #ماتریس
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🚀 #آبجکت موشک هوا به هوا
🛩 قابل استفاده برای موشک هواپیما های جنگی
⚜فرمت های مختلف آبجکت در دسترس است.
🔰دانلود در پست بعدی🔰
@UnityLearning
🛩 قابل استفاده برای موشک هواپیما های جنگی
⚜فرمت های مختلف آبجکت در دسترس است.
🔰دانلود در پست بعدی🔰
@UnityLearning
i19xown45atc_AIM120DMissile.rar
10.2 MB
⭕️ #آبجکت آماده برای موشک هواپیما های جنگی
AIM-120D Missile
🔹با فرمت های مختلف 3ds fbx obj و...
@UnityLearning
AIM-120D Missile
🔹با فرمت های مختلف 3ds fbx obj و...
@UnityLearning
🔴 #خبر مهم
🔹وزیر ارتباطات: در مورد بازی نهنگ آبی اطلاع رسانی کنید، بازی چالش نهنگ آبی به ایران نمیآید.
🐳 نهنگ آبی بازیی که در سال 2013 ارائه شد یک بازی چالش بر انگیز است که در کشور های خاصی عرضه شد. در این بازی از شما یک سری عمل خواسته شده و شما باید آنرا در طول روز یا شب انجام دهید. مثلا از شما می خواهد با چاقو🔪 روی دست خود یک شکل بکشید و سپس باید از طرح خود عکس بگیرید تا به مرحله بعد بروید. این بازی که باعث تاثیر گذاری شدید روی روح و روان بازی کنان می شود در مراحل پایانی خواستار خودکشی ☠ افراد میگردد. اصلا نام بازی از همین موضوع گرفته شده و اشاره به خودکشی نهنگ ها دارد.
✅ لطفا این مطلب را #انتشار_دهید تا دیگران نیز از ماهیت این بازی با خبر شوند.
@UnityLearning
🔹وزیر ارتباطات: در مورد بازی نهنگ آبی اطلاع رسانی کنید، بازی چالش نهنگ آبی به ایران نمیآید.
🐳 نهنگ آبی بازیی که در سال 2013 ارائه شد یک بازی چالش بر انگیز است که در کشور های خاصی عرضه شد. در این بازی از شما یک سری عمل خواسته شده و شما باید آنرا در طول روز یا شب انجام دهید. مثلا از شما می خواهد با چاقو🔪 روی دست خود یک شکل بکشید و سپس باید از طرح خود عکس بگیرید تا به مرحله بعد بروید. این بازی که باعث تاثیر گذاری شدید روی روح و روان بازی کنان می شود در مراحل پایانی خواستار خودکشی ☠ افراد میگردد. اصلا نام بازی از همین موضوع گرفته شده و اشاره به خودکشی نهنگ ها دارد.
✅ لطفا این مطلب را #انتشار_دهید تا دیگران نیز از ماهیت این بازی با خبر شوند.
@UnityLearning
⭕️باز شدن صفحه کلید لمسی در بازی
⌨ در یونیتی برای باز شدن صفحه کلید لمسی گوشی های موبایل از کلاس TouchScreenKeyboard استفاده میشود، این کلاس با توجه به نوع سیستم عامل گوشی (یعنی iOS ، #اندروید ، ویندوز فون و...) صفحه کلید مورد نظر را باز میکند. برای باز شدن صفحه کلید از دستور Open استفاده میشود. این دستور پارامتر های بسیاری دارد که دو پارامتر اول از همه مهمتر هستند.
🖱پارامتر اول متن اولیه برای ویرایش است (یعنی این کیبورد به طور پیش فرض یک متن را به بازی (محل نوشتن) ارسال میکند معمولا این پارامتر خالی است ( "" )
💡پارامتر دوم نوع صفحه کلید است، مثلا صفحه کلید عددی گوشی یا صفحه کلید متنی و... این پارامتر ورودی های بسیاری دارد که همه آنها را در یک اسکریپت آماده قرار میدهیم تا آنها را مشاهده کنید. به طور مثال اگر بخواهیم صفحه کلید عددی گوشی باز شود دستورات زیر را مینویسیم/👇
var keyboard: TouchScreenKeyboard;
keyboard = TouchScreenKeyboard.Open("", TouchScreenKeyboardType.NumberPad);
(ابتدا یک متغیر از کلاس تعریف کرده و سپس آنرا برابر دستور Open قرار میدهیم)
📍 #کلاس TouchScreenKeyboard دستورات بسیاری برای بهره گیری از حداکثر قابلیت های صفحه کلید گوشی ها دارد که در پست های بعدی توضیح داده خواهد شد.
🔘 اسکریپت انواع حالات صفحه کلید که این کار را توسط انتخاب دکمه ها انجام میدهد(یعنی شما در ابتدا یکی از دکمه ها را انتخاب کنید و صفحه کلید مورد نظر باز شود) در پست بعدی قرار خواهد گرفت.
👈 #ادامه_دارد
#اسکریپت_نویسی #جاوا #یونیتی #صفحه_کلید
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⌨ در یونیتی برای باز شدن صفحه کلید لمسی گوشی های موبایل از کلاس TouchScreenKeyboard استفاده میشود، این کلاس با توجه به نوع سیستم عامل گوشی (یعنی iOS ، #اندروید ، ویندوز فون و...) صفحه کلید مورد نظر را باز میکند. برای باز شدن صفحه کلید از دستور Open استفاده میشود. این دستور پارامتر های بسیاری دارد که دو پارامتر اول از همه مهمتر هستند.
🖱پارامتر اول متن اولیه برای ویرایش است (یعنی این کیبورد به طور پیش فرض یک متن را به بازی (محل نوشتن) ارسال میکند معمولا این پارامتر خالی است ( "" )
💡پارامتر دوم نوع صفحه کلید است، مثلا صفحه کلید عددی گوشی یا صفحه کلید متنی و... این پارامتر ورودی های بسیاری دارد که همه آنها را در یک اسکریپت آماده قرار میدهیم تا آنها را مشاهده کنید. به طور مثال اگر بخواهیم صفحه کلید عددی گوشی باز شود دستورات زیر را مینویسیم/👇
var keyboard: TouchScreenKeyboard;
keyboard = TouchScreenKeyboard.Open("", TouchScreenKeyboardType.NumberPad);
(ابتدا یک متغیر از کلاس تعریف کرده و سپس آنرا برابر دستور Open قرار میدهیم)
📍 #کلاس TouchScreenKeyboard دستورات بسیاری برای بهره گیری از حداکثر قابلیت های صفحه کلید گوشی ها دارد که در پست های بعدی توضیح داده خواهد شد.
🔘 اسکریپت انواع حالات صفحه کلید که این کار را توسط انتخاب دکمه ها انجام میدهد(یعنی شما در ابتدا یکی از دکمه ها را انتخاب کنید و صفحه کلید مورد نظر باز شود) در پست بعدی قرار خواهد گرفت.
👈 #ادامه_دارد
#اسکریپت_نویسی #جاوا #یونیتی #صفحه_کلید
〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
Touch_Screen_Keyboard.js
1.7 KB
⭕️ اسکریپت آماده باز شدن صفحه کلید لمسی
🔹نمایش انواع صفحه کلید لمسی با انتخاب توسط کاربر
🔸خروجی فقط در موبایل ها قابل نمایش است.
@UnityLearning
🔹نمایش انواع صفحه کلید لمسی با انتخاب توسط کاربر
🔸خروجی فقط در موبایل ها قابل نمایش است.
@UnityLearning