Unity Learning
2.99K subscribers
574 photos
211 videos
1.05K files
280 links
⭕️کانال آموزش حرفـــه ای موتور بازی سازی یـــونیتی

▪️ @UnityLearning ▫️

🔹ارتباط با مدیر کانال/👇

@UnityLearning_Admin

🔹 کد شامد /👇

1-1-3526-61-3-1

💰 تعرفه تبلیغات/👇

@UnityLearning_Ads

لینک گروه تبادل نظر اعضای کانال
@UnityLearning_Group
Download Telegram
#ادامه مطالب پخش صدا در بازی (بیان نکات بیشتر)

🔸 قبلا بیان شد، برای پخش صدا در بازی به کامپوننت AudioSource نیاز است و برای شنیدن صدا نیاز به AudioListener در بازی نیاز دارید.

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

🔘 #کامپوننت AudioListener پارامتر خاصی ندارد و معمولا به کاراکتری داده می شود که قرار است به عنوان بازیکن انتخاب شود و در صورتی که قرار شد این کاراکتر مثلا سوار ماشین، یا هر وسیله ای شود، باید یکی را غیر فعال و دیگری را فعال کنید.

🔸 همانطور که بیان شد، برای پخش صدا از کامپوننت AudioSource بهره می بریم، این کامپوننت یک پارامتر به نام AudioClip دارد که در واقع همان صدایی است که قرار است توسط این کامپوننت و از آبجکتی که کامپوننت را به آن متصل کردیم پخش گردد. فرض کنید می خواهیم یک آبشار داشته باشیم و از آن صدای آب پخش گردد، برای این کار ابتدا کامپوننت AudioSource را آبجکت آبشار می دهیم./👇

Component - Audio - AudioSource

🔹 اکنون صدای آبشاری که دانلود کردیم را از پنجره Project به پارامتر AudioClip دِرَگ می کنیم. از این به بعد این آبجکت منتشر کننده صدای آبشار خواهد بود. سایر پارامتر های این کامپوننت مشخص است مثلا Loop باعث می شود، اگر صدا به پایان رسید مجددا از ابتدا شروع شود یا به حالت Stop برود. یا Play on Awake نیز باعث می شود آیا صدا از ابتدای شروع بازی پخش گردد یا خیر؟

🔗 در پست بعدی دستورات کامل کد نویسی مربوط به پخش صدا را بیان می کنیم.

#ادامه_دارد




کانال یونیتی لرنینگ
💢 @UnityLearning💢
#ادامه مطالب پخش صدا در بازی (اسکریپت نویسی)

🔘 مسلما آنچه در اسکریپت نویسی بیشتر نیاز داریم به آن دسترسی داشته باشیم، پخش صدا، توقف صدا، تغییر صدای پخش شونده و تغییر در پارامتـــر هایی مثل Loop است.

ابتدا باید نوع متغیری که می توان به عنوان کلیپ به اسکریپت معرفی کرد را بیان می کنیم. برای این که بتوانیم در ورودی اسکریپت صداهایی که دانلود کردیم را به اسکریپت بدهیم باید متغیری از نوع AudioClip تعریف کنیم./👇

var clips : AudioClip ;

🔹 با تعریف این متغیر می توانیم هر نوع صدایی که دانلود کردیم (در فرمت های معروف مثل mp3 wav aif ogg و...) به این پارامتر بدهیم.

🔸 به منظور دسترسی به #کامپوننت AudioSource نیز از دستور GetComponent استفاده می شود./👇

GetComponent.<AudioSource>()

🔁 برای تغییر دادن پارامتر Loop یا هر پارامتر دیگر به شکل زیر می نویسیم./👇

GetComponent.<AudioSource>().loop = false;

به طور مثال با این دستور پارامتر loop را برابر با false قرار می دهیم.

برای قرار دادن کلیپ که در ورودی اسکریپت داده ایم(متغیری که در ابتدا تعریف کردیم) به شکل زیر کد می نویسیم./👇

GetComponent.<AudioSource>().clip=clips ;

توجه کنید clips همان متغیری است که در ابتدا تعریف کردیم.

به منظور پخش صدا کد زیر را می نویسیم./👇

GetComponent.<AudioSource>().Play();

به منظور توقف موقت صدا کد زیر را می نویسیم./👇

GetComponent.<AudioSource>().Pause();

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

برای دسترسی به طول یک Clip از خاصیت Length استفاده می شود. فرض کنید لازم دارید به طول یک آهنگ که در حال پخش است بر حسب ثانیه دسترسی داشته باشید، می توانید از این پارامتر استفاده کنید. این خاصیت طول صدای داده شده را بر حسب ثانیه بر می گرداند./👇

GetComponent.<AudioSource>().clip.length

🔗 در صورتی که می خواهید این اسکریپت تنها زمانی اجرا شود که در کنار حتما #کامپوننت AudioSource وجود داشته باشد(یعنی آبجکتی که این کد را به آن داده ایم حتما کامپوننت AuidoSource را داشته باشد) کد زیر را هم مثلا به انتهایی ترین خط کدها اضافه می کنیم./👇 (دستور قبلا توضیح داده شده است)

@script RequireComponent(AudioSource)



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



کانال یونیتی لرنینگ
💢 @UnityLearning💢
اسکریپت آماده

⭕️ پخش یک کلیپ از بین چند کلیپ صدا به صورت رندوم

💎در پست بعدی کدی برای دانلود و استفاده شما قرار می‌گیرد که با کامپوننت AudioSource کار می‌کند و برای یادگیری دستوراتی که در پست های قبل بیان شد، سودمند است.

در این پست عملکرد اسکریپت و نحوه استفاده از آن را برای شما شرح می‌دهیم.

💡دستورات اصلی این اسکریپت(که مربوط به کامپوننت AudioSource می‌شود) را در دو پست قبل کامل بیان کردیم. بنابراین اگر تا کنون آنها را مطالعه نکردید، این کار را انجام دهید.

📎لینک/👇

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

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

⭕️عملکرد اسکریپت

🔹دریافت تعدادی AudioClip و قرار دادن آن ها در متغیر آرایه ای clips

🔸انتخاب یکی از کلیپ ها به صورت تصادفی با کلاس Random
(جزییات بیشتر در مورد کلاس Random/👇)
▶️ https://t.me/UnityLearning/461

🔹پخش کلیپ توسط کامپوننت AudioSource

🔸صبر کردن برای تمام شدن مدت زمان کلیپ صوتی با دستور WaitForSecconds
(مطالب بیشتر از ایجاد تأخیر/👇)

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

🔹انتخاب مجدد یک کلیپ به صورت تصادفی و اجرای مجدد


⭕️#آموزش نحوه استفاده

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

❗️دقت کنید در کنار این اسکریپت حتما کامپوننت AudioSource را نیز به #آبجکت بدهید.

در تنظیمات اسکریپت در #پنجره inspector برای متغیر clips یک گزینه بازشو (فلش رو به پایین) وجود دارد. با کلیک روی این فلش مقادیر آرایه قابل مشاهده است. تعداد پارامتری که می‌خواهید را در پارامتر اول وارد کنید و بعد از آن کلیپ های مورد نظر را که به پروژه تان اضافه کردید(پنجره Project) را به آنها بکشید(از پنجره Project به روی هر کدام از clip 1 clip 2 و... دِرَگ کنید)

📌اگر این کار را صحیح انجام داده باشید، کار تمام است و با اجرای بازی این آبجکت پخش کننده یکی از صدا هایی که به آن می‌دهید به صورت خودکار خواهد بود.

📋اسکریپت آماده به زودی در پست بعدی قرار می‌گیرد.

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

@UnityLearning
AudioPlayer.js
596 B
#دانلود اسکریپت آماده پخش یک کلیپ صوتی به صورت رندوم (تصادفی) در #کامپوننت AudioSource

اطلاعات بیشتر/👇

https://t.me/UnityLearning/558
میلاد با سعادت حضرت امام حسن مجتبی کریم اهل بیت را به تمام شیعیان جهان تبریک عرض می‌کنیم.

🌸
🌸🌼. @UnityLearning
🌸🌼🌺
🌸🌼🌼🌼
🌸🌸🌸🌸🌸
⭕️بدست آوردن مسیر جاری بازی برای استفاده در دستورات کار با فایل

🔘در پست های گذشته برای اولین بار در اینترنت آموزش کار با فایل به زبان جاوا اسکریپت در #یونیتی را بیان کردیم. لینک پست /👇

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

◀️ در #ادامه این مطلب برای کار با #فایل فرض کنید بخواهیم فایلی که می سازیم در پوشه اجرایی بازی (پوشه ای که بازی از آن اجرا شده است) ایجاد شود.

🌐برای بدست آوردن مسیر پوشه جاری در یونیتی از کلاس Application استفاده می‌کنیم. همانطور که قبلا نیز بیان کردیم برای دسترسی به دستوراتی که مربوط به فایل نهایی بازی مان است از این کلاس استفاده می‌کنیم، در اینجا از این کلاس مسیر جاری را می خواهیم/👇

Application.dataPath

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

🔹اگر در محیط ساخت بازی باشیم این مسیر شامل مسیر قرار گیری فایل .unity یعنی مسیر پوشه Asset اشاره خواهد کرد.

🔰به طور خلاصه، در هر پلتفرم این دستور به موارد زیر اشاره می‌کند./👇

🔹Unity Editor: <path to project folder>/Assets

🔸Mac player: <path to player app bundle>/Contents

🔹iOS player: <path to player app bundle>/<AppName.app>/Data (this folder is read only, use Application.persistentDataPath to save data).

▫️Win/Linux player: <path to executablename_Data folder>

▪️WebGL: The absolute url to the player data file folder

🔹Android: Normally it would point directly to the APK. The exception is if you are running a split binary build in which case it points to the the OBB instead.

🔸Windows Store Apps: The absolute path to the player data folder


📌موارد بالا/👆 خروجی دستور dataPath در پلتفرم های خاص است.

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





⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️باز شدن یک سایت (URL) در بازی

◀️ در صورتی که بخواهید یک سایت خاص در بازی تان باز شود، از تابع OpenURL مربوط به #کلاس Application استفاده می‌کنیم./👇

#مثال

Application.OpenURL ("http://unity3d.com/");

👈این دستور به طور مثال سایت یونیتی را در مرور گر پیش فرض سیستم باز می‌کند. در هر محلی که بخواهید در اسکریپت تان می توانید از این دستور کاربردی استفاده کنید.

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



⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
UnitySetup64-2017.1.0b1.exe
511.9 MB
⭕️ #دانلود نسخه جدید (بتا) از #یونیتی

♻️نسخه: 2017.1 بتا
💠مناسب برای تمام نسخه های ویندوز 64 بیتی

Unity Editor Setup 2017.1 b

@UnityLearning
⭕️ارائه نسخه 2017.1 #یونیتی

🌐 شرکت یونیتی در هفته ای که گذشت نسخه جدیدی از یونیتی ارائه کرد، بر خلاف انتظار که همه منتظر بودند نسخه جدید با عددی جدید (مثلا عدد 6) ارائه گردد، نسخه جدید یونیتی با نسخه سال ارائه شد.

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

ℹ️ زمانی که این نسخه نهایی شد، آن را برای تمام پلتفرم ها به صورت کامل برای دانلود قرار خواهیم داد. نسخه ویندوز یونیتی 2017.1 بتا را برای مشاهده شما قرار دادیم.👇

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

☑️ باید دید علت اصلی تغییر در روند ارائه نسخه های عددی یونیتی به 2017 چیست؟ معمولاً شرکت های بزرگ نرم افزاری زمانی که تغییر بزرگی در ساختار برنامه ایجاد می‌کنند این کار را انجام می‌دهند.


@UnityLearning
⭕️قرار دادن #متن در حالت اجرای بازی روی صفحه

▫️برای قرار دادن متن روی صفحه بازی(بدون استفاده از آبجکت UI Text) از کلاس GUI استفاده می‌کنیم. دقت کنید می خواهیم این کار(ایجاد شدن یک متن روی صفحه ظاهری بازی) در حالت runtime یا اجرای بازی اتفاق بیافتد. در پست زیر مطالبی از #کلاس GUI توضیحاتی داده ایم.

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

◀️ مطالب کامل تر

📌 کلاس GUI کلاسی برای کار با رابط گرافیکی کاربر در #یونیتی است. این عملیات به جای تابع Update می‌تواند در تابع OnGUI انجام شود، مطالب بیشتر برای این تابع در پست زیر/👇

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

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

🔸برای این کار از تابع Label از کلاس GUI استفاده می‌کنیم/👇

GUI.Label (Rect (10, 10, 100, 20), "Hello World!");

👈این دستور متن Hello World را در مستطیل ساخته شده در مختصات (10,10) تا نقطه پایانی (20,100) قرار می‌دهد.

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

🔘در دستور داده شده این پارامتر ها همین نقاط هستند، این دستور مستطیل را در محل مورد نظر رسم می‌کند و متن را در آن قرار می دهد.

🔲 از این پارامتر(Rect) در دستورات GUI زیاد استفاده خواهیم کرد، به همین علت کامل توضیح داده شد.


🔜 #ادامه_دارد


↙️ آموزش قرار دادن متن با استفاده از آبجکت UI Text/👇
(در مطالب گذشته کانال)

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

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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ #آموزش های مربوط به تنظیم آسمان بازی در پست های زیر موجود است.

🔹این پست ها شامل آموزش متنی، تصویری(PDF) و #پکیج کاملی از چند Skybox است.

🔸به #درخواست برخی کاربران

🔰🔰انتـــخاب کنید🔰🔰
jdk_8u131_windows_x64.exe
198 MB
⭕️ #دانلود JDK فایل های کتابخانه ای جاوا برای ساخت بازی #اندروید در #یونیتی

💯شماره نسخه: 8.131
♻️سیستم عامل: ویندوز 64 بیتی

🔹Java Development Kit Windows 64bit


@UnityLearning
jdk_8u131_linux_x64_rpmAuthParam
162.1 MB
⭕️ #دانلود JDK فایل های کتابخانه ای جاوا برای ساخت بازی #اندروید در #یونیتی

💯شماره نسخه: 8.131
♻️سیستم عامل: لینوکس 64 بیتی

🔹Java Development Kit Linux 64bit


@UnityLearning
jdk_8u131_macosx_x64.dmg
226.6 MB
⭕️ #دانلود JDK فایل های کتابخانه ای جاوا برای ساخت بازی #اندروید در #یونیتی

💯شماره نسخه: 8.131
♻️سیستم عامل: مک

🔹Java Development Kit Mac


@UnityLearning
دسترسی مستقیم به کل مطالب مربوط به ساخت بازی اندروید تا کنون در کانال

🔰به منظور سهولت کاربران در دسترسی به مطالب مربوط به تولید بازی در پلتفرم اندروید در یونیتی، این پست را قرار می دهیم و سعی می‌کنیم کمی توضیحات را کامل کنیم.

🔸دقت کنید برای کار با اندروید(در هر نرم افراری) نیاز به Android SDK که کتابخانه برنامه نویسی اندروید می‌باشد، دارید.

🔹در کنار این فایل به علت این سیستم عامل اندروید با جاوا نوشته شده است، نیاز به نصب JDK نیز دارید. jdk هم کتابخانه های برنامه نویسی جاوا می‌باشد.

🔰 برای دسترسی سریع انتخاب کنید🔰
⭕️ بررسی پلتفرم خروجی بازی در #کد_نویسی

💡اگر بازی که می سازیم از جمله بازی هایی باشد که در پلتفرم های مختلف ارائه می‌شود، باید بتوانیم در کد نویسی نوع پلتفرم را بررسی کنیم و بر اساس آن تصمیم بگیریم.

🖲به طور #مثال فرض کنید، بازی که هم در نسخه ویندوز و هم موبایل (مثلا اندروید) ارائه می‌شود باید برای نسخه موبایل کنسول حرکتی خاص با لمس صفحه داشته باشد در حالی که این اتفاق در ویندوز باید با کیبورد یا ماوس انجام شود.

🕹برای بررسی پلتفرم در کد نویسی از #کلاس Application استفاده می‌کنیم، این کلاس پارامتری به نام platform دارد که نوع آن(خروجی آن) از نوع RuntimePlatform می‌باشد. به کمک این دستورات می توانیم پلتفرم خروجی بازی را بررسی کنیم. به مثال زیر توجه کنید/👇

if ( Application.platform== RuntimePlatform.WindowsPlayer)
{.....

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

⭕️برای سایر پلتفرم ها مثل اندروید و... از دستور RuntimePlatform ، می‌توانید تصویر پست بعدی را مشاهده کنید/👇

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

👈این تصویر کلیه پارامتر های دستور را نشان میدهد یعنی شما برای پلتفرم خاص خود باید چه چیزی در دستور شرطی به جای Windows بنویسید.

#ادامه_دارد




⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️پارامتر های مختلف دستور RuntimePlatform

📍اطلاعات بیشتر/👇

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

@UnityLearning
⚫️فرا رسیدن ایام شهادت مظلومانه حضرت علی بزرگ پیشوای شیعیان را تسلیت عرض می‌کنیم.

⚪️ در این شب‌های قدر التماس دعای فراوان داریم.

🔹لیله القدر خیر من الف شهر
🔸شب قدر فضیلتش از هزار ماه بیشتر است.
⭕️ #کلاس Input

🔰 دستورات و قواعد کلاس Input را در پست های قبلی بررسی کردیم. به طور خلاصه این کلاس برای بررسی انجام یک عمل از دستگاه های ورودی به کار می رود.

ℹ️برای مطالعه بیشتر مطالب زیر را مطالعه کنید.👇

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

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

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

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

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



👈در اینجا سایر دستورات این کلاس کاربردی را مورد بررسی قرار می‌دهیم.

🔸دستور anyKey

اگر هر کلیدی از ماوس یا صفحه کلید زده شود این دستور true را بر می‌گرداند.

Input.anyKey

🔹دستور mousePosition

محاسبه مختصات ماوس در روی صفحه، خروجی دو بعدی(زمانی که ماوس قابل نمایش است)

🔸دستور touchSupported

این دستور مشخص می‌کند آیا دستگاهی که بازی روی آن اجرا می‌شود قابلیت لمس دارد یا خیر؟
(اگر دستگاه نهایی قابلیت تاچ یا لمس دارد خروجی این دستور true خواهد بود)

🔜در یک فایل PDF به زودی متد ها و توابع کلاس Input را توضیح می‌دهیم.

🔹دانلود فایل/👇
▶️ https://t.me/UnityLearning/576


#ادامه_دارد


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
Input.pdf
439.7 KB
⭕️ #دانلود فایل PDF آموزش کامل توابع کلاس Input

👌به همراه قطعه کدهای استاندارد کامل این توابع

@UnityLearning
🌸بسم الله الرحمن الرحیم

🌷إِنَّا أَنْزَلْنَاهُ فِي لَيْلَةِ الْقَدْرِ 1⃣

🌹ما قرآن را در شب قدر نازل کردیم


🌷وَمَا أَدْرَاكَ مَا لَيْلَةُ الْقَدْرِ 2⃣

🌹و تو چه دانى كه شب قدر چيست؟

🌷لَيْلَةُ الْقَدْرِ خَيْرٌ مِنْ أَلْفِ شَهْرٍ 3⃣

🌹 شب قدر بهتر از هزار ماه است.


🌷تَنَزَّلُ الْمَلَائِكَةُ وَالرُّوحُ فِيهَا بِإِذْنِ رَبِّهِمْ مِنْ كُلِّ أَمْرٍ4⃣

🌹 در آن شب فرشتگان و روح به فرمان پروردگارشان براى انجام دادن كارها نازل مى‌شوند.


🌷سَلَامٌ هِيَ حَتَّى مَطْلَعِ الْفَجْرِ 5⃣

🌹 آن شب تا طلوع بامداد همه سلام و درود است.


🍀منبع متن: نرم افزار قرآن مبین

🙏التماس دعا

◼️◼️◼️◼️◼️◼️◼️◼️

گرامی داشت شب‌های قدر

⚫️@UnityLearning⚫️