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
⭕️اجرای واقعی بازی در بازه زمانی (دستور deltaTime از کلاس Time)

🔸همانطور که قبلا بیان کردیم تابع Update در هر فریم از زمانِ اجرای پرازنده اجرا می شود، این بدین معنی است که مثلا اگر یک CPU بتواند تابع Update را در هر ثانیه 10 بار اجرا کند، ممکن است یک CPU دیگر بتواند دستورات را در هر ثانیه 5 بار اجرا کند. در این جا اگر ما دستوری داشته باشیم که بخواهیم در هر کامپیوتری با هر سخت افزاری به یک شکل اجرا شود، باید دستورات را بر طبق زمان انجام دهیم. یعنی کاری کنیم دستور در همه سیستم ها به یک اندازه اجرا شوند. مثلا در همه کامپیوتر ها این دستور در هر ثانیه 10 بار اجرا شود.

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

▫️در واقع محل دیگر استفاده از دستور، استفاده از آن در دستور شرطی if است.

ℹ️حالت کلی دستور که از #کلاس Time است به شکل زیر است./👇

Time.deltaTime

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

🔘برای #مثال اگر بخواهیم یک #آبجکت (که کد به آن متصل شده است) به یک شکل در صحنه (Scene) بازی شروع به حرکت کند و سرعت یکسان در همه سخت افزار ها داشته باشد، به این شکل از دستور استفاده می کنیم./👇

var translation : float = Time.deltaTime * 10;

transform.Translate (0, 0, translation);

👈این دستور #آبجکت را با دقتِ در هر ثانیه10 متر در محور Z حرکت می دهد.

❗️دقت کنید از این دستور در تابع Update استفاده می کنیم، بنابراین همانطور که می خواهیم حرکت روان خواهد بود (و نـــه به شکل ثانیه به ثانیه-پرش)

✖️در واقع ما با این ضرب که در مقدار جابجایی انجام شد(متغیر translation) کاری می کنیم حرکت در هر ثانیه نهایتا به مقدار تعیین شده ما انجام شود و از آن تجاوز نکند.

دقیقاً در دستورات دیگر به این شکل مثل چرخش (Rotate) این عمل به همین شکل انجام خواهد شد.



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

⭕️در مورد کلاس Time در پست های زیر مطالب اصلی قرار گرفته است/👇

▶️ https://t.me/UnityLearning/225

▶️ https://t.me/UnityLearning/226

▶️ https://t.me/UnityLearning/412

▶️ https://t.me/UnityLearning/413

⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
com.adobe.reader.apk
19.5 MB
⭕️ #دانلود آخرین نسخه ارائه شده از Adobe Reader برای اندروید

نسخه اصلی

👈با توجه به استقبال کاربران از قرار دادن برخی آموزش ها در قالب PDF (آموزش تصویری همراه متن)

@UnityLearning
⭕️ #کلاس Quaternion انجام اعمال مربوط به چــرخش

🔘در یونیتی اعمالی مثل چرخش، حرکت و کلیه کارها بر اساس بردارها(Vector) انجام می شوند. در این پست در نظر داریم کمی با موضوع چرخش کارکنیم.

🔄در پست های قبل دستور چرخش یک آبجکت از نوع Transform را توضیح دادیم. یادآوری/👇

transform.Rotate(Vector3(X,Y,Z);

👈که این دستور آبجکتی که کد به آن متصل شده بود را در جهت های داده شده XYZ می چرخاند. دقت کنید پارامــتر ورودی دستور Rotate از نوع برداری یا Vector است، در واقـــع این دستور آبجکتی را در جهت بردار داده شده می چرخاند.

↙️برای متوجه شدن مطالب در بردارهای سه بعدی می توانید در اینترنت جستجو کنید و مطالب ریاضی مربوط به بــردارها ســه بعدی را مطالعه کنید.

🔁برای کار با مسائل مربوط به چرخش مثل محاسبه بردارها، چرخش نرم و... از #کلاس Quaternion استفاده می شود.

🔸محاسبه بردار چرخش از آبجکت A به سمت آبجکت B برای آبجکت C

(این تنها یک توضیح خلاصه است در پست های آتی به طور کامل دستورات کلاس بسیار کاربردی Quaternion را بیان خواهیم کرد)

🔹دستور Slerp از این کلاس برای چرخش نرم یک آبجکت (از یک جهت به جهت دیگر) است. این دستور برای چرخش نرم از دستورات کلاس Time مثل deltaTime استفاده می کند. حالت کلی این دستور به شکل زیر است./👇

C.rotation = Quaternion.Slerp (A.rotation, B.rotation, Time.time * speed);

👈اگر ABC هر کدام آبجکت های ذکر شده باشند، این دستور این عمل را انجام میدهد. محاسبه بردار جهت از جهت روبرو A به سمت B و برگرداندن میزان چرخش به صورت نرم (بر اساس پارامتر آخر _ Speed) اعمالی است که دستور انجام می دهد.

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

#ادامه_دارد

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





⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
8564xdat.exe
118 MB
آپدیت آفلاین آنتی ویروس مکافی «کلیه نسخه ها»

فایل آپدیت به تاریخ 18-07-2017
29-03-96
⚠️ #مراقب_باشیم اخیرا ایمیل های مخربی در اینترنت پخش شده است. (در ادامه تهدیدات باج افزار جدید)

@UnityLearning
#نظر_سنجی 🗳 آیا از قرار گرفتن آموزش ها به صورت تصویری و متنی در قالب PDF و همچنین فیلم های آموزشی کانال راضی هستید؟
anonymous poll

بله (ادامه پیدا کند) – 67
👍👍👍👍👍👍👍 87%

نظری ندارم – 6
👍 8%

خیر (آموزش متنی بهتر است) – 4
▫️ 5%

👥 77 people voted so far.
آموزش ساخت آبجکت در مایا.pdf
886.4 KB
⭕️دو آموزش در یک فایل

1⃣ آموزش ساخت متن های 3 بعدی برای استفاده در یونیتی

2⃣ آموزش گرفتن خروجی از آبجکت ها در مایا برای استفاده در یونیتی

@UnityLearning
⭕️معرفی برخی توابع مربوط به چرخه حیات (LifeCycle) بازی - قسمت اول

👈منظور از چرخه زندگی یا چرخه زمانی بازی از زمانی است که بازی اجرا می شود تا زمانی که بازی به طور کامل بسته می شود.

🔹در این پست بسیار کاربردی در نظر داریم برخی از این توابع که هر کدام در محلی از این چرخه زمانی یا طول عمر بازی اجرا می شوند را نام ببریم و توضیح دهیم. بیان مثال و اسکریپت های آماده را به پست های بعدی موکول می کنیم.

توابع، هر کدام در زمان خاصــی اجرا می شوند و مهم هم همین زمان اجرا شدن آن هاست که بتوان از آن ها استفاده کرد. برخی توابع ممکن است در نسخه ها پایین تر یونیتی کار کنند.

🔹تابــع Update

👈این تابع در هر فریم از زمان یک بار اجرا می شود. فریم زمانی در هر سیستم با هر شرایطی ممکن است متفاوت باشد.

🔸تابــع FixedUpdate

👈این تابع که در نسخه های جدید یونیتی ارائه شده است از تابع Update بسیار قدرتمند تر است و در هر فریم از زمان چندبار اجرا می شود، بنابراین می توان امیدوارانه گفــت تابع FixedUpdate نسبت به تابع Update در بازی بیشتر اجرا می شود. توصیه یونیتی انجام اعمال محاسباتی بسیار دقیق در این تابع است.

🔹تابــع LateUpdate

👈دقیقا بعد از اجرای یک بار تابع Update تابع LateUpdate اجرا می شود. (اجرا در هر فریم از زمان یک بار، دقیقا مثل Update و دقیقا هر بار بعد از آن)

____________

🔸تابــع Awake

👈در اولین فریم از زمان شروع(برای آبحکت مورد نظر- دقت کنید ممکن است یک شی در بازی مثلا در زمان X بوجود بیاید این تابع در اولین فریم وجود آن آبجکت برای آن اجرا می شود)

🔹تابــع OnEnable

👈در اولین فریم از زمانی که یک آبجکت Enable یا فعال می شود. (این تابع در اولین اجرای بازی برای همه آبجکتها اجرا می شود و در صورتی که یک آبجکت غیر فعال شده باشد و مجدد فعال شود این تابع مجددا اجرا می شود)

🔸تابــع OnLevelWasLoaded

👈همانطور که از نام این تابع معلوم است این تابع زمانی اجرا می شود که مرحله مورد نظر Load شود یعنی اگر این تابع را در Scene مورد نظر بنویسیم این تابع زمانی اجرا می شود که این Scene لود شود(مرحله تعویض شود)

____________

🔹تابــع OnDestroy

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

🔹تابــع OnDisable

👈حالت مخالف تابع OnEnable ، در زمانی اجــرا خواهد شد که آبجکت مورد نظر توسط سایر کد ها disabled یا inactive (غیر فعـــال) گردد.

🔸تابع OnApplicationQuit

👈زمانی اجرا می شود که دستور Application.Quit() برای بسته شدن کامل بازی یا به هر دلیل مثل زدن Alt+F4 بازی بسته شود این تابع اجرا خواهد شد، به طور مثال می توان حاوی پیام خداحافظ یا عملیات ذخیره فایلهای لازم باشد.

💬به علت طولانی نشدن متن، سایر توابع مثل OnTriigerXXX یا OnMouseXXX را در پست های بعدی و در قسمت دوم این آموزش قرار خواهیم داد. همچنین نمودار چرخه حیات کامل بازی که در آن زمانِ اجرا توابع به صورت فلوچارت رسم شده است را نیز قرار خواهیم داد.


#ادامه_دارد

لینک قسمت دوم/👇

▶️ https://t.me/UnityLearning/599

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





⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
Media is too big
VIEW IN TELEGRAM
⭕️ #دانلود #فیلم آموزشی یونیتی در مورد توابع رویداد (که در پست قبل توضیح داده شد)

♻️کیفیت: عالی
📍منبع: سایت یونیتی
📌دانلود شده: youtube


Unity3D Scripting: Event Functions

@UnityLearning
Media is too big
VIEW IN TELEGRAM
⭕️ #دانلود #فیلم آموزشی مربوط به توابع آماده یونیتی نسخه 5.6 و 2017

♻️کیفیت: عالی
📍منبع: youtube

ℹ️ توضیحات/👇

▶️https://t.me/UnityLearning/596

@UnityLearning
ادامه توابع یونیتی.pdf
242.2 KB
⭕️ #دانلود فایل PDF مربوط به ادامه آموزش کامل توابع یونیتی

🔸معرفی توابع یونیتی- قسمت دوم

🔹لینک قسمت اول/👇

▶️ https://t.me/UnityLearning/596

@UnityLearning
UnitySetup_Android_Support_for_Editor_2017.1.0b10.exe
114.8 MB
⭕️ #دانلود فایل ماژول پلتفرم اندروید برای یونیتی 2017 نسخه ویندوز 64 بیتی

🔹Android Target Support for unity 2017.1.0b10

Unity Editor (win 64 bit)

@UnityLearning
⭕️ #دانلود نسخه 5.6.2f #یونیتی

◀️ برای دانلود آخرین نسخه ارائه شده از یونیتی (نسخه اصلی) که نسخه 5.6.2 می باشد و در هفته گذشته میلادی ارائه شده است، می توانید از دکمه های پایین این مطلب استفاده کنید.

⚜️یونیتی لرنینگ همواره آخرین نسخه های یونیتی را برای تان قرار خواهد داد. هم نسخه های اصلی و تست شده و هم نسخه بتا

🔹لینک ها مستقیم هستند و بعد از کلیک روی دکمه دانلود آغاز خواهد شد.

🔰انتخاب کنید🔰
آموزش تايپ فارسي در مايا.mkv
109.6 MB
⭕️ #آموزش تایپ فارسی در مایا و ساخت آبجکت در آن و انتقال آن به پروژه یونیتی با روش جدید «غیر از آنچه قبلا در کانال بیان کردیم»

⌛️طول فیلم:5:15
🎥فرمت:MKV

@UnityLearning
🌹عید رمضان آمد و ماه رمضان رفت / صد شکر که این آمد و صد حیف که آن رفت ...

🌺فرا رسیدن عید سعید فطر بر تمام مسلمین جهان مبارک باد.

💐🌷🌹🌼🌸🌺💥


@UnityLearning
ExitButton.js
321 B
⭕️اسکریپت آماده ایجاد یک «دکمه Button» در بازی با استفاده از کلاس GUI و تابــع OnGUI ، اگر کاربر روی دکمه کلیک کند بازی بسته می شود. (کلیه دستورات در پست های قبلی توضیح داده شده است)



@UnityLearning
⭕️ #دانلود اسکریپت آماده ساخت منو به این شکل(تصویر بالا) در پست بعدی

این اسکریپت آماده است و می توانید برای استفاده از آن، آن را به یک GameObject خالی (مثلا به نام GUIRenderer) بدهید.

@UnityLearning
Menu_LevelLoader.js
364 B
⭕️اسکریپت آماده ساخت منو برای لود کردن مراحل بازی (یا هر دستور دیگری که می خواهید)

#اسکریپت_نویسی ساخت #منو مرحله به مرحله به زبان جاوا

@UnityLearning
⭕️کار با #ماوس در یونیتی به وسیله کلاس Cursor

🔸کلاس Cursor در #یونیتی به منظور دسترسی به ماوس(شکل ظاهری) به کار می‌رود.

🔘گاهی اوقات لازم است در بازی ماوس نمایش داده شود یا اینکه مخفی شود. شاید هم لازم باشد شکل ظاهری فلش ماوس تغییر کند. همه این اعمال و بیشتر با استفاده از #کلاس Cursor انجام می‌شود.

🔸مهمترین تابع این کلاس تابع SetCursor است که به وسیله آن بازی ساز می تواند شکل ظاهری ماوس را در بازی خود تغییر دهد یا اینکه آن را به حالت اول (پیش فرض ویندوز) برگرداند.

▫️حالت کلی (ساده ترین حالت) از این تابع به این شکل است/👇

Cursor.SetCursor(Texture2D,CursorMode)

👈که در آن، پارامتر اول همان شکل ظاهری ماوس که از نوع Texture2D (تکسچر دوبعدی شامل عکسِ ماوس) و پارامتر دوم مربوط به نوع ماوس (سخت افزاری یا نرم افزاری) است.

👈برای پارامتر دوم می‌توان CursorMode.Auto را به کار برد. در این صورت انتخاب حالت ماوس به صورت سخت افزاری یا نرم افزاری به طور اتوماتیک انجام می‌شود.

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

▶️ https://t.me/UnityLearning/609


🔸به منظور مخفی کردن ماوس از دستور/👇

Cursor.visible = false;

استفاده می‌شود و برای نمایش دادن نیز از دستور /👇

Cursor.visible = true;

استفاده می‌شود.

🔹به طور #مثال اگر بخواهید در ابتدای بازی ماوس نمایش داده نشود، میتوان دستور مخفی کردن ماوس را در تابع Start نوشت(اسکریپت آماده در پست های بعدی، لینک پست/👇)

▶️ https://t.me/UnityLearning/609

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





⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
MouseCursorChange.js
320 B
⭕️اسکریپت آماده تغییر شکل ماوس با قرار گرفتن آن روی یک آبجکت خاص و بازگشت به حالت پیش فرض ویندوز در زمان خارج شدن ماوس از روی آن

ℹ️ توضیحات/👇

https://t.me/UnityLearning/607

@UnityLearning
mouse_hide.js
94 B
⭕️اسکریپت آماده مخفی شدن ماوس در ابتدای شروع بازی

🔸میتوانید این کد را به یک Game Object خالی به نام Mouse بدهید.

@UnityLearning