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
اولویت دهی به اجرای برخی اسکریپت ها

🔹 همانطور که می دانید در یونیتی همه اسکریپت ها با هم اجرا می شوند و نمی توان گفت کدام اولیت خاصی دارد| یعنی کدام زودتر از دیگری اجرا می شود؟ | البته منظور آنچه در توابع Start و Awake نوشته می شود است.

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

🔹 Edit -> Project Settings -> Script Execution Order

🔘 با رفتن به این مسیر بخش MonoManager در #پنجره Inspector نمایش داده خواهد شد و شما می توانید اولویت ها را در آن وارد کنید (هرچه عدد کوچکنر باشد یعنی اولیت اجرای این اسکریپت بیشتر است و زودتر از سایرین اجرا خواهد شد) | تصویر پست بعدی |

🔸 به کانال یونیتی لرنینگ
بپــــــــیوندید🔻
👉 @UnityLearning
#پنجره Inspector و بخش MonoManager برای مشحص کردن ترتیب اجرای اسکریپت ها

با اضافه کردن اسکریپت ها به این بخش و وارد کردن عدد برای اجرای آنها اولویت تعیین کنید.

@UnityLearning
بنیاد ملی بازی های رایانه ای|شبکه خبر
شبکه خبر|کانال یونیتی لرنینگ
🎵 فایل صوتی صحبت های مدیریت بنیاد ملی بازی های رایانه ای در شبکه خبر
(برنامه روی خط خبر صبح یک شنبه 16-07-1396)

موضوع: صنعت ساخت بازی های رایانه ای، فرصت ها و نیازها

#انتشار_دهید

👉 @UnityLearning
⭕️ #کلاس Array در جاوا اسکریپت

🔹 کلاس کاربردی برای ساخت آرایه در جاوا اسکریپت Array است که به کمک آن شما می توانید آرایه ای با آبجکت های مختلف در یک آرایه داشته باشید. (این کلاس در سی شارپ وجود ندارد!)

🔸دستور زیر یک آرایه در جاوا می سازد /🔻
var arr = new Array ();

(ساخت یک آرایه چند وجهی با نام arr)

همچنین می توان در پرانتز (مقابل کلمه Array ) برخی از اعضای آرایه را نیز به آن ارسال کرد. /🔻

var array = new Array ("Mohammad","ali");

مقادیر Mohammad و ali در اعضای 0 و 1 آرایه به نام array قرار خواهد گرفت.

🔸با دستور Push می توان به یک آرایه که با کلاس Array تعریف شده است مقدار (عضو) جدید ارسال کرد. /🔻

array.Push("reza");

این دستور عضو reza از نوع رشته| String را به آرایه اضافه می کند.

(عملکرد دستور Add از کلاس Array نیز به همین شکل است و برای اضافه کردن عضو جدید به انتهای آرایه استفاده می شود)

🔸دستور Pop با آرایه مثل یک پشته | Stack رفتار می کند و بنابراین آخرین عضو اضافه شده به آرایه را از آن حذف می کند.

با دستور Clear کل آرایه خالی می شود. /🔻

hello.Clear();

(اگر hello یک آرایه باشد دستور بالا آن را خالی می کند| تعداد اعضای آن صفر می شود)

🔸با دستور Sort اعضای آرایه شما مرتب می شود. (اعضای آرایه به شکل مرتب شده در آن قرار می گیرد| ترتیب اعضا تغییر می کند)

به کانال آموزش موتور یونیتی
بپیــــــوندید🔻
@UnityLearning
vi6kljmclhj4_venus.zip
1.8 MB
⭕️ #دانلود #آبجکت سیاره ونوس (زهره)

این آبجکت مانند Sphere است و می توانید تنها از تکسچر موجود روی Sphere ِخود یونیتی استفاده کنید.

به کانال یونیتی لرنینگ
بپیوندید🔻
@UnityLearning
⭕️ کاربرد پارامتر pitch در #کامپوننت Audio Soruce | برای تعیین سرعت پخش #صدا در بازی

به کانال یونیتی لرنینگ
بپیـــــــوندید🔻
👉 @UnityLearning
⭕️ #کامپوننت کاربردی Mesh

🔹فضای فیزیکی که یک آبجکت می گیرد توسط کامپوننتی به نام Mesh ساخته می شود. در واقع اگر این کامپوننت را فعال/غیر فعال کنیم متوجه این موضوع می شویم که با این کار ظاهر فیزیکی که آبجکت دارد را از آن میگیریم/ یا به آن می دهیم.

🔸 البته کاربرد کامپوننت Mesh در یونیتی بسیار فراتر از اینهاست. اما به بیان ساده و اولیه می توان گفت آنچه که می توان به آن ظاهر سه بعدی آبجکت گفت توسط این کامپوننت اجرا می شود. که ورودی آن مدلی است که معمولاً در نرم افزار های تولید آبجکت (مثل 3D Max) تولید شده است و بر اساس آن مدل #کامپوننت مذکور مدل را در فضای سه بعدیِ بازی می سازد.

⚪️ کامپوننت های Mesh Collider و Material نیز از زیر مجموعه های این کامپوننت هستند.

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

به کانال آموزشی
یونیتی لرنینگ بپیوندید🔻
@UnityLearning
🔹 کامپوننت Mesh در یونیتی قابلیت بازکردن مدل با فرمت های زیر را دارد🔻

.fbx, .dae (Collada), .3ds, .dxf, .obj, and .skp .blend

این فرمت ها معروف ترین فرمت های تولید آبجکت در جهان هستند.
⭕️ اعمال نیرو مانند انفجار به آبجکت های دارای #کامپوننت Rigidbody

🔹 در یونیتی و در کلاس Rigidbody دستوری با عنوان AddExplosionForce وجود دارد که به کمک آن می توان حالت اعمال نیرو مانند انفجار یک بمب را شبیه سازی کرد. اگر دستور فوق از کامپوننت Rigidbody یک آبجکت را فراخوانی کنید، این دستور نیرویی از محلی که در پارامتر های آن داده اید به آبجکت وارد می کند. قالب کلی این تابع به شکل زیر است/🔻

rb.AddExplosionForce(power, explosionPos, radius, 3.0F);

🔸 در دستور داده شده rb همان کامپوننت Rigidbody از آبجکت مورد نظر است.

🔸 پارامتر power میزان نیروی وارده به آبجکت است (بر اساس float|عدد اعشاری)

🔸 پارامتر explosionPos محل اولیه انشار نیرو است (مثلا محل انفجار بمب)

🔸 پارامتر radius نیز برای نهایت شعاعی است که نیرو در آن به آبجکت ها وارد می شود. (بر اساس قوانین فیزیک)

🔸🔶 پارامترهای بعدی این دستور نیز ForceMode است که قبلاً در توضیح تابع AddForce به طور کامل توضیح داده شده است.

☑️ به منظور اینکه یک نیروی واحد به کلیه آبجکت های اطراف یک محل انفجار وارد شود، باید تک تک آبجکت های دارای کامپوننت Rigidbody را بدست آورد و برای همه آنها دستور فوق را صدا زد(این کار در یونیتی با تابع For (برای جاوا اسکریپت) و Foreach (برای سی شارپ) انجام می شود)

🔘 در پست بعدی اسکریپت ساده برای ایجاد یک نیرو (حالت انفجار) در محل (آبجکتی که کد به آن متصل می شود) قرار می گیرد.

|توجه کنید| این اسکریپت، در محل داده شده و در شعاع وارده کلیه آبجکت های دارای Rigidbody را پیدا کرده و نیرو را به آنها وارد می کند. (به طور مثال می توان این اسکریپت را به آتشی داد که در محل انفجار ایجاد می شود، چون اسکریپت تنها در تابع Start اجرا می شود، بنابراین در این بخش قابل استفاده است )


به کانال یونیتی لرنینگ
بپیــــــــــــــوندید🔻
@UnityLearning
AddExplosionForce.js
524 B
اسکریپت آماده برای اعمال نیرو به سایر آبجکت ها به مرکزیت آبجکتی که این کد به آن متصل شده است و در شعاع مشخص شده برای اسکریپت.

این نیرو شبیه ساز حالت انفجار است!

به زبان #جاوا اسکریپت

@UnityLearning
🔹🔷 لطفا نظر خود در رابطه با کانال و کیفیت آموزش ها در قالب یک نظر سنجی اعلام نمائید. UnityLearning 🔸🔶 کیفیت مطالب را چگونه ارزیابی می‌کنید؟
anonymous poll

عالــــی – 64
👍👍👍👍👍👍👍 71%

خـــوب – 16
👍👍 18%

متوسط – 6
👍 7%

بــــــد – 4
▫️ 4%

👥 90 people voted so far.
UseGravity.js
205 B
⭕️ اسکریپت آماده برای غیر فعال کردن حالت جاذبه

این اسکریپت واکنش در برابر نیروی جاذبۀ هر آبجکتی که به محدودۀ Trigger وارد شود را غیر فعال می کند.
Unity Learning
UseGravity.js
🔘 توضیحات اسکریپت

🔹 در یونیتی برخی #کلاس ها یک سری دستورات برای دسترسی مستقیم به برخی کامپوننت ها دارند. مثلا دستور attachedRigidbody که معادل کامپوننت Rigidbody متصل شده به آبجکت است و می توان گفت معادل دستور زیر است /🔻

GetComponent.<Rigidbody> ();

☑️ برخی از کامپوننت ها مانند Rigidbody دستور معادل و ساده برای جلوگیری از برنامه نویسی زیاد (با تابع GetComponent) را ارائه داده اند.

🔸 در اسکریپت قرار داده شده، به کمک دستور useGravity که از نوع boolean است واکنش جاذبه آبجکت ها را غیر فعال کرده ایم.

other.attachedRigidbody.useGravity = false;

👈 می توان در مواقع لازم مثلا در تابع OnTriggerExit مجدداً آن را فعال کرد تا یک محدوده ایجاد کرد که در آن جاذبه معنا نداشته باشد. (این محدوده همان Trigger ایست که شما برای آبجکتی که این کد را به آن می دهید، ایجاد کرده اید)


📍 لطفاً کانال «یونیتی لرنینگ» را به دوستان و آشنایان خود و همه علاقه مندان به بازی و بازی سازی معرفی کنید.

@UnityLearning
⭕️ بازی بسیار زیبای Naval Action از سری بازی های سبک شبیه سازی ، ساخته شده با موتور یونیتی است.

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

@UnityLearning
انتخاب Web Templete یا قالب برای خروجی بازی های تحت وب در یونیتی

به همراه توضیحات کامل در تصویر

به کانال یونیتی لرنینگ بپیوندید
@UnityLearning
Audio
⭕️ #دانلود #صدا ی وزش باد با قابلیت Loop

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

به طور مثال برای صدای پس زمینه مناطقی برفی یا شب

به کانال یونیتی لرنینگ
بپیــــــــوندید /🔻
@UnityLearning
Unity Learning
⭕️ #دانلود #صدا ی وزش باد با قابلیت Loop به #درخواست شما به طور مثال برای صدای پس زمینه مناطقی برفی یا شب به کانال یونیتی لرنینگ بپیــــــــوندید /🔻 @UnityLearning
🔸برای استفاده از #صدا های پس زمینه ای مثل باد سعی کنید یک Game Object خالی در مقابل کاراکتر خود قرار دهید و صدای باد را به آن بدهید تا بازی طبیعی تر جلوه کند. چون اگر این صدا را به همان کاراکتر در حال بازی کردن (#کامپوننت Audio Source متصل به پلیر| دقیقاً همانجایی که Audio Listener وجود دارد) این صدا طبیعی نخواهد بود چون صدا باد درست است که همه جا وجود دارد اما باید کمی با بازیکن فاصله داشته باشد.

🔹سپس این GameObject را به بازیکن خود (مثلاً FPSController) بدهید تا همراه با حرکت کند. صداهای دیگر مثل آهنگ ها که برای پس زمینه استفاده می شوند با پخش در محل Player مشکلی ایجاد نمی کنند، تنها کافی است Volume آنها را درست و پایین تر از صداهای عادی بازی تنظیم کرد.

🎵 البته توصیه ما این است که برای صداهایی مثل صدای باد از صداهای با طول بیشتر ولی با قابلیت Loop استفاده کنید. این قابلیت باعث می شود، بازیکن نهایی(کاربر) متوجه اتمام و شروع مجدد صدا نشود، یعنی ابتدا و انتهای صدا به هم مرتبط است.

به کانال آموزشی
یونیتی لرنینگ بپیوندید/🔻
@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ نحوه ی Assign کردن (مقدار دهی) پارامتر Audio Clip برای پارامتر Audio Source یا اسکریپت های دارای متغیر از این نوع (تعریف شده به شکل زیر /🔻 در ابتدای اسکریپت)

var clip:AudioClip;

@UnityLearning
Unity Learning
⭕️ نحوه ی Assign کردن (مقدار دهی) پارامتر Audio Clip برای پارامتر Audio Source یا اسکریپت های دارای متغیر از این نوع (تعریف شده به شکل زیر /🔻 در ابتدای اسکریپت) var clip:AudioClip; @UnityLearning
⭕️ نکاتی در رابطه با Assign کردن یا مقدار دهی برخی پارامتر ها در یونیتی

🔸همانطور که می دانید در یونیتی برخی کامپوننت ها و یا اسکریپت هایی که نوشته می شود، نیاز به مقدار دهی برخی پارامتر هایشان دارند. مثلاً پارامتر AudioClip در #کامپوننت AudioSource که برای معرفی صدایی که قرار است این کامپوننت پخش کند، مقدار دهی می شود. بنابراین می توان گفت مقدار دهی ها (به اصطلاح Assign ) معرفی یک Asset به کامپوننت است (توجه کنید که اسکریپت ها نیز یک کامپوننت هستند)

🔹 در یونیتی مقدار دهی فقط با آبجکت یا Asset متناظر انجام می شود، یعنی شما نمی توانید مثلاً یک Game Object به یک پارامتر از نوع Audio Clip بدهید.

▫️ نحوه مقدار دهی در یونیتی نیز با دِرَگ کردن و یا انتخاب دایره کنار پارامتر صورت می گیرد که روش اول آسان تر است.

👌 دِرَگ کردن در یونیتی از پنجره های Project و Hierarchy به Inspector قابل انجام است یعنی شما Asset مورد نظر را از یکی از این پنجره ها گرفته و به پارامتر معادل می دهید. اما حالتی هم برای درَگ کردن از پنجره Inspector به خودش است و آن تنها برای مقدار دهی متغیرهایی از نوع کامپوننت است. زمانی که یک متغیر از نوع یک کامپوننت تعریف کردید و لازم است آن را مقدار دهی کنید یکی از روش ها درگ کردن آن کامپوننت روی پارامتـــــر تعریف شده است.

🔹به کانال یونــــیتی لرنینگ
بپیـــــــوندید /🔻
@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
مقدار دهی پارامتر های آرایه ای در یونیتی

هم از پنجره Hierarchy و هم از پنجره Project

اگر آبجکت را روی نام پارامتر بکشید ، خودکار به آخرین عضو آرایه اضافه می‌شود و نیازی به تغییر گزینه Size نیست.
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ #دانلود #کاراکتر_سوم_شخص به صورت پروژه کامل

آماده جهت استفاده در پروژه اصلی با قابلیت های کامل (حرکت، پرش، حرکت دوربین با ماوس و...)

🔻در پست بعدی دانلود کنید🔻