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
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ #دانلود #کاراکتر_سوم_شخص به صورت پروژه کامل

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

🔻در پست بعدی دانلود کنید🔻
ThirdPersonController@UnityLearning.zip
10.9 MB
⭕️ #پروژه کامل کاراکتر سوم شخص با کیفیت بسیار عالی

🔸قابلیت های حرکت، چرخش، جابجایی دوربین با دوربین، حرکت آرام و...

📎 این فایل به صورت یک پروژه یونیتی در یک فایل zip فشرده شده

@UnityLearning
MouseLook.js
411 B
⭕️ اسکریپت آماده جابجایی دوربین با ماوس

حالت دیدن و چرخش دوربین به وسیله حرکت ماوس

این اسکریپت را به دوربین یا هر آبجکتی که می خواهید با ماوس بچرخد، بدهید. به زبان #جاوا اسکریپت

@UnityLearning
Unity Learning
MouseLook.js
⭕️ استفاده از جهات حرکتی ماوس در یونیتی

🔹قبلاً در مورد بررسی رویدادهای ماوس و آنچه برای بررسی محل حرکت ماوس (در فضای دو بعدی که ماوس جابجا می شود) مطالبی بیان کرده بودیم. در این پست دستور Input.GetAxis برای این کار بررسی می شود.

🔸 همانطور که می دانید این تابع (GetAxis) از کلاس Input برای بررسی ورودی های جهتی (مثل دکمه های جهتی کیبرد، دسته بازی، کنسول های بازی|فرمان و...) استفاده می شود. یکی از دیگر از ورودی هایی که با تغییر جهات کار می کند، ماوس است و این تابع نیز از آن پشتیبانی می کند. اما پارامتر ورودی برای بررسی جهت حرکتی ماوس با پارامتر های قبلی (Vertical و Horizontal) متفاوت است.

📍یادآوری: قبلاً برای بررسی جهات عمودی (بالا و پایین) از دستور زیر استفاده می کردیم و خروجی این دستور اگر کاربر جهت بالا را فشار داده بود +1 و اگر جهت پایین انتخاب شده بود -1 است و در هیچ کدام از حالات قبل خروجی دستور 0 بود، بنابراین با ضرب این عدد در جهت می توانستیم بردار حرکتی را محاسبه کنیم ./🔻
Input.GetAxis ("Vertical")

* مشابه آنچه گفته شد نیز برای سمت چپ و راست نیز با دستور زیر امکان پذیر است /🔻
Input.GetAxis ("Horizontal")

🔸 مانند آنچه بیان شد، در یونیتی، برای بررسی جهت حرکت ماوس نیز دستوراتی وجود دارد. خروجی دستور زیر (که در اسکریپت هم موجود است) در صورت حرکت عمودی ماوس معادل قبل است. (اگــر ماوس به سمت بالا برود خروجی +1 و....) /🔻
Input.GetAxis ("Mouse Y");

و همچنین برای جهت حرکت چپ و راست نیز دستور به شکل زیر است /🔻
Input.GetAxis ("Mouse X")

(خروجی دستور : +1 برای حرکت به سمت راست، 0 برای ثابت بودن در آن جهت و -1 برای حرکت به سمت چپ)

🔘بنابراین مانند قبل برای حرکت آبجکت ها با ماوس نیز می توان به راحتی از دستورات فوق استفاده کرد و برنامه نویسی را بسیار کاهش داد.

به کانال یونیتی لرنینگ
بپیــــــــوندید /🔻
@UnityLearning
Unity Learning
⭕️ استفاده از جهات حرکتی ماوس در یونیتی 🔹قبلاً در مورد بررسی رویدادهای ماوس و آنچه برای بررسی محل حرکت ماوس (در فضای دو بعدی که ماوس جابجا می شود) مطالبی بیان کرده بودیم. در این پست دستور Input.GetAxis برای این کار بررسی می شود. 🔸 همانطور که می دانید این…
⭕️پنجره Input Manager برای پارامتر Mouse X

اگر به هر دلیل این پارامتر(Mouse X) در این پنجره را ندارید، باید بعد از اضافه کردن یک سطر جدید آن را دقیقا با همین نام و مشخصات (طبق تصویر 👆) اضافه کنید.
⭕️ اجرای یک اسکریپت در زمان طراحی بازی (Edit Mode)

🔹 همانطور که می دانید به طور پیش فرض اسکریپت های یونیتی تنها در حالت اجرای بازی Play Mode اجرا می‌شوند (غیر از برخی توابع که عملکرد آنها روی حالت Edit Mode است)

🔸 اما گاهی برنامه نویس نیاز دارد کدی که می نویسد در حالت Edit Mode یعنی در زمان طراحی اجرا شود. با نوشتن پارامتر زیر در ابتدای اسکریپت شما کاری می‌کنید که این اسکریپت برای آبجکت(های) مورد نظر در زمان طراحی بازی اجرا شود (این کار معمولا برای تست انجام می‌شود و بسیار کاربردی است)

#جاوا اسکریپت /🔻
@script ExecuteInEditMode()

#سی_شارپ /🔻
[ExecuteInEditMode]

▫️ در سی شارپ با توجه به این که باید کلاس تعریف کنید این دستور قبل از تعریف کلاس نوشته می‌شود. /🔻
[ExecuteInEditMode]
public class......

❗️دقت کنید، این دستور باعث می‌شود این اسکریپت تنها در حالت Edit Mode اجرا شود و دیگر در زمان اجرای بازی تأثیری روی آن ندارد و اجرا نخواهد شد.


🔸به کانال یونیتی لرنینگ
بپیوندید /🔻
@UnityLearning
⭕️ جدا سازی فرزندان یک Transform

🔹همانطور که می دانید، یک Transform می تواند چندین آبجکت و یا زیر آبجکت به عنوان بچه داشته باشد. در صورتی که لازم باشد می توانید با دستور DetachChildren این آبجکت ها را از پدرشان جدا کرد. در واقع اتحادی که بین آبجکت های بچه و آبجکت پدر وجود دارد شکسته می شود و در واقع آنها از یک دیگر جدا می شوند.

transform.DetachChildren();

دستور فوق کلیه آبجکت های بچۀ آبجکتی که کد به آن متصل شده است را جدا می کند. از دستور DetachChildren برای هر Transfom خاصی می توان استفاده کرد.

به کانال یونیتی لرنینگ
بپیــــــــــــوندید /🔻
@UnityLearning
⭕️ آبجکت کامل محیط اتاق قدیمی

🔹 با کیفیت کارتونی به صورت آماده برای استفاده به عنوان یکی از اتاق های خانه

🔻دانلود در پست بعدی🔻
van_gogh_room.zip
40.5 MB
⭕️ #دانلود #آبجکت اتاق کارتونی

🔹به همراه تکسچر ها

📍یک فایل زیپ دیگر در این فایل وجود دارد که برای استفاده باید آن را Extract کنید.

به کانال یونیتی لرنینگ
بپیوندید /🔻
@UnityLearning
⭕️ انتشار نور از یک آبجکت

🔆 در صورتی که آبجکتی مثل چراغ قوه، چراغ ماشین ، لامپ خیابان و... داشته باشید و بخواهید از خود نوری منتشر کند، بجای استفاده از آبجکت های Point Light و... می توانید تنها به آن آبجکت #کامپوننت Light بدهید. این کامپوننت کلیه تنظیمات لازم را در خود داراست و می توانید همه آنها را در دست داشته باشید. پارامتر مهم Range یا محدوه ای است که کامپوننت روی آن نور می اندازد.

برای استفاده از این کامپوننت از مسیر زیر استفاده کنید و کامپوننت مذکور را به آبجکت مورد نظر اضافه کنید. /🔻
Component > Rendering >Light

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

به کانال یونیتی لرنینگ
بپیوندید /🔻
@UnityLearning
⭕️ کامپوننت Light برای تبدیل یک آبجکت به منتشر کننده نور در یونیتی

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

🔸 در یونیتی در صورتی که بخواهید یک Material تنها روی بخش هایی از یک یا چند آبجکت اعمال شود، می توانید از کامپوننت Projector استفاده کنید. عملکرد این کامپوننت به این شکل است که یک Material (به عنوان مثال یک #تکسچر) را روی آبجکت های مختلف اعمال می کند، این اعمال به صورت یک Video Projector که یک فیلم را روی پرده و اشیای مقابلش پخش می کند، است. به همین علت به این کامپوننت Projector گفته می شود.

🔹 آبجکتی که این کاپوننت را به آن می دهید به عنوان پخش کنندۀ Material در نظر گرفته می شود، بنابراین بهتر است آنرا روی یک GameObject خالی قرار دهید و یا از Prefabها آماده ای که انواع پکیج ها ارائه می کنند استفاده کنید. در نسخه های جدید Standard Asset این Prefabها به طور پیش فرض موجود است. در تصویر پست بعد از پکیج خاصی که این Prefabها در آن بوده است استفاده شده است. (اما استفاده از Prefab به هیچ وجه لازم و ضروری نیست! و شما به راحتی با اضافه کردن یک Material (مثل یک تکسچر) و یک کامپوننت Projector از مسیر زیر می توانید یک آبجکت کامل برای این کار بسازید./🔻

Component>Effects>Projector

⚙️ تنظیمات این کامپوننت نیز بسیار آسان بوده و شبیه به تنظیمات Camera در یونیتی است. شما به وسیلۀ گزینۀ Orthographic می توانید سایز نمایش تکسچر تغییر دهید.

به کانال یونیتی لرنینگ
بپـــــــــــــــــیوندید/🔻
@UnityLearning
Media is too big
VIEW IN TELEGRAM
Unity: Introduction to Projectors

🎥 #فیلم آموزشی برای Projectها در یونیتی از youtube

مدت فیلم 9 دقیقه با کیفیت HD

@UnityLearning
Bow.js
1.9 KB
⭕️ اسکریپت آماده برای تیر اندازی با کمان به #درخواست شما

این اسکریپت بر اساس نام آبجکت ها و نام انیمیشن ها کار می کنند بنابراین باید آنها را بازی خود تنظیم کنید.

@UnityLearning
⭕️ بررسی اجرای یک انیمیشن خاص

🔹همانطور که می دانید در یونیتی انیمیشن ها به وسیله #کلاس animation انجام می شود، در این کلاس شما به تمام ویژگی های لازم برای استفاده از انیمیشن های یک آبجکت دسترسی خواهید داشت.

🔸گاهی اوقات لازم است بررسی شود، آیا یک انیمیشن خاص از یک آبجکت هم اکنون در حال اجرا است یا خیر؟ برای این منظور از پارامتر IsPlaying از کامپوننت animation استفاده می شود و شکل کلی آن به شکل زیر است. /🔻
anim.IsPlaying("AnmName")

📍خروجی دستور بالا اگر انیمیشن با نام AnmName در حال اجرا باشد true خواهد بود و در غیر این صورت false می شود.

🔹پارامتر anim همان #کامپوننت انیمیشن از آبجکت مورد نظر است/🔻
anim = GetComponent.<Animation> ();

به کانال یونیتی لرنینگ
بپیـــــــوندید/🔻
@UnityLearning
⭕️ دستور anyKey در کلاس Input

🔸در کلاس input برای اینکه بخواهیم بررسی کنیم، یک کلید (هر کلیدی چه از کیبورد و چه از ماوس) فشار داده شده است یا خیر می توان از دستور anyKey استفاده کرد. خروجی این دستور از کلاس Input زمانی true است که هر کلیدی از صفحه کلیدی یا ماوس فشار داده شود و کاربرد آن زمانی است که مثلا به کاربر می گویید برای ادامه یک کلید را فشار دهد. /🔻
if(Input.anyKey)

شرط بالا را می توان در توابعی که دائما در حال اجرا هستند (مثل Update) استفاده کرد.

به کانال یونیتی لرنینگ
بپیوندید /🔻
@UnityLearning
Unity_HotKeys_Win.pdf
54.4 KB
⭕️ لیست کاملی از کلیدهای میانبر یونیتی در پلتفرم ویندوز و مک

🔸تفکیک شده بر اساس منوها

به کانال یونیتی لرنینگ
بپیـــــــــــــــوندید/🔻
@UnityLearning