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
directx_Jun2010_redist.exe
95.6 MB
⭕️ #دانلود آخرین نسخه ارائه شده از DirectX
برنامه شتاب دهنده گرافیکی لازم برای بازی ها و نرم افزار های گرافیکی

🔹نسخه jun 2010

از این تاریخ به بعد دایرت ایکس روی ویندوز ها ارائه شد.

@UnityLearning
com.netspark.firewall.apk
4.1 MB
⭕️ #دانلود آخرین نسخه از نرم افزار Mobiwol نرم افزار جلوگیری از مصرف اینترنت(Firewall) برای گوشی های اندروید

نیاز به روت: ندارد
📛بهترین نرم افزار فایروال بدون روت

برای بالا بردن امنیت
#مقایسه قالب دستورات در سه زبان

🔹 JavaScript - C# Script - Boo Script

@UnityLearning
What_are_the_Syntax_Differences.pdf
221.1 KB
مقاله انگلیسی #مقایسه قالب دستورات در سی شارپ اسکریپت و جاوا اسکریپت برای استفاده در #یونیتی

🔹 بیان دستورات و آموزش کامل فارسی به زودی در یونیتی لرنینگ



@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
C# vs JS syntax

⭕️ #دانلود #فیلم مقایسه قالب دستورات سی شارپ و جاوا اسکریپت در یونیتی

🔸منبع: سایت یونیتی
🔹دانلود شده از youtube

@UnityLearning
Audio
Alireza Assar/(www.PlayMusic.Pro)
⚫️آهنگ وطن با صدای علیرضا عصار
🇮🇷
#تسلیت
#همه_با_همیم
#کنارهمیم

وطن یعنی هدف یعنی شهامت
وطن یعنی شرف یعنی شهادت

وطن یعنی ایران


@UnityLearning
com.aanimator.DetectivesClub.apk
95.3 MB
⭕️ #دانلود بازی ایرانی کلوپ کارآگاهان برای اندروید

📍ساخته شده با موتور #یونیتی

@UnityLearning

🔘به منظور حمایت از تولید کننده دانلود از گوگل پلی در پایین👇👇
توضیحاتی از اسکریپت نویسی به زبان سی شارپ در یونیتی

🔘 سی شارپ به علت پشتیبانی از وراثت در بین برنامه نویسان مورد محبوبیت قرار گرفته است.

🔗 برای برنامه نویسی به زبان سی شارپ ابتدا باید کتابخانه های لازم یونیتی را برای کد معرفی کنیم./👇

using UnityEngine;
using System.Collections;

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

🔹 همانطور که می دانید دستورات در سی شارپ باید حتما در یک کلاس قرار گرفته باشند. در اینجا(یونیتی) باید کلاس ما از جنس MonoBehaviour باشد تا توسط کامپایلرِ سی شارپِ یونیتی به عنوان کدهایی که باید توسط آبجکت های یونیتی اجرا شوند، شناسایی شود.

در ادامه لازم است متغیر های سراسری (Public ، Protected یا Private) را تعریف کنیم. این متغیرها در ابتدای کلاس قرار خواهند گرفت.

اگر می خواهیم این متغیر در یونیتی مقدار دهی شود(مانند کاری که در جاوا اسکریپت می کردیم) باید حتما نوع متغیر سراسری Public باشد.

🔗 در ادامه دستورات (طبق روال زبان سی شارپ) توابع مورد نظر تعریف و استفاده خواهند شد. مثلا تابع update به شکل زیر خواهد بود./👇

void Update()
{

.....

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

🔹 این مطلب به #درخواست کاربران کانال مبنی بر قرار دادن کد های سی شارپ در کانال (در کنار کد های جاوا اسکریپت) قرار گرفت و در پست آتی تکمیل و تکمیل تر می شود. برای شروع و در پست بعد اسکریپت آماده و ساده کد هوش مصنوعی حرکت (Enemy AI Move) را که ساده ترین حالت هوش مصنوعی برای حرکت آبجکت(که کد به آن متصل خواهد شد) به سمت هدف(که تگ آن Player اســـت)، می باشد.

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

🔹لینک کد هوش مصنوعی/👇
▶️https://t.me/UnityLearning/554

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



کانال یونیتی لرنینگ
💢 @UnityLearning💢
EnemyAI.cs
1.8 KB
⭕️ #دانلود اسکریپت آماده هوش مصنوعی به زبان سی شارپ

🔹حرکت آبجکت به سمت دیگر آبجکت هایی که تگ Player دارند.

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

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

@UnityLearning
Explode(@UnityLearning).rar
760.8 KB
#دانلود #پکیج سه #صدا ی انفجار برای استفاده در بازی

🔹 می توانید از این صداها در تابع

OnCollisionEnter

استفاده کنید.

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

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

🔸 قبلا بیان شد، برای پخش صدا در بازی به کامپوننت 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💢