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
⭕️ بررسی تگ یک آبجکت

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

روش اول) بررسی تگ با استفاده از خصوصیت tag همه آبجکت ها(transform) در یونیتی دارای خصوصیتی به نام tag هستند که میتوان به کمک آن تگ یک آبجکت را تعیین کرد یا آن را بدست آورد.

🔸قرار دادن تگ پلیر روی آبجکت/👇
transform.tag = "Player";
🔸بررسی تگ آبجکت که پلیر هست یا خیر؟ /👇
if (transform.tag == "Player")

روش دوم) استفاده از دستور و تابع CompareTag است، این تابع بررسی می‌کند تگ یک آبجکت آنچه در ورودی تابع داده شده هست یا خیر؟ /👇

if (transform.CompareTag ("Player"))

🔹این دستور دقیقا معادل همان دستور قبل است و هیچ تفاوتی نمی کند.

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

❗️ضمناً تأکید می‌گردد کلیه آبجکت ها در یونیتی دارای تگ هستند آنهایی که هنوز برای آنها تگ خاصی تعریف نکرده ایم دارای تگ به نام Untagged هستند. دقت کنید Untagged به معنای این نیست که آبجکت تگ ندارد بلکه نام یک تگ است که یونیتی به طور پیش فرض به تمام آبجکت ها می‌دهد.


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
Unity Learning
Distance.js
Distance_CSharp.cs
411 B
اسکریپت آماده ثبت فاصله از موقعیت اولیه که قبلا به زبان #جاوا قرار داده بودیم، به #درخواست کاربران به زبان #سی_شارپ

@UnityLearning
🔘کاربران گرامی لطفا با معرفی کانال ما را در هر چه بهتر شدن کانال یاری کنید. برای معرفی کانال می توانید از پست لینک زیر استفاده کنید/👇

▶️ https://t.me/UnityLearning/481

◻️◽️▫️یونیتی لرنـــینگ▫️◽️◻️
▪️◾️◼️@UnityLearning◼️◾️▪️
⭕️ پنجره Time Manager

Edit > Project Settings > Time

زمان پیش فرض تکرار دستورات تابع FixedUpdate با پارامتر Fixed Timestep قابل تنظیم است.

@UnityLearning
Unity Learning
⭕️ پنجره Time Manager Edit > Project Settings > Time زمان پیش فرض تکرار دستورات تابع FixedUpdate با پارامتر Fixed Timestep قابل تنظیم است. @UnityLearning
⭕️ #پنجره Time به منظور تنظیم اولیه پارامتر های مربوط به زمان

🔹همانطور که بیان شد با پارامتر اول یعنی Fixed Timestep می‌توان زمان تکرار تابع FixedUpdate() را مشخص می‌کند یعنی مثلا دستورات تابع مذکور هر 0.2 ثانیه یک بار اجرا شود.

🔸پارامتر دوم نیز حداکثر زمان هر بار اجرای تابع FixedUpdate() را مشخص می‌کند یعنی اگر به هر دلیل اجرای دستورات تابع طول کشید(مثلا به دلیل طولانی یا سنگین بودن دستورات) نهایتا تا چه زمانی یونیتی باید به اجرای دستورات و عدم بازگشت به اول تابع ادامه دهد. یعنی اگر مدت زمان اجرای دستورات تابع مثلا از 0.33 بیشتر شد دیگر به ادامه دستورات توجه نشود و به ابتدای تابع برگردد.

🔹پارامتر سوم Time Scale نیز مقدار اولیه Time Scale است که سرعت بازی را مشخص می‌کند . در مورد دستور Time Scale قبلا توضیح داده ایم عددی است که به طور کلی در زمان بازی ضرب می‌شود یعنی اگر معادل نیم تنظیم شود زمان اجرای بازی دو برابر کُند (اسلومیشن) می‌شود و اگر برابر 2 باشد زمان اجرای بازی دو برابر حالت واقعی تند می‌شود.

#یونیتی #برنامه



⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️برخی دستورات #کلاس Vector3

🔹همانطور که قبلا نیز گفتیم این کلاس برای کار با بردار های سه بعدی (یا نقاط در صفحه سه بعدی) استفاده می‌شود.

🔸برای محاسبه زاویه بین دو بردار از دستور Vector3.Angle استفاده می‌شود این تابع دو پارامتر از نوع Vector3 می‌گیرد که در واقع همان دو بردار مورد نظر هستند و تابع زاویه بین آنها را از نوع float بر می‌گرداند.

👈 #مثال
var angle: float = Vector3.Angle(targetDir, transform.forward);

🔹این دستور زاویه بین دو بردار روبرو آبجکت جاری و targetDir را محاسبه کرده و در متغیر angle قرار می‌دهد.

◻️ برای «محاسبه فاصله دو نقطه از هم» بر حسب متر نیز از تابع Vector3.Distance استفاده می‌شود. این تابع دو نقطه از نوع Vector3 دریافت می‌کند و فاصله آنها را بر اساس دستورات ریاضی «جذر حاصل جمع مکعب هر کدام از پارامتر های xyz» محاسبه می‌کند و آن را برمی گرداند(خروجی از نوع float است و به علت اینکه برای محاسبه این عدد (فاصله) نیاز به جذر گرفتن هست اکثر مواقع این عدد یک عدد گُنگ است.

▫️هر متغیری از کلاس Vector3 داشته باشیم می‌توانیم با دستورات XYZ به مقادیر این پارامتر ها به طور جداگانه دسترسی داشت /👇

var vct:Vector3;

▪️دستور زیر مقدار X مربوط به متغیر را بر می گرداند(اگر vct بیان کننده یک نقطه باشد 👈 x معادل موقعیت x در صفحه است و اگر معادل یک بردار باشد x معادل پارامتر x از آن است یعنی برداری که از نقطه (0،0،0) به سمت نقطه (X,Y,Z) رسم می‌شود معادل بردار مورد نظر ماست) /👇

vct.x;

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

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



⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ برخی دستورات #کلاس Vector3 #ادامه

▪️با تابع Normalize میتوان مقادیر یک بردار (یا نقطه) را به صورت نرمال شده (بین صفر و یک) در آورد/👇
Vector3. Normalize(Vector);

▫️این دستور یک بردار (Vector3) با مقادیر نرمال شده بردار Vector را برمی گرداند.

🔸تابع MoveToward موقعیت لازم برای حرکت یک آبجکت از محلی به محل دیگر را بر می گرداند. پارامتر های دستور به این ترتیب هستند که پارامتر اول موقعیت فعلی آبجکت است، پارامتر دوم موقعیت نهایی است که در نظر داریم به آن برسیم و میزان جابجایی نیز در پارامتر سوم است. در واقع این تابع هر بار موقعیتی را از نقطه اول(شروع) به سمت نقطه پایان که به میزان داده شده پیموده شود می‌دهد. به طور مثال فرض کنید بخواهیم از نقطه A به سمت نقطه B به میزان 2 واحد برویم دستور را به این شکل به کار میبریم/👇

Vector3.MoveTowards(A,B,2);

🔹این دستور موقعیت جدید را بر می‌گرداند. دستوری بسیار مناسب برای حرکت آبجکت ها به دنبال هم و یا به سمت دلخواه (جایگزینی مناسب برای دستور Translate)

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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ حرکت با دستور Move Towards به این شکل است👆

(حرکت مستقیم به سمت نقطه مقصد)

@UnityLearning
📷 حرم مطهر امام حسین علیه السلام در شب عرفه «هم اکنون»

◻️◽️▫️السلام علیک یا اباعبدالله الحسین

🌷التماس دعا

@UnityLearning
⭕️ برخی دستورات مربوط به UI Text در کد نویسی

▪️اگر یک متغیر از نوع UI Text برای دسترسی به آن داشته باشیم یعنی با فرض تعریف به شکل زیر /👇

#سی_شارپ
Using UnityEngin.UI
Text Txt;
#جاوا
var Txt:UnityEngine.UI.Text;

👈با پارامتر color می‌توان به رنگ متن دسترسی داشت. برای تغییر رنگ باید از #کلاس Color استفاده کرد که جزئیات بیشتر در پست زیر موجود است/👇

https://t.me/UnityLearning/1005

▫️با پارامتر font نیز میتوان فونت یک متن را در زمان اجرای بازی تغییر داد. این فونت باید در یونیتی تعریف شده باشد و آن را به اسکریپت معرفی کنیم، برای تعریف یک نوع داده فونت از کلاس Font استفاده می‌شود. این کلاس شامل پارامتر هایی مثل اندازه فونت و... است که در پست های بعد بیشتر در مورد آن توضیح می‌دهیم.

🔹برای تعیین تراز بندی (alignment) متن نیز از پارامتر alignment استفاده می‌شود. یک متن می تواند 6 حالت مختلف برای تراز بندی داشته باشد (مثلا بالا چپ چین، پایین راست چین و...) که این پارامتر ها با کلاس TextAnchor مشخص می‌شوند. مثلا

TextAnchor.MiddleLeft

▫️یعنی وسط چپ چین یا دستور /👇

TextAnchor.LowerCenter

🔸به معنای پایین وسط چین می‌باشد که باید این دستورات را به پارامتر alignment مربوط به یک UI Text داد. /👇

Txt.alignment = TextAnchor.LowerCenter;

🔹سایر دستورات و همچنین کلاس های لازم برای UI Text در پست های آتی توضیح داده خواهند شد.

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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔴فوری

پیکر پاک شهید حججی دقایقی پیش تحویل حزب الله و نیروهای مقاومت شد.

🔹منبع: شبکه خبر

@UnityLearning
با انتخاب گزینه در پنجره Inspector مربوط به Terrain به تنظیمات کلی در مورد Terrain دسترسی پیدا می‌کنید.

مثلا با گزینه (های) Draw مشخص می‌کنید آیا اجازه رسم درخت یا تکسچر روی این Terrain هست یا خیر؟
⭕️ شبیه سازی وزش باد 💨 در یونیتی

👈همانطور که در پنجره Terrain Setting(پست قبل) مشاهده می‌کنید، بخشی برای تنظیمات Wind در یونیتی وجود دارد.

🔹در یونیتی درختان 🌲 و Grass ها 🌾 نسبت به باد واکنش نشان می‌دهند که این موضوع زمانی که به محیط بازی خود Grass (چمن) اضافه می‌کنید بیشتر نمایان است.

🔸برای اضافه کردن یک مرکز تولید باد که به اصطلاح Wind Zone نامیده می‌شود از مسیر زیر استفاده می‌شود. /👇

Game Object > Create General > Wind Zone.

▪️با اضافه کردن آن یک آبجکت جداگانه به #پنجره Hierarchy افزوده می‌شود که با انتخاب آن با گزینه های تنظیماتی آن در Inspector دسترسی خواهیم داشت.

🌬اولین و مهمترین گزینه، Mode است این گزینه مشخص کننده نوع باد (خطی یا چرخشی است) یاد خطی یا Direction کل Terrain را در یک جهت برای باد تحت تاثیر قرار می دهد.

🌪در مقابل باد چرخشی که واقعی تر هم به نظر می آید، فقط بخشی که در شعاع آن قرار دارد را در جهات مختلف تحت تاثیر قرار می دهد.

▫️گزینه های دیگر منوط به انتخاب نوع باد خواهند بود، مثلا گزینه Radius همان شعاعی است که در باد Spherical(چرخشی) در مورد آن صحبت کردیم.

👈گزینه های دیگر نیز برای تنظیمات پیشرفته مربوط به باد مثلا زمان تکرار (Frequently) و.... به کار می رود.

🌫 قدرت وزش بادی که همیشه به صورت پیش فرض به Grass ها وزیده می‌شود، در پنجره Terrain Setting قابل تنظیم است. این میزان باد فقط برای تکان خوردن Grass ها حتی زمانی که Wind Zone در محیط بازی قرار نداده اید ، تنظیم شده است.

🔹با قرار دادن Wind Zone باد در جهت معقول به درخت ها نیز وارد می‌شود، بنابراین توصیه میشود اگر لازم است در بازی شما باد وجود داشته باشد از Wind Zone استفاده کنید.

#یونیتی #برنامه


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⭕️ #تکسچر مناسب Terrain برای زمین های ترک خورده (مثل کویر و یا کف رودخانه)

💡کیفیت: عادی

@UnityLearning
🌹در این عصر روز عرفه، روز دعا و استغفار ، ما را از دعای خیرتان بی بهره نگذارید.

🌸اللهم عجل لولیک الفرج🌸

▫️◽️◻️الـتماس دعا◻️◽️▫️

@UnityLearning
🕋صحرای عرفات هم اکنون

🔹وقوف حجاج بیت الله الحرام در سرزمین عرفات

@UnityLearning
⭕️ استفاده از چند #دوربین برای یک صحنه

🎦 در صورتی که بخواهیم در بازی چند دوربین داشته باشیم، و در هر زمان یکی از آنها فعال باشد باید در بخش های مورد نظر دوربین را با کمک پارامتر enabled فعال/غیر فعال کرد. این حالت مشابه بازی هایی است که در آن ها با فشردن یک کلید دوربین جابجا می‌شود، مثل بازی های ماشین سواری که دوربین در آنها با فشردن کلید C جابجا میشود.

🔹به طور #مثال اگر دو دوربین که به صورت زیر تعریف شده است و در یونیتی برای اسکریپت معرفی شده اند را داشته باشیم/👇

var firstPersonCamera: Camera;

var overheadCamera: Camera;

👈میتوانیم با دستوراتی مثل زیر یکی از آنها را فعال و دیگری را غیر فعال کنیم /👇
firstPersonCamera.enabled = false;

overheadCamera.enabled = true;

☑️به طور مثال می‌توان این دستورات را در شرط فشرده شدن یک کلید خاص قرار داد.

🔜 در پست های آتی اسکریپت های آماده و دستورات بیشتری از #کلاس Camera را بررسی می‌کنیم.

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


⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
This media is not supported in your browser
VIEW IN TELEGRAM
🌺فرا رسیدن ِ عید سعید قربان را به تمام مسلمین جهان تبریک و تهنیت عرض می‌کنیم.

🌹اَلسَّلامُ علَی ابراهیم خَلیل اللّه

💐با آرزوی ایام شاد و پر خیر و برکت برای شما

@UnityLearning
wood_grain_texture_table_surface_brown_stock_photo_design.jpg
3.4 MB
⭕️ #تکسچر چوب مناسب برای دیوارهای چوبی و همچنین میز

🔸با کیفیت عالی 4920*3280

@UnityLearning
peeling_red_paint_on_old_wooden_boards_texture.jpg
1.5 MB
⭕️ #تکسچر چوب دیگر برای ساخت درب و میز های قدیمی

🔸کیفیت خوب برای استفاده در #یونیتی و سایر نرم افزارهای گرافیکی تولید آبجکت

@UnityLearning