Unity Learning
2.89K subscribers
556 photos
185 videos
1.03K files
270 links
⭕️کانال آموزش حرفـــه ای موتور بازی سازی یـــونیتی

▪️ @UnityLearning ▫️

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

@UnityLearning_Admin

🔹 کد شامد /👇

1-1-3526-61-3-1

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

@UnityLearning_Ads

لینک گروه تبادل نظر اعضای کانال
@UnityLearning_Group
Download Telegram
SwitchGun.cs
859 B
⚪️ #اسکریپت طراحی شده برای موضوع سوئیچ بین گیم آبجکت ها در فیلم آموزشی

🔹 این اسکریپت دارای یک تابع به نام SwitchGameObject است که با استفاده از یک حلقه for عمل جابجایی را انجام می دهد. در واقع این تابع یک آرگومان ورودی به نام index دارد که اندیس گیم آبجکت فرزندی است که قصد فعال شدن آن را داریم، حلقه for غیر از این اندیس سایر آبجکت های فرزند متصل شده به این اسکریپت را در زمان فراخوانی غیر فعال می کند.

👈 این فراخوانی نیز، طبق #مثال جابجایی اسلحه، با کلید های عددی کیبورد انجام می شود که بررسی آن بر عهده if های موجود در تابع Update با استفاده از #کلاس Input می باشد.

@UnityLearning
TouchCamera.cs
2.3 KB
⚪️#اسکریپت آماده کار با دوربین با تاچ (لمس) صفحه در #یونیتی

🔹 این اسکریپت نسخه ای به روز شده از پکیج Simple Touch Camera Script است و کار با آن بسیار ساده می باشد.

👈 این اسکریپت، قابلیت چرخش، حرکت و زوم کردن روی صفحه (به وسیله لمس صفحه) را داراست. در صورتی که نیاز به نسخه قدیمی تر این پکیج دارید، از طریق لینک داده شده از استور، اصل پکیج را دریافت کنید [پکیج رایگان می باشد]. (نسخه اسکریپت با دستورات یونیتی 4.5 به بعد می باشد که اسکریپت فوق نسخه به روز شده آن برای یونیتی 2019 می باشد)

@UnityLearning
Unity Learning via @buttonsbot
TouchCamera.cs
CameraHandler.cs
4.4 KB
⚪️ #اسکریپت آماده دیگر برای کنترل دوربینِ بازی به وسیلۀ تاچ صفحه یا کنترلر های دیگر 🎮

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

☑️ برای استفاده از این اسکریپت کافی است آن را به دوربین فعال بازی متصل کرد. مدیریت حرکت در این کد، به صورت جداگانه برای حالت لمسی و ماوس در توابع مجزا قرار گرفته است.

🎦 مناسب برای بازی های استراتژیک

@UnityLearning
PrimeNumber.cs
802 B
☑️ #اسکریپت بسیار ساده برای بررسی اول بودن یک عدد جهت استفاده در یونیتی

🔹 این اسکریپت دارای یک تابع به نام isPrime است که در اصل عملکرد آن بررسیِ اول بودن/نبودن عددی است که به عنوان ورودی به آن ارسال می شود.

📍 به عنوان #مثال و برای اجرای کد، در تابع Start این اسکریپت یک حلقه قرار گرفته است تا اعداد اول بین دو عدد را در یک UI Text نمایش دهد.

🔍 این تابع در بازی های ریاضی/معمایی کاربرد دارد.

[تصویر خروجی اسکریپت]

@UnityLearning
CameraHolder.cs
2.4 KB
📋 #اسکریپت آماده حرکت دوربین بازی با ماوس به جهت مشاهده و بررسی محیط

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

@UnityLearning
FadeCamera@UnityLearning.7z
8.1 KB
⚪️ #اسکریپت آماده برای ایجاد حالت Fade In/Fade Out در بازی

همانطور که می دانید، یکی از افکت های پر کاربرد در بازی ها، افکت Fade In/Out است، از این افکت در قسمت های مختلف بازی ها به عنوان مثال هنگام شروع یا اتمام مرحله بازی استفاده می شود.

🔘 با استفاده از اسکریپتِ فوق می توانید این افکت را در بازی خود داشته باشید. (آموزش کار با اسکریپت در پست بعدی ارسال می شود)

@UnityLearning
MultiCameraChange.cs
946 B
⚪️ #اسکریپت جامع و کامل برای «جابجایی بین دوربین های بازی با زدن یک کلید خاص»

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

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

@UnityLearning
Media is too big
VIEW IN TELEGRAM
🎦 #فیلم #آموزش استفاده از #اسکریپت آماده «جابجایی بین دوربین های فعال بازی با فشردن یک کلید»

🔹 اسکریپت دارای چند پارامتر خاص به ترتیب برای مشخص کردن کلید مورد نظر، دوربین ابتدایی بازی، آرایه ای از دوربین های مورد نظر می باشد که می توانید از آن در هر محیطی استفاده کنید.

👈 در این اسکریپت با استفاده از دستور enabled اقدام به فعال یا غیر فعال کردن #کامپوننت دوربین می شود، شما در صورت نیاز می توانید اسکریپت را به حالت فعال یا غیر فعالی گیم آبجکت (با دستور SetActive) تغییر دهید.

☑️ دریافت ویدیو از یوتیوب

☑️
دریافت ویدیو از نماشا

@UnityLearning
Unity Learning
🎦 #فیلم #آموزش نمایش خروجی وب کم در یونیتی 🔹 در این ویدیوی آموزشی به بیان موضوع جالبِ نمایش تصاویر خروجی وب کم در بازی به عنوان تکسچر گیم آبجکت ها، خواهیم پرداخت. برای این منظور از نوعِ داده ای WebCamTexture در یونیتی استفاده کرده و آن را با دستگاهِ وب کمِ…
WebCamShow.cs
1.5 KB
⚪️ #اسکریپت بسیار ساده برای نمایش تصاویر خروجی WebCam به عنوان تکسچر روی گیم آبجکت

🔹 توضیحات:

☑️ این اسکریپت باید به گیم آبجکتی که قرار است، تصاویر روی آن قرار گیرد، متصل شود.

🔸 همه چیز به طور جامع و به صورت پارامتر ورودی برای اسکریپت قابل دسترس است. مثل «فعال شدن دوربین و نمایش در ابتدای شروع بازی» ، «عرض و ارتفاع تصویر» ، «تعداد فریم در ثانیه» و «کلیدهای فعال و غیر فعال سازی نمایش»

@UnityLearning
GPSLocation.cs
1.5 KB
⚪️ #اسکریپت آماده استفاده از اطلاعات GPS موقعیت مکانی

🔘 با استفاده از دستورات کلاس Input می توان به موقعیت مکانی (Location) دستگاه های موبایلی دسترسی داشت.

⚠️نکته: استفاده از دستور Input.location به صورت پیش فرض در یونیتی دسترسی های لازم برای GPS را درخواست می کند (در هنگام نصب اپلیکیشن) و نیازی به تغییر در فایل AndroidManifest در اکثر مواقع نیست.

برخی دستورات کلیدی استفاده شده در اسکریپت:

🔹 دستور Input.location.Start باعث شروع دریافت اطلاعات از سنسور GPS می شود.

🔹 دستور Input.location.isEnabledByUser
بررسی می کند که آیا GPS در دستگاه میزبان، فعال است یا خیر؟

🔹 دستور Input.location.status وضعیت اتصال به ماهواره های GPS را بررسی می کند. در صورتی که اتصال برقرار نشود، این دستور برابر مقدار LocationServiceStatus.Failed می شود. (این مورد در اسکریپت با حلقه while بررسی شده تا مادامی که اتصال برقرار نشده است، چیزی نمایش داده نمی شود)

#ادامه_دارد

📍 ادامه مطالب در پست بعدی

@UnityLearning
Unity Learning
GPSLocation.cs
⚪️ #اسکریپت آماده استفاده از اطلاعات GPS موقعیت مکانی

(#ادامه مطالب توضیحات دستورات استفاده شده در اسکریپت)

🔹 دستور Input.location.Stop باعث توقف دریافت اطلاعات از سنسور GPS می شود. (بنابراین تمام اقداماتِ کار با GPS ، غیر از بررسی روشن یا خاموش بودن قابلیت GPS ، باید بین دو دستور Start و Stop انجام شود.

🔹با استفاده از دستورات Input.location.lastData نیز می توان به جزییات دریافت شده از GPS به صورت تفکیک شده دسترسی داشت.

⚠️ نکته مهم: دریافت اطلاعات موقعیت مکانی در یونیتی (با استفاده از کلاس Input) تنها برای دستگاه های Handheld امکان پذیر است. مانند دستگاه های اندرویدی و iOS

⚠️ نکته مهم دیگر (در مورد بازی های اندروید) : همانطور که در پست قبلی نیز ذکر شد، استفاده از دستورات Location باعث ایجاد مجوز های لازم در فایل AndroidManifest مربوط به بازی می شود (مجوزهای هنگام نصب) و در اکثر مواقع نیازی به اضافه کردن مجوز به صورت دستی توسط برنامه نویسی در این فایل نیست. در رابطه با اخذ مجوز در هنگام اجرای بازی در پست بعدی توضیحات ارائه خواهد شد.


@UnityLearning
Timer.cs
2.1 KB
🔹 #اسکریپت آماده برای ایجاد حالت تایمر در بازی (به همراه پخش صدای پس زمینه)

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

▫️ همچنین این اسکریپت می تواند برای پخش صدای پس زمینه نیز مورد استفاده قرار گیرد، کافی است اسکریپت را به یک گیم آبجکت فعال (ترجیحاً Empty GameObject) در بازی دهید و پارامترهای آن را تنظیم کنید. اسکریپت بر اساس تنظیمات وارد شده، صدا را در پس زمینه پخش خواهد کرد. برای نمایش زمان بازی نیز باید یک UI Text را به اسکریپت معرفی کنید.

🟢 پارامترهای اسکریپت به ترتیب:

1⃣ آبجکت Text رابط کاربری (UI)
2⃣ شمارش به صورت صعودی (True) یا نزولی (False)
3⃣نمایش زمان به صورت اعشاری (True) یا صحیح (False)
4⃣ زمان پایان بازی
5⃣ متنی که در پایان بازی نمایش داده می شود.
6⃣ صدای پس زمینه بازی (در صورت عدم تعیین صدایی پخش نمی شود)
7⃣ زمان شروع صدای پس زمینه
8⃣ میزان ولوم صدای پس زمینه

@UnityLearning
Unity Learning via @buttonsbot
🎦 #فیلم #آموزش بدست آوردن آدرس IP در #سی_شارپ (محیط #یونیتی) 🔹 همانطور که می دانید، روش های متفاوتی برای بدست آوردن آدرس IP در سی شارپ وجود دارد، یکی از این روش ها که فقط برای حالت اینترنت قابل استفاده است، سایت icanhazip.com می باشد. این سایت آدرس IP شما…
WhatIsMyIp.zip
474 B
📋 #اسکریپت سادۀ استفاده شده در کلیپ آموزشی

💻 نمایش آدرس IP سیستم اجرا کنندۀ بازی

📍 همانطور که ذکر شد، در این اسکریپت با استفاده از دستور DownloadString مقدار String بازگشتی از سایت http://icanhazip.com/ به عنوان آدرس آی پی در یک متغیر String به همین نام بر می گردد.

⚠️ با توجه به اینکه ممکن است، به دلایل مختلف، (با وجود اتصال سیستم به اینترنت) سایت فوق در دسترس نباشد، جهت جلوگیری از بسته شدن بازی، از دستور try catch استفاده شده است.

@UnityLearning
MouseDragObject.cs
760 B
📋 #اسکریپت آماده برای تغییر موقعیت مکانی آبجکت ها با استفاده از ماوس (در زمان اجرای بازی)

🔹 با استفاده از این اسکریپتِ ساده می توانید حالت Mouse Drag را به آبجکت های بازی خود اضافه کنید.

☑️ جهت استفاده از اسکریپت، کافی است آن را به گیم آبجکتی که می خواهید با درگ کردن ماوس جابجا شود متصل کنید. این اسکریپت با دوربین اصلی بازی (با تگ MainCamera) کار می کند، بنابراین باید تگ دوربین بازی خود را Main Camera قرار دهید یا در کدهای اسکریپت دوربین مورد نظر خود اضافه کنید. (دوربین جدید با دستور Camera.main در خط 12 - 13 و 19 اسکریپت جایگزین شود)

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

@UnityLearning
Unity Learning
MouseDragObject.cs
MouseDragObject.cs
778 B
🟢 #اسکریپت اصلاح شده درگ کردن آبجکت

🔹 اسکریپت قبلی با دوربین Main Camera کار می کند و این اسکریپت با دوربین که به آن معرفی می شود. (به صورت یک پارامتر به نام My Camera تعریف شده است)

📋 توضیحات بیشتر در رابطه با دستورات استفاده شده در اسکریپت:

🔹 با استفاده از دستور Input.mousePosition می توان به موقعیت مکانی اشاره گر ماوس دسترسی یافت. این دستور دو پارامتر x و y دارد که به ترتیب موقعیت ماوس در محور x ها (عرض صفحه نمایش یا محور افقی) و y ها را در اختیار بازی ساز قرار می دهد.

🔸 دستور WorldToScreenPoint از یک کامپوننت (کلاس) دوربین نیز، موقعیت مکانی آبجکت را نسبت به زاویه دیدِ دوربین بر می گرداند.

@UnityLearning
Controller.cs
688 B
📜 #اسکریپت_آماده برای جابجایی آبجکت بر اساس موقعیت انتخاب شده توسط ماوس

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

☑️ این اسکریپت بر اساس کامپوننت NavMesh در یونیتی عمل می کند، بنابراین جهت استفاده صحیح از آن باید قبل از اجرای بازی عملیات مربوط به آن را انجام داد و حتما عمل Bake را انجام داد.

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

🔹 توضیحات دستورات استفاده شده در اسکریپت در بخش کامنت این پست قرار می گیرد.

@UnityLearning
Spiral_movement.zip
906 B
📋 #اسکریپت آماده حرکت حلزونی شکل آبجکت ها

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

🎦 #پارامتر ها و نحوه استفاده از این اسکریپت در کلیپ بعدی توضیح داده خواهد شد و سعی می شود در قالب توضیح متنی نیز در کانال قرار گیرد.

@UnityLearning
Unity Learning
Spiral_movement.zip
Media is too big
VIEW IN TELEGRAM
🎦 #کلیپ #توضیحات #اسکریپت آماده حرکت به شکل حلزونی

🌀 همانطور که توضیح داده شد، از این اسکریپت هم می توان جهت چرخش آبجکت ها (حرکت حلزونی شکل) و هم ساخته شدن استفاده کنید (پارامتر isSpawn)

🎯 توضیحات پارامترها:

🔹 پارامتر spawnObject : آبجکتی که قصد چرخش آن را داریم. (چرخش حول آبجکتی انجام می شود که اسکریپت به آن متصل شده است)
🔹 پارامتر delayTime : فاصله زمانی بین هر بار تکرار
🔹 پارامتر isSpawned : ساخته شدن آبجکت یا فقط حرکت
🔹 پارامتر isTower : حرکت روی محور y ها یا خیر؟
🔹 پارامتر reverse : حرکت صعودی یا نزولی روی محور yها
🔹 پارامتر increment_degree : میزان افزایش درجه (در حلقه for)
🔹 پارامتر increment_radius : میزان فاصله بین شعاع ها
🔹 پارامتر increment_tower : میزان افزایش/کاهش روی محور yها
🔹 پارامتر radius : شعاع اولیه

@UnityLearning
Fade.cs
1.5 KB
📋 #اسکریپت_آماده افکت Fade برای متریال های آبجکت ها در یونیتی

🎯 همانطور که می دانید روش های مختلفی برای ایجاد عملکرد Fade در یونیتی (افکت ظاهر یا مخفی شدن) وجود دارد که یکی از آنها کنترل مقدار آلفا (apha) در تنظیمات Material است.

📺 در کلیپ بعدی توضیحاتی در رابطه با عملکرد و نحوۀ استفاده از اسکریپت ارائه خواهد شد. مشاهده در آپارات

@UnityLearning
Scripts.zip
1.5 KB
📋 #اسکریپت_آماده حرکت آبجکت به سمت نقطه کلیک شده روی صفحه

🎯 با استفاده از این اسکریپت ها، می توانید حرکت مستقیم (با شتاب و یا بدون شتاب) برای حرکت به سمت نقطه ای کاربر روی آن کلیک می کند.

✔️ #توضیحات بیشتر در #کلیپ بعدی ارسال خواهد شد.

⚠️ نکته مهم: قبلاً نیز در «این پست» حرکت با مسیر یابی نیز قرار گرفته بود. (حرکت به سمت نقطه کلیک شده بر اساس NavMesh) - اما این دو اسکریپت حرکت به سمت مستقیم هستند.

@UnityLearning