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
PlayMovieMT.cs
941 B
📋 #اسکریپت آماده جهت «پخش یک VideoClip به عنوان یک Texture از طریق کلاس MovieTexture روی یک آبجکت»

📼 این اسکریپت در ورودی خود، دو پارامتر دریافت می کند، صدای فیلم نمایشی و دیگری کلیپ ویدیویی فیلمی که می خواهیم روی آبجکت به عنوان #تکسچر نمایش داده شود. همانطور که قبلاً توضیح داده شده است، قابلیت MovieTexture فیلم را به صورت تکسچر های پشت سر هم روی آبجکت نمایش می دهد و صدایی پخش نمی شود، برای اینکه صدای فیلم هم درکنار آبجکت (همزمان با پخش تصویر آن) پخش شود، باید از #کامپوننت AudioSource برای #آبجکت استفاده کرد.

@UnityLearning
PlayMovieVP.cs
1.2 KB
📋 #اسکریپت آماده جهت «پخش یک فیلم ویدیویی روی آبجکت ها در هنگام اجرای بازی از طریق #کامپوننت ViedoPlayer»

👈 با استفاده از این اسکریپت می توانید یک کلیپ ویدیویی را به عنوان Source به پارامتر ورودی اسکریپت داده و آن را از طریق فشردن کلید Jump (مثلا در ویندوز کلید Space) پخش/متوقف نمایید.

@UnityLearning
MoveToNewScene.cs
1.4 KB
📋 #دانلود #اسکریپت_آماده برای انتقال یک آبجکت از یک Scene (مرحله) به مرحله دیگر

👈 گاهی اوقات لازم است، یک آبجکت با همۀ ویژگی هایی که دارد، به مرحلۀ بعد بازی منتقل شود (مثلا اگر بخواهیم اسلحه های بازیکنِ بازی که در مرحله قبلی کسب کرده همچنان در مرحله بعد بازی همراه او باشد) برای انجام این کار از دستور MoveGameObjectToScene از #کلاس SceneManager استفاده می شود.

🔸 دستور فوق یک GameObject را با تمام ویژگی هایش از یک Scene (جاری) به Scene جدید منتقل می کند.این دستور دو پارامتر اصلی دارد: 1- GameObject مورد نظر که قصد انتقال آن را داریم، 2- مرحله Scene جدیدی که قرار است آبجکت به آن منتقل شود.

💡 اسکریپت فوق یک #مثال ساده از این دستور است که آبجکتی که به عنوان ورودی به آن معرفی می شود را به مرحله بعد منتقل می کند و البته مرحله بعد بازی را نیز Load می کند و نهایتاً Scene جاری بازی را نیز Unload می کند.

🔹 بنابراین اسکریپت مورد نظر دارای دو پارامتر ورودی است: 1- پارامتر m_Scene که نام مرحله بعدی است که باید Load شود 2- پارامتر m_MyGameObject که GameObject است که قرار است به مرحله بعد منتقل شود.

@UnityLearning
MoveToClick.cs
807 B
⚪️ #اسکریپت آماده برای قرار دادن آبجکت در محلی که بازیکن کلیک می کند.

🔹 این اسکریپت با استفاده از دستور Raycasting محلی که کاربر روی آن کلیک کرده (نسبت به Terrain) محاسبه کرده و سپس آبجکت را در آنجا قرار می دهد.

☑️ جهت استفاده از این اسکریپت آن را به یکی از آبجکت های فعال بازی (مثلا آبجکت حرکت کننده) بدهید، سپس آبجکتی که قصد تنظیم موقعیت آن روی محل کلیک شدن را دارید به عنوان پارامتر MovingGameObject به اسکریپت معرفی کنید. دقت کنید، اسکریپت با دوربین اصلی بازی یا MainCamera کار می کند، اگر دوربین اولیه بازی را حذف کردید، باید تگ دوربین جدید را روی MainCamera قرار دهید. اسکریپت موقعیت محل کلیک را بر اساس آنچه توسط این دوربین قابل مشاهده است، بدست می آورد.

@UnityLearning
Media is too big
VIEW IN TELEGRAM
⚪️ #اسکریپت آماده چرخش یک آبجکت حول یک نقطه (یا به مرکزیت یک آبجکت دیگر)

🎦 خروجی اسکریپت را در بالا مشاهده می کنید (در این مثال اسکریپت به دوربین داده شده و مرکز چرخش نیز آبجکت ماشین تعیین شده است) ، این اسکریپت به صورت کلی نوشته شده تا در هر حالتی قابل پیاده سازی باشد. مرکز چرخش هم می تواند یک آبجکت باشد و هم می تواند یک نقطه سه بعدی (Vector3) و محدودیتی در این رابطه وجود ندارد.

☑️ توضیحات بیشتر و همچنین دانلود از طریق پست بعدی کانال امکان پذیر خواهد بود.

@UnityLearning
SinX.cs
957 B
📋 #اسکریپت آماده جهت حرکتِ چرخشی یک آبجکت حول یک نقطه

💡 همانطور که در پست قبل ذکر شد، این اسکریپت به صورت جامع طراحی شده است تا بتوان از آن در پروژه های بیشتری استفاده کرد. عملکرد اسکریپت بر اساس توابع Sin و Cos طراحی شده و در یک شعاع و با یک سرعت معین آبجکت را حول یک نقطه می چرخاند.

🔘 جهت تعیین مرکز چرخش (مرکز دایره) دو راه وجود دارد: 1- معرفی یک آبجکت به عنوان این مرکز که در این صورت آبجکت دیگر حول این آبجکت خواهد چرخید، 2- در صورتی که مورد یک تعیین نشود، امکان وارد کردن موقعیت مکانیِ مرکز چرحش به صورت Vector3 نیز به صورت سه متغیر XYZ می باشد.

🔹 پارامترهای دیگر نیز، سرعت حرکت (Speed) و شعاع (فاصله تا مرکز|Radius) می باشد که در اسکریپت قابل تغییر می باشند.

@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
CameraHolder.cs
2.4 KB
📋 #اسکریپت آماده حرکت دوربین بازی با ماوس به جهت مشاهده و بررسی محیط

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

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

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

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

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

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

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

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

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

@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
MouseDragObject.cs
760 B
📋 #اسکریپت آماده برای تغییر موقعیت مکانی آبجکت ها با استفاده از ماوس (در زمان اجرای بازی)

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

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

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

@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