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
🌸فرا رسیدن بیست و هفتم رجب عید سعید مبعث را به همه مسلمانان جهان تبریک و تهنیت عرض می‌کنیم.




🌺 @UnityLearning🌺
⭕️دانلود آخرین نسخه درایور کارت گرافیک

👈برای استفاده از حداکثر قدرت کارت گرافیک همواره آخرین نسخه رسمی آن ها را رسم کنید.

🔸آخرین نسخه DirectX نیز به اجرای هر چه بهتر بازی ها کمک خواهد کرد.

🔸در زیر لینک #دانلود آخرین نسخه از #کارت_گرافیک معروف یعنی

AMD Intel Nvidia

برای دانلود قرار گرفته است.

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

🔘منبع دانلود سایت سافت 98 است.
⭕️ دستورات برنامه نویسی

در پست های گذشته توضیحاتی درباره تابع BroadcastMessage داده شد. لینک پست‌ها

https://t.me/UnityLearning/166
https://t.me/UnityLearning/169
https://t.me/UnityLearning/186
https://t.me/UnityLearning/208
https://t.me/UnityLearning/346
https://t.me/UnityLearning/352


👌اکنون کامل تر توضیح می دهیم و سایر دستورات را نیز بیان می کنیم.

📎تابع BroadcastMessage در واقع برای صدا زدن یک تابع دیگر که در اسکریپت دیگری است، استفاده می‌شود. این اسکریپت می تواند در آبجکت جاری باشد(یعنی مثلا به این آبجکت چند اسکریپت متصل باشد) و هم می تواند در آبجکت دیگری باشد.

1⃣ برای استفاده از حالت اول قالب این تابع به این شکل است.

BroadcastMessage("FunctionName");

2⃣ و در حالت دوم یک آبجکت که دقیقا همان آبجکتی است که می خواهیم کد از آن اجرا شود را به آن می دهیم.

Obj.BroadcastMessage......

که این آبجکت می تواند از هر نوعی باشد و در یونیتی آن را مشخص کنیم.

(توضیح بیشتر👈 تمام نوع های یونیتی یعنی
Transform,RigidBody,Collider,....

از تابع BroadcastMessage پشتیبانی می‌کنند و ما در هر محلی می توانیم آنها را یافته و توابع درون اسکریپت های آن را صدا بزنیم. حتی می توانیم با دستوراتی به یک اسکریپت خاص دسترسی پیدا کنیم، دستورات را در پست های بعدی به بهترین شکل توضیح خواهیم داد و در نهایت یک فیلم آموزشی از تمام آنچه بیان کردیم خواهیم گذاشت)

حال اگر این تابـــع (تابعی که می خواهیم در اسکریپت دیگر صدا زده شود) خروجـــی داشته باشد/یا نداشته باشد و یا پارامتر ورودی داشته باشد باید چگونه عمل صدا زدن را انجام دهیم؟

اگر تابع خروجی داشت

1⃣در این حالت مقدار خروجی در تابع BroadcastMessage بر می گردد، فقط در این حالت باید حتما برای تابع مشخص کنیم که این تابعی که صدا می زنی، خروجی دارد، به این شکل

BroadcastMessage("function", SendMessageOptions.RequireReceiver);

👈در واقـــع با پارامتر
SendMessageOptions.RequireReceiver
بــه یونیتی می گوییم، این تابع خروجی دارد و باید همینجا منتظر خروجی آن بماند، دقت کنید، اگر تابع خروجی ارسال نکند بازی با خطا مواجــه می شود.

2⃣بنابراین اگر تابع مورد نظـــر ما خروجی نداشت بهتر است به این شکل به یونیتی بگوییم منتظر ارسال پاسخ از اسکریپت آبجکت دیگر نباش

BroadcastMessage("function", SendMessageOptions.DontRequireReceiver);

تا اینجا با دو حالت از تابع آشنا شدیم«یک حالت داشتن خروجی و یک حالت نداشتن خروجی در تابع مقصد»

3⃣حال فرض کنید، تابع مقصد «که قصد صدا زدن آن را داریم» در اسکریپت دیگر دارای پارامـــتر ورودی باشد. در این جا بعد از نام بردن نام تابع مقصد (functionName) پارامـــتر ها را نیز به تابع ارسال می کنیم.

BroadcastMessage("function", parameters .....

به این علت سه نقطه قرار دادیم، چــون بعد از این پارامتر ها می تواند SendMessageOptions با حالت های قبل باشد.

4⃣حالت بدون پارامتر ورودی هم که اولین نوع بود، هیچ موردی در تابع قرار نمی دهیم.


💡به علت طولانی نشدن این مطلب ادامه آن را در پســـت های آتی قرار خواهیم داد.

🎈ادامه مطلب شامل بیان مثال هایی از تابع و بیان سایر توابع مربوط به ارسال Message در #یونیتی است.
#اسکریپت_نویسی #کد_نویسی #برنامه #برنامه_نویسی #جاوا




⭕️کــانال یونیــتی لرنـینگ⭕️
💢@UnityLearning💢
#ادامه مطلب مربوط به دستورات #برنامه_نویسی

💢 در ادامـــه آموزش های مربوط به پست قبل با لینک👇

https://t.me/UnityLearning/405

🔹 به طور #مثال اگــر تابعی در اسکریپت دیگری که به FPS متصل کرده ایم به شکل زیر تعریف شده باشد/👇

function Add(int a,int b){....}

و ما در اینجا بخــواهیم این تابع را در یک اسکریپت دیگر که به FPS نیز متصل نشده اســت، صدا بزنیم/👇

var FPS:Transform;
.....
.....
(در محل مورد نظر)
FPS.BroadcastMessage("Add",10,20,SendMessageOptions.DontRequierReceiver);

و در #یونیتی مقدار متغیر FPS در اسکریپت را برابر FirstPersonCharchter قــرار می دهیم. «در اینجا ما اعداد 10 و 20 را به عنوان پارامتـر ورودی به تابع Add ارسال خواهیم کرد.

🔸 اگـــر اسکریپت جاری ما(که از آن قصد صدا زدن یک تابع در اسکریپت دیگری را داریم) و اسکرپیت دیگر مربوط به یک #آبجکت بودند/ مثلاً هر دو اسکریپت به FPS داده شده بود و می خواستیم کدی از اسکریپت دیگر صدا بزنیم/👇

BroadcastMessage("Add",10,20,SendMessageOptions.DontRequierReceiver);

👈 یعــــنی در اینجا نیازی به تعریف و مقدار دهی متغیر اضافی برای آبجکت دیگر نیست«چون هـر دو متغـــیر به یک آبجکت متصل شده اند و نیازی به این کار نیست»

💎 این دستور دقیقا معادل این است که به این شکل بنویسیم/👇

transform.BroadcastMessage(...);

👈 که واژه transform مشخص است «به آبجکتی که کــد به آن متصل شده است، اشاره خواهد کرد»



ادامه دستورات ارسال Message در یونیتی به منظور صدا زدن سایر توابع در اسکریپت های دیگر

💮 تابع BroadcastMessage پارامــتر که شما به دنبال آن هستید «یعنی همان تابع اسکریپت های دیگر» را در تمام آبجکت ها و اسکریپت های متصل به آبجکت گفته شده جستجو می کند و در صورتی که به پاسخ برسد آن را اجرا می کند.

اما گاهی بازی ساز نیاز ندارد تمام آبجکت های زیر مجموعه یک آبجکت را برای اجرا کد جستجو کند/ در واقع بازی ساز می خواهد این جستجو فقط در یک سری آبجکت انجام شود(مثلا تمام آبجکت های زیر مجموعه یک transform) در این جا یونیتی توابع دیگــری مثل SendMessageUpward و SendMessage دارد که در پست های آتی در مورد آن توضیح کامل داده می شود/ نحوه نوشتن این توابع دقیقاً مشابه هم است، تفاوت در عملکرد آن هاست.

💢خـــلاصـــــه💢

عملکرد تابع BroadcastMessage را یک بار دیگر بیان می کنیم/

🔗 متن انگلیسی از سایت یونیتی

call the passed in function for all the scripts on the game object that have that function and for all children objects that also have that function.

🔗 متن فارسی «اجرای کامل همه توابع در اسکریپت های متصل به گیم آبجکت مورد نظر و تمام بچه های متصل به آن (گیم آبجکت های زیر مجموعه در پنجره Hierarchy)»




کانال یونیتی لرنینگ
💢 @UnityLearning💢
🌘حلول ماه شعبان و فرا رسیدن اعیاد شعبانیه را به همه مسلمانان جهان تبریک و تهنیت عرض می‌کنیم.

🌸🌼🌹🌺🌹🌼🌸


🌜 @UnityLearning 🌛
🔸کاربران عزیزی که به ساخت برنامه اندروید علاقه مند هستند می توانند در کانال آموزش ساخت برنامه اندروید عضو شوند.

🔹البته این کانال هنوز نوپاست و کار زیادی دارد تا به یک کانال خوب تبدیل شود.

🆔آی دی کانال جهت مشاهده👇

@AndroidStudioLearning

https://telegram.me/AndroidStudioLearning
⭕️کد تقلب (cheat) چیست؟

👈تقلب در بازی ها، یکی از روش های بازی کردن است که در آن در داستان اصلی بازی تقلب صورت می‌گیرد. این به این معنی است که کاری می‌کنیم در انجام بازی در برابر دشمنان به موفقیت می‌رسیم. (البته با تقلب)

ـ«cheat ها توسط بازی ساز ساخته می‌شود»

💢بازی ساز خودش بازی می‌سازد، که آن را به وسیله تقلب نیز، می‌شود انجام داد و تفاوت اصلی آن با ترینر ها این است که ترینر ها به وسیله برنامه نویسان ِ هکر انجام می‌شود، یعنی بازی ساز به این شکل بازی را نساخته که با تقلب بشود آن را انجام داد امّا هکر ها برنامه ای ساخته اند که در کدهای اصلی بازی تغییر ایجاد می‌شود.

اما چگونه بازی بسازیم که دارای cheat باشد؟

🔘پاسخ کاملا ساده است، کاری که انجام می‌دهیم این است که ابتدا یک استراتژی برای وارد کردن کد در بازی مان انتخاب می‌کنیم. یعنی کدها باید دقیقا به چه صورت وارد شود(منو، کنسول، در جریان بازی) سپس اسکریپتی بنویسیم که مدیریت آن را بر عهده داشته باشد. سپس در تمام اسکریپت هایی که می دانیم در اجرای cheat تأثیر دارد، توابعی تعریف کنیم که هنگام اجرای کد (که در بازی نوشته شده است) اجرا شود.

☑️به طور #مثال یک تابع باشد که همیشه جان بازیکن را 100% نگهدارد. یعنی در تابع Update همیشه آن را برابر صد قرار دهیم.
(به این کد تقلب اصطلاحا Godmode گفته می‌شود که در تقلب ها مهمترین کد هست)





⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
#آموزش #تابع OnTrigger

🔗 در یونیتی برای اینکه یک عمل در هنگام ورود یک شی به یک محدوده اتفاق بیافتد دو تابع OnTriggerEnter و OnTriggerExit قـــرار داده شده است، در این پست کلیه مطالب مربوط به این دو تابع را آموزش خواهیم داد.


این تابع دقیقا زمانی که یک شی که دارای کامپوننت Collider است اجرا می شود، به عبارت دیگر «این تابع برای شی که اسکریپت را به آن متصل کردیم و محدوده ای (با استفاده از کامپوننت Collider و البته با تیــک Trigger) به عنوان Trigger برایش تعیین شده، زمانی اجرا خواهد شد، که یک شی خارجی که دارای کامپوننت Collider است وارد این محدوده شود»

🔸 از این تابع در پست های گذشته بسیار استفاده کردیم، به طور #مثال زمانی که می خواستیم یک شی در هنگام ورود بازیکن به محدوده Trigger آن حذف یا Destroy شــود، از تابع OnTriggerEnter استفاده کردیم/👇

function OnTriggerEnter()
{
Destroy(gameObject,1);
}
این تکه کد به هر شی که برایش محدوده Trigger تعریف کرده باشید، داده شود/👈 باعث می شود با ورود هر شی دیگر(بازیکن، دشمن و حتی تیر ها و...) که داراری #کامپوننت Collider باشد، این #آبجکت حذف شود.

مشخص است که این چیزی نیست که برنامه نویسِ بازی می خواهد، او مثلا می خواهد این کد زمانی اجرا شود که شی وارد شده یک شی خاص باشد. یونیتی برای این مسئله یک شکل دیگر از تابع OnTriggerEnter را ارائه کرده است/👇

function OnTriggerEnter(P:Collider)

زمانی که تابع را به شکل (یعنی با پارامتر ورودی تعریف کنید) شیی که وارد محدوده Trigger شده است و نوع آن هم Collider است در متغیر P قرار خواهد گرفت. حال برنامه نویس می تواند این متغیر را با آنچه مد نظرش است چک کند و اگر صحیح بود عمل خاص انجام شود.

«تابع OnTriiger از توابعی در #یونیتی است که به صورت چند ریختی (یعنی با چند شکل مختلف) تعریف شده است و اگر با پارامتر ورودی تعریف شود، شی مورد نظر که به محدوده وارد شده است در آن پارامتر قرار می گیرد »

روش های مختلف بررسی به این شکل است/👇

if(P==FPS)

👈 و این در این حالت است که FPS را در ابتدای اسکریپت خود به این شکل تعریف کرده باشد/👇

var FPS:Collider;

حال اگر به هر دلیلی FPS از نوع Transform تعریف شده بود و بخواهیم آن را با Collider بررسی کنیم، نیاز است از دستورات /👇

GetComponent(Collider);

برای آن استفاده کنیم و آن را با P تست کنیم.

اما یکی از بهترین این روش ها استفاده از تگ هاست که قبلا نیز در مورد آن ها صحبت کردیم/👇

https://t.me/UnityLearning/214

اگر برای اشیا مورد نظر خود تگ تعریف کرده باشید به راحتی آن را به این شکل بررسی می کنیم/👇

if(p.tag="Player")

💎 تابع OnTriggerExit نیز به همین شکل زمانی اجــرا می شود که شی مورد نظـــر ما از محدوده Trigger «خارج شود»




کانال یونیتی لرنینگ
💢 @UnityLearning💢
💫میلاد با سعادت امام حسین، حضرت عباس و امام زین العابدین علیهم السلام را به تمام مسلمانان جهان تبریک و تهنیت عرض می‌کنیم.

💫التماس دعا💫

💢 @UnityLearning💢
⭕️مطالب بیشتر در ادامه مباحث #کلاس Time

🔹در پست زیر(225) در مورد متوقف کردن بازی با دستور timeScale توضیحاتی دادیم و در چند پست مطالب بیشتری در این مورد و متوقف کردن بازی در زمان خاص (مثلا زمان زدن کلید Esc و باز شدن منوی بازی) خواهیم گفت.

🔗لینک پست قبلی/👇

https://t.me/UnityLearning/225

🔸ابتدا دستور را مجدد بررسی می‌کنیم/👇

Time.timeScale=0;

👈که استفاده از این دستور باعث توقف بازی می‌شود، اما کدام توابع متوقف می‌شوند.

Update,LateUpdate...


👈توابع اصلی که متوقف خواهند شد توابع آپدیت هستند و در مقابل تابعی که در این زمان متوقف نخواهد شد تابع OnGUI است.

📍محل هایی در بازی هست که نمی توان آن را استفاده کرد(دستور توقف) یعنی نمی توان با این دستور بازی را متوقف کرد(منظور توابع آماده یونیتی است) در این چند پست کلیه این موارد را بررسی می‌کنیم.

⭕️تابع OnGUI چیست؟

🔰این تابع عملکردی مشابه تابع آپدیت دارد اما تفاوت آن این است که این تابع برای رابط گرافیکی کاربر(مثل منوی بازی) مورد استفاده قرار می گیرد.

🔜در ادامه و پست(های) بعدی در نظر داریم کلیه دستورات و توابعی که برای زمان بازی و ساخت منو در بازی لازم است، را به طور کامل توضیح دهیم و یاد بگیریم از توابع GUI استفاده کنیم.

#اسکریپت_نویسی #کد_نویسی #جاوا #یونیتی #زمان #کلاس

💢برای دسترسی به همه مطالب مرتبط با این موضوع از هشتگ های بیان شده به خصوص #زمان استفاده کنید.





⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
در ادامه پست قبلی مربوط بـه #کلاس Time #زمان بازی

https://t.me/UnityLearning/412

در ابتدای شروع بازی نمی توان بازی را متوقف کرد(تابع Start) یعنی در تابع Start نمی توان از دستور TimeScale=0 استفاده کرد.

علت این موضوع این است که در هنگام شروع بازی (دقیقا لحظه استارت) باید همه آبجکت ها ابتدا در موقعیت هایی که شما تعیین کردید قرار گیرند و بعد #کامپوننت های همه #آبجکت ها به آن ها متصل شود. درست است که این دو کار در یک چشم به همزدن انــجام می شود و بازیساز و بازیکن متوجه این مسئله نمی شوند اما لازم است یونیتی این مقدار دهی ها و تعیین موقعیت ها برای هر آبجکت را انجام دهد، تا بازی برای اولین بار اجرا شود. با متوقف کردن بازی با این دستور در این زمان، دقیقا باعث می شوید این اتفاق نیافتد و در نتیجه به یک باره شاهد بهم ریختن صفحه بازی (به طور مثال سقوط اجسام دارای Rigidbody) باشید.

🔅 اما در شرایطی لازم است این اتفاق بیافتد، یعنی لازم است بازی در ابتدای شروع متوقف باشد و در هنگام رخ دادن یک اتفاق (مثلا کلیک شدن روی یک منو) بازی شروع شود، قبل پاسخ کمی توضیح دهیم/👇

یکی از مهمترین روش ها برای ایجاد یک منوی ابتدایی برای بازی طراحی محیط منوی اولیه بازی در یک Scene و یا حتی نرم افزار دیگر است، یعنی منوی بازی از اصل بازی ما متفاوت باشد، شما این موضوع را همیشه در اکثر بازی ها مشاهده می کنید که منوی اولیه بازی ها از خود بازی ها جدا هستند، شما می توانید با بررسی این که در هنگام اجرا مرحله ای از بازی اصلی رزولیشن صفحه تغییر می کند، کاملا واضح است که این دو جدا هستند. این موضوع که برایتان بیان کردیم اصلی ترین دلیل برای این کار(جدا کردن منوی اولیه بازی از خود بازی) در بازی های بزرگ است. «این روش بسیار عالی و حرفه ای را در یونیتی لرنینگ به پست های آینده موکول می کنیم🔜 »

اما مطلب اصلی ما «توقف بازی اصلی در هنگام شروع بازی»

برای توقف بازی در تابع Start باید چکار کنیم؟

پاســـخ این موضوع و آموزش این مسئله در سایت یونیتی قرار گرفته است، شما برای این کار نیاز به ایجاد یک تاخیر زمانی (در حد چند صدم ثانیه) در بازی تان هستید/👇

yield WaitForSeconds(0.001);

👈 این عمل را در تابع Start انجام دهید و در خط بعد بگویید timeScale=0 شود، تا بازی در ابتدای کار متوقف باشد و آنچه شما برای کار خود نیاز دارید در ابتدا اجرا گردد.

🔸 در این حالت بیان کردیم(در پست قبلی) که تنها تابع OnGUI اجرا می شود و سایر دستورات و توابع از کار خواهند ایستاد، پس شما آن چه نیاز دارید (مثلا کنترل شدن یک کلید، اگر کلید Esc فشار داده شد باید بازی شروع شود، یا یک منو طراحی کرده اید که اگر بازیکن روی Start New Game کلیک کرد) بازی آغاز شود.

🔚 نکته نهایی، بهتر است آبجکتی مثل FPS که با ماوس حرکت می کند، در هنگام توقف بازی(Pause) غیر فعال شود. این دو خط این کار را انجام می دهد. خط اول آبجکت را(هر آبجکتی را) به همراه کلیه زیر مجموعه هایش به طور کامل غیر فعال می کند. خط دوم تنها همین آبجکت را(نه کامپوننت ها و آبجکت های دیگر متصل شده به آن را) غیر فعال می کند.

FPS.gameObject.SetActiveRecursively(false);
FPS.gameObject.active = false;

🔗 در مـــورد این دو دستور بیشتر توضیح خواهیم داد، اما در همین حد که تابع اولی SetActiveRecursively اگر با پارامتر false باشد کلیه کامپوننت ها و آبجکت های متصل به یک آبجکت دیگر را غیر فعال می کند و در این جا (توقف در ابتدای بازی) ما نیاز داریم کامپوننت هایی مثل Contoller و Audio حتما قطع باشند.

🔸 این مطالب ادامه دارد.


کانال یونیتی لرنینگ
💢 @UnityLearning💢
اشکال مختلف دستور For در #جاوا اسکریپت

#درخواست

در جاوا دستورات از انعطاف پذیری بیشتری برخوردار هستند(نسبت به سی شارپ) و یکی از دلایل اصلی انتخاب جاوا اسکریپت برای کد نویسی در محیط های دیگر مثل بازی ها یا محیط وب همین انعطاف پذیری بالای دستورات است.

🔄 دستورِ حلقه for که برای تکرار استفاده می شود نیــز از این قضیه مستثنی نیست. دستور for اشکال مختلفی در جاوا دارد تا برنامه نویسان بتوانند به راحتی از آن استفاده کنند، شکل کلی این دستور به این شکل است/👇

for (statement 1; statement 2; statement 3) {
code block to be executed
}
که در آن Statement ها به ترتیب «دستوری که قبل از شروع حلقه باید اجرا شود، شرط تکرار حلقه و دستوری که باید در هر بار تکرار حلقه تکرار شود است» وجود دستور شرط (Statement2) برای حلقه در این حالت اجباری است.

حالت دیگری از حلقه for

آنچه در نظر داشتیم در این پست بیان کنیم، این شکل از حلقه for در جاوا اسکریپت است و آن پیمایش حلقه(تکرار) در یک متغیر آرایه ای است. یعنی به منظور پیمایش اعضای یک متغیـــر آرایه ای استفاده می شود. (معادل دستور foreach در سی شارپ) قالب for در این حالت به این شکل است/👇

for (var Name in Array) {
code block to be executed
}

🔸 فرض کنید x یک متغیر عددی باشد و a یک آرایه عددی در این صورت اگر می خواهیم دستور if به تعداد اعضای آرایه a تکرار شود و اعضا را از شماره صفر تا N(آخرین عضو آرایه) در متغیر x قرار دهد که بتوانیم از آن در محاسباتِ بدنه تابع استفاده کنیم، به این شکل می نویسیم/👇

#مثال

for (x in a) {
//Loop Block
}

ـ(x در بدنه این تابع معادل a[i] خواهد بود/ البته اگر به شکل قبل استفاده می کردیم)

🔗 از این دستور for برای محاسبه #آبجکت های بازی استفاده های بسیاری می کنیم. همه آبجکت های پیرامون یک آبجکت خاص را بدست می آوریم و ...

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





کانال یونـــیتی لرنینگ
💢 @UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ #آموزش تصویری اضافه کردن یک آبجکت دانلود شده به محیط بازی

🔘فرمت های پشتیبانی شده توسط یونیتی برای آبجکت ها/👇

📎 FBX Obj max


#فیلم

💢 @UnityLearning💢
انواع داده در #جاوا اسکریپت

🔗 در این پست به طور خلاصه چند نوع داده مهــم (که بر ساخت بازی نیاز است) در جاوا اسکریپت را قـــرار خواهیم داد.

🔜 در پست آینده نیز فایل PDF کاملی به صورت انگلیسی قابل فهــم در کانال مربوط به Data Typeها در جاوا اسکریپت قرار می دهیم.

تعریف کردن متغیر به صورت درجا

👈 یعنی همان موقع که متغیر را تعریف می کنیم به آن مقدار هم بدهیم، در این حالت نیازی به مشخص کردن نوع متغیر نیست و کامپایلر به طور خودکار متوجه نوع داده می شود.

#مثال

🔸 متغیر عددی/👇
var length = 16;

🔸 متغیر رشته ای/👇
var lastName = "Johnson";

🔸 متغیر کلاسی(آبجکت)/👇
var x = {firstName:"John", lastName:"Doe"};

🔘 نوع داده ها در جاوا اسکریپت داینامیک یا پویا است به این معنی که یک متغیر X می تواند در یک برنامه نوع های مختلفی داشته باشد.

یک متغیر پویا به این شکل تعریف می شود/👇

var x;

1) var x=12;

2) var x="Hello";

👈 در حالت یک، متغیر عددی خواهد بود و در حالت دو، متغیر رشته ای تعریف می شود.

متغیر های عددی «اعشاری و اعداد بزرگ»

🔹 مقدار دهی متغیر به شکل زیر برای تعریف متغیر عددی با مقدار بزرگ (و یا اعشاری) مورد استفاده قرار می گیرد/

var y = 123e5;

👈 نتیجه 12300000 در y قرار می گیرد.

var z = 123e-5;

👈 نتیجه 0.00123 در متغیر اعشاریِ z قــرار می گیرد.

متغیر های بولین

به شکل زیر تعریف و مقدار دهی اولیه می شوند/👇

var x = true;
var y = false;

متغیر های آرایه ای

🔹 آرایه عبارت است از چندین مقدار «از یک نوع» در یک متغیر «با یک نام» ، تعریف آرایه و مقدار دهی در جاوا اسکریپت به شکل زیر است/👇

var cars = ["Saab", "Volvo", "BMW"];

👈 آرایـــه Cars یک متغیر رشته ای شامل سه مقدار داده شده است.

عملگـــر typeof

🔹 این عملگر نوع داده داده شده در مقابل خود را بر می گرداند.

تعریف متغیر بدون مقدار دهی اولیه

🔹 همانطور که در پست های اولیه کانال نیز بیان کردیم نحوه تعریف متغیر بدون مقدار دهی اولیه نیز در جاوا به این شکل است/👇

var X:type;

🔗 به طور مثال

var X:int;

👈 در اینجا x یک متغیر از نوع عددی (Integer) با مقدار صفر تعریف می شود.

در #یونیتی نیز نوع های مختلفی وجود دارد که در برنامه نویسی استفاده می شود/ 👈 باید دقت کنید این نوع ها دقیقا معادل آنچیزی است که شما برایش نیاز به کد نویسی دارید.

نوع داده ای یونیتی مثل

GameObject
Audio
Collider
Transform
AudioClip

و بسیاری از نوع های داده ای دیگر که می توان از آن ها در یونیتی استفاده کرد، به طور مثال/👇

var Obj:GameObject[];

👈 باعث تعریف شدن یک متغیر به نام Obj شده (که البته ابعادش را در یونیتی (محیط یونیتی) مشخص می کنیم و می توانیم به آن مقدار مناسب (GameObjectهای مورد نظر) را بدهیم.

💢 با استفاده از دستور زیر هم به تک تک اعضا دسترسی داشته باشیم (n شماره آبجکت مورد نظــر است)/👇

Obj[n]

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


کانال یونیتی لرنینگ
💢 @UnityLearning💢
JavaScript Data Types.pdf
185.8 KB
#دانلود فایل PDF مربوط به انواع داده ای در #جاوا اسکریپت
«انگلیسی» منبع سایت https://www.w3schools.com

@UnityLearning
animation.gif
20.9 KB
🌸میلاد با سعادت حضرت علی اکبر و روز جوان را به تمام شیعیان جهان بخصوص جوانان عزیز تبریک و تهنیت عرض می‌کنیم.





⭕️کانال یونیتی لرنینگ⭕️
@UnityLearning
Adventure Game Unity Tutorial - Phase 1a.3gp
19 MB
⭕️ #دانلود #فیلم آموزشی ساخت بازی های Adventure در یونیتی

💠 قسمت اول
زمان فیلم: 56 دقیقه
📍منبع: youtube
♻️کیفیت پایین برای دانلود آسان قرار گرفته است.

@UnityLearning
Media is too big
VIEW IN TELEGRAM
⭕️ #دانلود #فیلم
Pluggable AI With Scriptable
Objects

💠در رابطه به آبجکت های استاندارد هوش مصنوعی برای استفاده در یونیتی

زمان: 10 دقیقه
💡کیفیت: 1280*720
♻️منبع: سایت یونیتی(فروم)

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ #فیلم #آموزش #دانلود رایگان از استور یونیتی

🎥این فیلم نحوه دانلود «رایگان برخی از پکیج ها» از استور یونیتی به کمک تورنت را نشان می‌دهد.

💠منبع:آپارات
زمان:4 دقیقه
♻️کیفیت:عادی

@UnityLearning
Media is too big
VIEW IN TELEGRAM
⭕️ #دانلود #فیلم آموزشی برای نحوه تنظیم Android SDK در یونیتی

زمان: 7 دقیقه
📍منبع: youtube
♻️کیفیت: 1280*720


@UnityLearning
⭕️ یک Game Engine فقط برای بازی بکار نمیرود

🔸 موتور های بازی سازی به منظور ساخت انیمیشن، جلوه های ویژه بصری و شبیه سازی محیط نیز به کار می روند.

💠از آخرین نمونه های ساخت فیلم های کوتاه با موتور یونیتی می‌توان به فیلم Adam اشاره کرد.

🔰این فیلم کوتاه در سال 2016 تولید شده است.

🔆 #سایت #یونیتی کلیه آبجکت ها و... این فیلم را برای دانلود کاربرانش قرار داده است.

💮لینک مربوط به Adam در سایت یونیتی👇

https://unity3d.com/pages/adam

👈با رفتن به این لینک می‌توانید به اطلاعات کامل فیلم و همچنین پکیج های آن در Asset Store یونیتی دسترسی پیدا کنید.

تریلری از این فیلم در پست بعدی قرار می گیرد.

https://t.me/UnityLearning/426





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