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
⭕️ قطع اتصال انجام شده در #کلاس Network

🔹اگر با دستور Connect به سرور(host) متصل شده باشیم، در مقابل با دستور Disconnect می توانیم این اتصال و همچنین کلیه اتصلات شبکه ای سیستم را قطع کرد (به این اصطلاحا خاموش کردن رابط شبکه سیستم نیز می گویند) /👇

Network.Disconnect();

⭕️ آماده سازی یک سیستم به عنوان سرور

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

👈 برای برپایی یک شبکه از دستور
Network.InitializeServer
استفاده می‌شود، مطالب این دستور مهم است. مثلا آدرس Ip که در دستور انتخاب می‌شود که باید همان آدرس سیستمی باشد که کد روی آن اجرا می‌شود.

🔹همچنین این دستور تعداد کانکشنی که می توانند به این سرور متصل شوند را مشخص می‌کند، در این دستور هم باید توجه داشت عددی انتخاب شود که بیشتر تعدادی که از نظر فیزیکی می توانند به این سیستم متصل شوند نباشد (به طور مثال در یک مودم وای فای قدیمی قابلیت اتصال نهایتا 8 دستگاه وجود دارد) .
▫️ دستورات تکمیلی را در پست های بعدی بیان خواهیم کرد. لطفا کانال را به دوستان تان معرفی کنید.

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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
دسترسی به صدا و فیلم های اینترنتی

👈 در #کلاس WWW برای اینکه به #صدا ها و فیلم هایی که روی اینترنت بارگزاری شده اند، را دانلود کرده و از آن ها استفاده کنیم، از یک کلاس تکمیلی به نام WWWAudioExtensions استفاده می شود. این کلاس صدا یا فیلم که دانلود می شود را از نوع AudioClip و MovieTexture بر می گرداند. آموزش استفاده از این نوع ها هم که در پست های قبلی توضیح داده شــــده است.

دستورات اصلی این کلاس به شرح زیر است/👇

🔸 دستور GetAudioClip برای دسترسی به AudioClip دانلود شده توسط کلاس www به کار می رود که حالت های بسیاری برای استفاده دارد. ساده ترین حالت استفاده به شرح زیر است/👇

WWWAudioExtensions.GetAudioClip(www);

پارامتر www همان متغیر از نوع کلاس WWW است که در دستورات قبل #دانلود روی آن انجام شده است و اکنون می خواهیم به پارامتر صوتی آن دسترسی داشت.

خروجی دستور بالا از نوع AudioClip است و می توان به راحتی آن را به کامپوننت AudioSource متصل کرد. (آموزش در پست های قبلی کاملا توضیح داده شده است)

🔸 حالت های دیگر دستور فوق نیز برای نوع صدا است که بر گردانده می شود (دو بعدی/ سه بعدی و ...) که در آینده توضیح داده خواهند شد.

🔹 برای دسترسی به MovieTexture یا فیلم دانلود شده از یک URL که قبلا توسط کلاس www دانلود شده است و اکنون می خواهیم فیلم دانلود شده را به MovieTexture تبدیل کنیم، از دستور به شکل زیر استفاده می کنیم/👇

WWWAudioExtensions.GetMovieTexture(www);

🔹 بر عکس دستور صدا ، دستور باز کردن فیلم در قالب MovieTexture تنها به شکل بالا /👆 است و حالت دیگری ندارد.
(خروجی دستور فوق هم یک Texture است و می توان به عنوان MovieTexture روی آبجکت های مختلف قـــرار گیرد- آموزش اینکار نیز در پست های قبل کانال قرار گرفته است)

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



کانال یونیتی لرنینگ
💢 @UnityLearning💢
DownloadMovie_Audio.js
1.1 KB
اسکریپت آماده دانلود و پخش صدا و تصویر روی یک آبجکت که کامپوننت های AudioSource و GUITexture به آنها داده شده است.

@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
دانلود پکیج کامل منوی وسط بازی Pause Menu

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

@UnityLearning
PauseMenu_@UnityLearning.zip
7.3 MB
⭕️ #دانلود #پکیج منوی توقف بازی Pause Menu

🔹شامل پروژه کامل آماده برای استفاده در یک فایل Zip

📍با حجم مناسب و کاربرد ساده

به ما بپیوندید👇
@UnityLearning
🏐 کسب اولین مدال جهانی تاریخ والیبال توسط تیم ملی والیبال ایران را به تمام هم میهنان تبریک عرض می‌کنیم.

🇮🇷 به ما بپیوندید /👇
@UnityLearning
⭕️ #دانلود #آبجکت فنس امنیتی برای استفاده در محل هایی که کاراکتر حق عبور از آن را ندارد.

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

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

به ما بپیوندید 👇
@UnityLearning
lqmml4lrspog_Security_Fence.rar
6.5 MB
⭕️ #آبجکت کابردی Security fence برای استفاده ساده در بازی برای ایجاد راه بند و...

🔸با فرمت کاربردی FBX

@UnityLearning
⭕️علل ذخیره سازی داده ها در بازی

🔹در بازی ها بنابه دلایل مختلفی نیاز به ذخیره و بازیابی داده ها هستیم. به طور مثال برای ذخیره مراحل طی شده بازیکن، برای ذخیره امتیازات کسب شده و...

🔘ذخیره سازی داده ها می تواند روی دستگاهی که بازی روی آن اجرا می‌گردد و یا اینکه در اینترنت ذخیره شود.

🔸هم چنین این ذخیره سازی می تواند با دستورات فایل باشد و یا اینکه به کمک یک پایگاه داده انجام شود. تمامی این مطالب یعنی ذخیره روی سیستم جاری / اینترنت و یا ذخیره به صورت فایل/پایگاه داده بسته به نوع بازی صورت می‌گیرد. یعنی مثلا اگر بازی ما یک بازی استراتژیک امتیازی است و تعداد شرکت کنندگان آن زیاد است لازم است از یک پایگاه داده قدرتمند برای ذخیره سازی اطلاعات استفاده شود و یا اگر بازی ما یک بازی اول شخص تیر اندازی ساده مرحله ای آفلاین است بهتر است این ذخیره سازی روی فایل ساده و در سیستم جاری انجام شود و...

▫️در یونیتی برای اتصال پایگاه داده به بازی دستورات زیادی وجود دارد که در نظر داریم به زودی برخی از آنها را بررسی کنیم. اما پایگاه داده ای که به صورت اختصاصی میتوان برای یونیتی استفاده کرد iBoxDB است که یک پایگاه داده شبیه به SQL می‌باشد و قابلیت برنامه نویسی به زبان های جاوا و سی شارپ را دارد.

👈 #ادامه_دارد

#پایگاه_داده #یونیتی



⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ برنامه نویسی جاوا اسکریپت برای اتصال پایگاه داده iboxdb به بازی

به ما بپیوندید👇
@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
🔸اگر میخواهید به دنبال یک #کامپوننت خاص که به آبجکت ها متصل شده است،بگردید از پنل جستجو در Hierarchy استفاده کنید. باجستجوی نام کامپوننت آبجکت هایی که کامپوننت به آن متصل شده است نمایش داده می‌شود.
This media is not supported in your browser
VIEW IN TELEGRAM
📍برای اینکه مقدار متغیر های private را بتوانید در پنجره Inspector مشاهده کنید و به مقدار اولیه آن دسترسی داشته باشید از دستور [SerializeField] قبل از تعریف متغیر استفاده کنید.

@UnityLearning
⭕️ بررسی وضعیت اتصال در کلاس Network

🔸با استفاده از دستورات TestConnection میتوان اتصالات را مورد بررسی قرار داد و اطلاعات کاملی از آنها بدست آورد.

🔹اطلاعاتی مثل وضعیت شبکه، آدرس های آی پی و... به کمک این دستور قابل دسترسی هستند.

▫️خروجی این دستور از نوع ConnectionTesterStatus است که خود یک کلاس شامل کلیه اطلاعات وضعیت شبکه جاری می باشد. (انواع خروجی این دستور در یک اسکریپت آماده جهت آموزش قرار می‌گیرد)

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

لینک اسکریپت👇
https://t.me/UnityLearning/1154

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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ دسترسی به یک آبجکت از روی نام

🔸برای اینکه به یک گیم آبجکت از روی نامش دسترسی داشته باشیم، از دستور Find از کلاس GameObject استفاده می‌کنیم. این دستور اولین گیم آبجکت که نامش مطابق آنچه در پارامتر ورودی آن داده اید، را بر می‌گرداند. بنابراین بهترین حالت از این دستور یکتا بودن تمام نام آبجکت ها در Hierarchy و در کل Scene جاری است. این توصیه همیشگی یونیتی است که نام آبجکت ها همگی با هم متفاوت باشد.

🔹شکل کلی از دستور /👇

GameObject.Find("Name");

▫️خروجی این دستور نیز از نوع GameObject بوده و معادل آن آبجکتی است که نامش وارد شده است. حال اگر این دستور آبجکتی با این نام پیدا نکند، مقدار Null را برمی گرداند و می توان به آسانی آنرا در دستورات شرطی مثل if بررسی کرد.

▪️همچنین اگر بخواهیم به گیم آبجکت های یک Transform دسترسی داشته باشیم می توانیم آنها را با علامت / از هم جدا کرد مثلا دستور زیر گیم آبجکت Hand که به Transform ِ ، دیگری به نام Human متصل است را بر می‌گرداند.

#جاوا /👇
var hand:GameObject;
hand=GameObject.Find("Human/Hand");

#سی_شارپ /👇
GameObject hand;
hand=GameObject.Find("Human/hand);

🔹کاربرد دستورات مربوط Find بسیار بالاست و از آن در کلاس Transform نیز برای پیدا Transform ها بر اساس نام شان استفاده می‌شود.

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



⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ محاسبه میزان چرخش، موقعیت مکانی و میزان بزرگی یک آبجکت بر اساس پدرش

🔹پارامتر های position-rotation و scale برای حفظ و تغییر موقعیت ، چرخش و بزرگی(اندازه) یک آبجکت نسبت به یک حالت کلی هستند. مثلا پارامتر position و مقادیر xyz بر اساس terrain مقدار دهی می‌شوند یعنی گوشه terrain نقطه (0،0،0) است و هر چی نسبت به آن نقطه جابجا شویم این مقادیر تغییر می‌کنند. اما گاهی لازم است این تغییر نسبت به موقعیت آبجکت پدر صورت گیرد. به طور مثال در مطلب موقعیت مکانی فرض کنید که نقطه (0،0،0) همان محلی باشد که پدر آبجکت در آن قرار دارد و هرگونه جابجایی آبجکت بچه نسبت به محل قرار گیری آبجکت مقدار دهی شود. این پارامتر ها، پارامتر های محلی نامیده می‌شوند و در یونیتی قابل دسترس هستند.

🔸پارامتر localPosition مانند position است اما با این تفاوت که مقادیر آن بر اساس آبجکت پدر است (مرکز مختصات به جای اینکه گوشه Terrain باشد دقیقا محلی است که پدر آبجکت قرار گرفته است) برای سایر پارامتر ها یعنی localRotation و localScale نیز به همین ترتیب است یعنی جهت و اندازه آبجکت فرزند بر اساس جهت و اندازه آبجکت پدر در آنها مقدار دهی می‌شود.

▫️مثال: برخی مواقع لازم است مرکز مختصات برخی از آبجکت ها را وسط Terrain قرار گیرد. برای این کار به راحتی یک Empty GameObject درست کرده و آن را در محلی که میخواهید مرکز مختصات باشد قرار دهید، سپس سایر آبجکت هایی که میخواهید به مرکزیت آن باشد قرار دهید را به عنوان بچه به آن آبجکت بدهید و بجای استفاده از دستورات position ، rotation و scale از دستورات local به جای آنها استفاده کنید.

👈 #نکته قابل ذکر برای این دستورات این است که دستورات local برای #آبجکت هایی که به آبجکت دیگری متصل نشده اند (پدری ندارند) معادل همان دستورات position و... است که بر اساس terrain مقادیر در آن قرار می‌گیرد.


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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ محاسبه چهار عمل ریاضی در هنگام وارد کردن کلیه پارامتر های عددی در یونیتی به طور خودکار

به ما بپیوندید 👇
@UnityLearning
Divar.rar
3.9 KB
پریفاب آماده برای دیوارهایی که صرفا برای بستن مسیر و یا ظاهر از یک طرف استفاده می شوند.

این Prefab با کمک چند Plan ساخته شده و تکسچری که به آن می دهید، روی آنها تکرار می شود.
ابزار ساده Search by Type در کنار پنجره Project برای نمایش فایل های یک نوع خاص استفاده می شود.

به ما بپیوندید👇
@UnityLearning
🏴 باز این چه شورش است که در خلق عالم است
⚫️ باز این چه نوحه و چه عزا و چه ماتم است

◼️◾️▪️فرا رسیدن ماه محرم و ایام شهادت امام حسین و یاران با وفایش را تسلیت عرض می‌کنیم.

التماس دعا

@UnityLearning