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
⚫️فرا رسیدن سالروز شهادت امام سجاد علیه السلام فرزند بزرگوار امام حسین را تسلیت عرض می‌کنیم.

السلام علیک یا علی بن الحسین یا زین العابدین
یا وجیهاً عِندالله، اِشْفَعْ لَنا عِندَاللّه

@UnityLearning
⭕️ کامپوننت های خاص در یونیتی

🔹 یونیتی برای انجام برخی اعمال معمول اسکریپت های آماده ای را طراحی کرده است. این اسکریپت ها در منوی Component برای دسترسی قرار گرفته اند.

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

▫️ در نظر داریم برخی از این اسکریپت ها (کامپوننت ها) را توضیح دهیم. یکی از این کامپوننت ها Character Controllers است که شرایطی برای حرکت اجسام مانند حرکت انسان فراهم می‌کند. این کامپوننت دستورات و توابعی را به برنامه نویس ارائه می دهد که به کمک آن می تواند آبجکت مورد نظرش تا حرکت بدهد و... (در واقع هر آنچه برای حرکت لازم است توسط این #کامپوننت پیاده سازی می‌شود)

مهمترین تابع این کامپوننت Move است که در صورتی که فراخوانی شود، آبجکت به سمت محل داده شده حرکت می‌کند. این حرکت در علم فیزیک مشابه حرکت انسان پیاده سازی می‌شود و این دقیقا ً تفاوت این کامپوننت با سایر دستوراتی است که برای حرکت تاکنون بیان کرده ایم. (مثل دستور MoveTowards از کلاس Vector3)

▪️ لازم به ذکر است این کامپوننت میزان و نحوه حرکت را بر اساس تنظیماتش که در پنجره Inspector نمایش داده می‌شود، تنظیم می‌کند.


⭕️ نحوه استفاده از کامپوننت Character Controller

ابتدا باید این کامپوننت را به آبجکت مورد نظر بدهید ، مسیر اضافه کردن /👇

Component Menu -> Physics -> Character Controller

❇️ سپس می‌توانیم با کد نویسی به شکل زیر ابتدا به آن دسترسی داشته باشیم و سپس هر دستور، تابع یا پارامتری از آن صدا بزنیم روی آن اعمال می‌شود(روی آبجکتی که این کامپوننت را به آن داده ایم)

🔸 #جاوا /👇
var controller : CharacterController = GetComponent.<CharacterController>();

🔸 #سی_شارپ /👇

CharacterController controller = GetComponent<CharacterController>();

🔘 حـــال، مثلا برای صدا زدن تابع Move می توانیم به شکل زیر عمل کنیم /👇 ( #جاوا و #سی_شارپ )

controller.Move(Direction);

👈در این دستور آبجکتی که کامپوننت Character Controller را به آن داده ایم به سمت Direction که یک متغیر از نوع Vector3 است حرکت می‌کند.

🔜 سایر دستورات، پارامترها و توابع کامپوننت Character Controller را به همراه اسکریپت های آماده و بسیار کاربردی، در پست های بعدی توضیح می دهیم. همچنین سایر کامپوننت هایی که برای ما چنین شرایطی در برنامه نویسی فراهم می‌کنند را نیز در پست های بعدی توضیح خواهیم داد.



⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
CharacterController_Move.js
1.3 KB
📍اسکریپت آماده حرکت با استفاده از #کامپوننت CharacterController

قبل از استفاده از اسکریپت کامپوننت CharacterController را به آبجکت مورد نظر بدهید.
⭕️ #تابع OnControllerColliderHit

در #ادامه مبحث مربوط به #کامپوننت CharacterController

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

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

🔸 بنابراین با دادن این اسکریپت به کاراکتر خود، هر گاه این کاراکتر به اجسام دارای Rigidbody برخورد کند آنها را جابجا می کند.

🔻اسکریپت آماده در پست بعدی قرار خواهد گرفت.🔻

به کانال یونیتی لرنینگ
بپیوندید👇
@UnityLearning
Push_Object.js
864 B
⭕️ اسکریپت شبیه سازی حالت هول دادن سایر آبجکت ها توسط آبجکت کاراکتر (دارای کامپوننت CharacterController)

📍دارای پارامتر میزان نیرو وارده به سایر آبجکت ها(pushPower)

📋 #جاوا اسکریپت

@UnityLearning
⭕️ نکاتی در رابطه با حلقه ها

🔹 همانطور که قبلاً نیز توضیح داده شده است، سه حلقه کلی در دو زبان #سی_شارپ و #جاوا وجود دارد.
While - Do While - For

👈 که البته در سی شارپ نوع دیگری از For نیز وجود دارد که برای پیمایش اعضای آرایه ها استفاده می شود و آن Foreach می باشد که البته در جاوا با همان دستور for قابل پیاده سازی است.

🔄 در حلقه ها دو دستور Break و Continue وجود دارد که در این پست می خواهیم آنها را بررسی کنیم.

🔘 دســــتور Break به طور کلی باعث توقف حلقه می شود. یعنی اگر از این دستور در بدنه حلقه استفاده کنیم، زمانی که کامپایلر به این خط می رسد، اجرای حلقه را متوقف کرده و از آن خارج می شود(دستورات بعد از حلقه اجرا خواهند شد)

⚪️ اما دستور Continue متفاوت است، این دستور اجرای بدنه حلقه را متوقف می کند اما کامپایلر را به ابتدای دستورات حلقه منتقل می کند. (یعنی دستورات بعد از Continue در بدنـــه حلقه اجرا نخواهند شد و مجدداً دستورات از ابتدای حلقه اجرا می شوند. (همانطور که می دانید اولین اقدام در دستورات حلقه For و While بررسی شرایط حلقه است و سپس اگر شرط برای ادامه یافتن درست بود دستورات مجدداً تکرار خواهند شد.)

☑️ از این دستورات در اسکریپت ها استفاده های زیادی می شود و یادگیری آنها و شناخت تفاوت بین این دستورات بسیار کاربردی و ضروریست.

به کانال یونیتی لرنینگ
بپیونـــــدید🔻
@UnityLearning
Day_and_Night_Cycle_With_Scattering
8.1 MB
⭕️ #پکیج ساده برای ساخت محیط شب و روز به همراه آبجکت ماه 🌕و حرکت ابرها☁️

کیفیت عادی - حجم کم - سادگی (سه ویژگی این پکیج است)

کافی است | پریفاب Moon را به محیط بازی خود در محل مورد نظر اضافه کنید.
CameraController.cs
1.1 KB
اسکریپت آماده برای دنبال شدن یک آبجکت توسط دوربین

این اسکریپت را به دوربینی بدهید که در ابتدا فاصله آن با را با آبجکت تنظیم کرده اید.

مبنای حرکت فاصلۀ بین دو آبجکت خواهد بود.

@UnityLearning
⭕️ نسخه 5.6.3 یونیتی نهایی شد. یونیتی در این هفته نسخه 5.6.3 را به صورت نهایی ارائه کرد. در این نسخه برخی مشکلات گزارش شده در نسخه های قبلی، رفع شده است و همچنین برخی ویژگی ها نیز به آن افزوده شده است. این تغییرات بیشتر مربوط به بازی های اندروید در یونیتی بوده است.

🔻دانلود نسخه های مختلف🔻
RandomMovement.cs
2.6 KB
⭕️ اسکریپت آماده برای حرکت یک آبجکت به صورت رندوم و تصادفی در محیط Scene با دستور AddForce

به همراه دستورات چرخش آبجکت به صورت تصادفی

@UnityLearning
Game Jam Menu Template.unitypackage
1.9 MB
⭕️ #پکیج مناسب برای ساخت منوی اولیه برای بازی

به همراه منوی وسط بازی

Start Menu | Pause Menu

@UnityLearning
Unity Learning
Game Jam Menu Template.unitypackage
🔘 برای استفاده از این پکیج Prefab به نام UI را می توانید به محیط بازی خود اضافه کنید، ماهیت این Prefab یک GameObject خالی است که تنها کد هایی که به آن محول شده است را اجرا می کند، همانطور که مشاهده می کنید، این پکیج خودش یک Canvas به همراه Event System به محیط بازی تان اضافه می کند (که هر دو به صورت #کامپوننت به آبجکت داده شده است)

🔹 در صورتی که اکنون بازی را اجرا کنید منوی اولیه بازی را به همراه یک صدا می شنوید که منتظر است تا بازیکن دکمه Play را بزند تا بازی شروع شود. آنچه شما ممکن است با آن مواجه شوید، این است که بازی تان بدون توجه به منوی اولیه اجرا می شود، این کاملاً طبیعی و صحیح است چون شما جایی نگفته اید که این مرحله از بازی متوقف شود و زمانی که می خواهیم اجرا شود.

☑️ شما برای استفاده از این UI باید یک Scene جداگانه برای بازی خود طراحی کنید (اولین Scene که اجرا می شود) و منو را در آن قرار دهید. سپس Scene اصلی که محیط مرحله اول بازی خود را در آن طراحی کرده اید به اسکریپت متصل به Prefab - UI بدهید. این اسکریپت با دستوراتی که قبلا بررسی کرده ایم Scene مورد نظرتان را بارگزاری می کند.

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

🎵 گاهی اوقات در بازی لازم است، #صدا بازی کم یا زیاد شود (در هر صورت لازم است برای افزایش جذابیت بازی صدا تغییر کند) برای دسترسی به پارامتر Volume راه های مختلفی در یونیتی وجود دارد. یکی از آنها تغییر Volume مربوط به AudioListener است. از آنجا که در هر بازی تنها یک AudioListener وجود دارد، به راحتی و با دسترسی مستقیم به آن می توانیم صدا(ها)ی تولید شده در بازی را با سطح صدای مختلفی شنید.

🔸 پارامتر Volume یک متغیر عددی (از نوع اعشاری| float) است که می تواند مقادیری بین 0.0 تا 1.0 را دریافت کند. 0.0 حالت عدم شنیدن صدا ها و 1.0 بالاترین سطح آن است. به طور مثال اگر AudioListener در دستور زیر کامپوننت مورد نظر باشد، دستور زیر سطح صدای بازی (در دریافت صدا) را تا نصف کاهش می دهد./👇

AudioListener.volume = 0.5;


به کانال یونیتی لرنینگ
بپیونـــــدید🔻
👉 @UnityLearning
اولویت دهی به اجرای برخی اسکریپت ها

🔹 همانطور که می دانید در یونیتی همه اسکریپت ها با هم اجرا می شوند و نمی توان گفت کدام اولیت خاصی دارد| یعنی کدام زودتر از دیگری اجرا می شود؟ | البته منظور آنچه در توابع 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

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