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
⭕️ لیست کامل دستورات PrimitiveType برای استفاده به عنوان پارامتر تابع CreatePrimitive

🔸به کانال یونیتی لرنینگ
بپیونـــــدید /🔻
@UnityLearning
CreatePrimitive.js
796 B
⭕️ اسکریپت آماده ساخت آبجکت های اصلی در قسمت های مختلف Terrain

🔸برای استفاده از آبجکت ها بعد از ایجاد شدن آنها را در متغیر قرار می دهیم. (طبق اسکریپت)

به زبان #جاوا اسکریپت
@UnityLearning
⚫️ فرا رسیدن سالروز شهادت حضرت رقیه، دختر سه ساله امام حسین (علیهم السلام) در خرابه شام را تسلیت عرض می‌کنیم.

◾️◼️@UnityLearning◼️◾️
⭕️ تغییر در جهت جاذبه

🔹 در یونیتی به طور طبیعی جهت جاذبه در جهت مخالف محور y است. یعنی خط y=-1 که همه چیز به سمت پایین و مانند جاذبه طبیعی است. اما در صورتی که به هر دلیل بخواهیم این جهت را تغییر دهیم، یعنی کار کنیم جاذبه به سمت دیگری در محیط Scene باشد و کلیه آبجکت های دارای Rigidbody و با پارامتر useGravity فعال، به آن سمت جذب شوند، از دستور gravity از #کلاس Physics استفاده می کنیم.

🔸این دستور یک Vector3 یعنی بردار سه بعدی دریافت می کند که جهت جاذبه در آن قرار خواهد گرفت، به طور مثال دستور زیر جهت جاذبه را به سمت بالا (مخالف آنچه در بازی اولیه می بینیم) قرار می دهد. [در این صورت کلیه آبجکت به سمت بالا جذب می شوند] /🔻

Physics.gravity = Vector3(0, 1.0, 0);

📍دقت کنید که جاذبه می تواند به هر جهتی باشد، نه فقط بالا و پایین . برای اینکار می توان بردار ترکیبی را در پارامترهای xyz وارد کرد.

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

📍یادآوری: #کلاس Random برای تولید اشیای تصادفی در یونیتی استفاده می شود. ما در پست های قبلی نحوه تولید یک عدد تصادفی با این کلاس را بررسی کردیم. اکنون برخی دیگر از دستورات این کلاس را بیان خواهیم کرد.

🔹دستور insideUnitCircle یک نقطه (دو بعدی|Vector2) از روی محیط یک دایره را بر می گرداند. (به طور پیش فرض این دایره دارای شعاع 1 است برای تغییر کافی است خروجی دستور را در عدد شعاع مورد نظر ضرب کرد. تأکید می گردد خروجی دستور دو بعــدی یا Vector2 می باشد. /🔻
Random.insideUnitCircle * radius ;

🔹در دستور بالا radius یک عدد می باشد که معادل شعاع دایره خواهد بود و خروجی کل دستور Vector2 می باشد که می توان آن را برای نقاط قرار گیری یک آبجکت در دو بعد (مثلا برای محورهای x و z ) تعیین کرد. (اسکریپت این کار در پست بعدی قرار خواهد گرفت)

به کانال یونیتی لرنینگ
بپیوندیـــــد/🔻
@UnityLearning
insideUnitCircle.js
331 B
⭕️ قطعه کد جاوا اسکریپت برای قرار گیری آبجکتی که کد به آن متصل می شود در محیط دایره به شعاع 5 به صورت تصادفی با استفاده از کلاس Random

@UnityLearning
📍در یونیتی برای اضافه کردن یک فونت جدید می توانید به راحتی آن را به پنجره Project دِرَگ کنید. این کار باعث می شود فونت شما به پروژه Import شود. در این صورت یونیتی کلیه کاراکترهای فونت انتخاب شده را رندر کرده و جدول آن را برای خود تشکیل می دهد. در این صورت کافی است در پنجره Inspector برای آبجکت هایی که Font دارند، این فونت را مقدار دهی کنید تا متن شما با آن فونت نمایش داده شود.

🔹در مورد نمایش فونـــت های فارسی که آموزش آن قبلاً در کانال قرار گرفته است، با نرم افزار Zabet شما باید فونت های مخصوص این نرم افزار که معمولاً با نام F_ شروع می شوند را به Unity اضافه کنید تا نمایش فونت فارسی در یونیتی نیز امکان پذیر شود. البته برای #پکیج UPersian که در کانال قرار گرفته است، این موضوع محدودیتی ندارد و می توانید از هر فونت فارسی برای بازی خود استفاده کنید.

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

🔹یونیتی قابلیت باز کردن یک سری فایل متنی را دارد، این فایل ها را می توان به پروژه اضافه کرد و بعداً چه در بخش طراحی و چه در بخش کدنویسی و اجرای بازی استفاده کرد. به این فایل ها مجموعۀ Text Asset گفته می شود و یونیتی با همه آنها به یک شکل (یعــــنی فایل متنی) رفتار می کند.

🔸فرمت های فایل که یونیتی برای Text Asset تشخیص می دهد شامل
.txt |.html |.htm | .xml| .bytes |.json |.csv | .yaml | .fnt
می باشد و یونیتی با همه آنها مانند یک فایل متنی ساده رفتار می کند که می توانید از محتویات آنها در بازی استفاده کنید.

به کانال یونیتی لرنینگ
بپـــــــوندید/🔻
@UnityLearning
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ نمایش دو #پنجره Project به صورت همزمان در یونیتی

🔸در صورتی که نیاز دارید دو پنجره Project را همزمان داشته باشید از این روش استفاده کنید.

گزینۀ Add tab با کلیک راست روی نام پنجره قابل دسترسی است.
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ تبدیل حالت دو ستونی به تک ستونی پنجره Project

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

@UnityLearning
در یونیتی برای تبدیل درجه به رادیان می توان از دستور زیر استفاده کرد./🔻
var rad : float = deg * Mathf.Deg2Rad;

در دستور بالا rad مقدار تبدیل شده نهایی و deg میزان درجه است.
Unity Learning
در یونیتی برای تبدیل درجه به رادیان می توان از دستور زیر استفاده کرد./🔻 var rad : float = deg * Mathf.Deg2Rad; در دستور بالا rad مقدار تبدیل شده نهایی و deg میزان درجه است.
🔹گاهــــی اوقات در برنامه نویسی لازم است، تبدیل بین درجه و رادیان صورت گیرد. #کلاس Mathf می تــــواند این عمل یعنی تبدیل مقدار درجه به رادیان و بر عکس را انجام دهد. همانطور که در پــــست قبلی بیان شد، با روش زیر می توان میزان درجه داده شــــده را به رادیان تبدیل کرد./🔻
var rad : float = deg * Mathf.Deg2Rad;

🔸برای تبدیل بر عکس یعنی تبدیل رادیان به درجـــه نیز از قالب دستوری زیر استفاده می شود./🔻
var deg : float = rad * Mathf.Rad2Deg;

به کانال یونیتی لرنینگ
بپیـــــــوندید/🔻
@UnityLearning
⭕️ذخیره سازی اطلاعات به صورت ایمن بر اساس تابع Hash در یونیتی

📍اطلاعات قبلی لازم: مطالعه در مورد نحوه ذخیره سازی داده ها به کمک جدول درهم سازی(Hash Table)

🔸در صورتی که در یونیتی بخواهیم اطلاعات با ایمنی بیشتر ذخیره شود، می توانیم از کلاس Hashtable در یونیتی استفاده کرد. این کلاس به طور کامل در یونتی برنامه نویسی شده است و نیازی به عمل اضافه برای تعریف نحوه ذخیره سازی داده ها نیست.

🔹برای استفاده از این کلاس ابتدا باید یک نمونه (متغیر) از آن تعریف کرد./🔻
var h : Hashtable;
h = new Hashtable();

وسپس با دستورات این کلاس مقادیر را به آن داد. به طور مثال دستورات زیر در اندیس های 1 و 2 مقادیر "one" , "two" را قرار می دهد./🔻
h.Add(1,"one");
h.Add(2,"two");

📍دستورات زیر یک اندیس به همراه مقدارش را از HashTable حذف می کند./🔻
h.Remove("1");

🔹دستور زیر تعداد مقادیر اضافه شده به متغیر از نوع HashTable را به عدد بر می گرداند./🔻
hCount;

🔘 سایر دستورات این کلاس در پست های بعد در Reply این پیام قرار خواهد گرفت. باید دانست دلیل اصلی استفاده از کلاس مذکور امنیت است ولی کاربرد های دیگر آن در مرتب سازی داده از کسی پوشیده نیست. این دستور ایمنی داده ها در حافظه Ram را تأمین می کند.

به کانال یونیتی لرنینگ
بپــــــوندید./🔻
@UnityLearning
Unity Learning
⭕️ذخیره سازی اطلاعات به صورت ایمن بر اساس تابع Hash در یونیتی 📍اطلاعات قبلی لازم: مطالعه در مورد نحوه ذخیره سازی داده ها به کمک جدول درهم سازی(Hash Table) 🔸در صورتی که در یونیتی بخواهیم اطلاعات با ایمنی بیشتر ذخیره شود، می توانیم از کلاس Hashtable در یونیتی…
⭕️ نحوه ذخیره سازی با استفاده از Hash Table به کمک جدول اندیس ها

این نحوه ذخیره سازی به طور گسترده درنرم‌افزارها، آرایه‌های شرکت پذیر، ساختار پایگاه‌داده، حافظه‌های نهان و مجموعه‌ها کاربرد دارد.
Unity Learning
⭕️ذخیره سازی اطلاعات به صورت ایمن بر اساس تابع Hash در یونیتی 📍اطلاعات قبلی لازم: مطالعه در مورد نحوه ذخیره سازی داده ها به کمک جدول درهم سازی(Hash Table) 🔸در صورتی که در یونیتی بخواهیم اطلاعات با ایمنی بیشتر ذخیره شود، می توانیم از کلاس Hashtable در یونیتی…
⭕️نحوه ذخیره سازی داده در هش(Hash) به شکل 🔻
(Key,Value)
است و به کمک آنها می توان به مقادیر دسترسی داشت. (همانطور که در دستور Add به همین شکل مقادیر ارسال می شد)
🔸در صورتی که بخواهیم از روی مقدار Key به مقدار Value دستیابی پیدا کنیم از دستور زیر استفاده خواهیم کرد./🔻
h.ContainsKey(key)
🔹در دستور فوق key همان مقدار key است که در دستور add وارد شده است و نوع آن نیز Object است، یعنی می تواند عددی، رشته ای و... باشد.

📍برای استفاده از حالت بر عکس یعنی دسترسی از روی مقدار value نیز می توان از دستور زیر استفاده کرد./🔻
h.ContainsValue("value")

[ در واقع دستورات فوق در Hash Table جستجو می کنند و اگر مقادیر در آن وجود داشت true خواهند بود ]

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

🔸در #یونیتی نیز مانند دیگر برنامه های برنامه نویسی عمل تبدیل بین عدد و رشته ای با دستورات خاصی انجام می گیرد. در ادامه دستورات تبدیلی به شکل مثال قرار خواهند گرفت، دقت کنید در تمام دستورات متغیر ها هر کدام از نوع int،float و String تعریف شده اند./🔻

🔹تبدیل String به int
i = int.Parse(s);

🔹تبدیل String به float
f = float.Parse(s);

🔹تبدیل int یا float به String
برای این تبدیل کافی است از دستور ToString در انتهای متغیر از نوع عددی استفاده کرد.
s = f.ToString();

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

🔹در #یونیتی در صورتی که بخواهید یک مقدار بین صفر و مقدار دیگری میل دهید، می توانید از دستور PingPong استفاده کنید. در واقع این دستور از صفر تا عدد وارد شده و بر عکس اعداد را میل می دهد و یک حالت رفت و برگشت (مثل بازی پینگ پونگ) می سازد. این دستور برای ساخت حالت های رفت و بر گشتی مثل هوش مصنوعی هایی که باید تنها یک مسیر را طی کنند و... بسیار کاربردی است.

🔸شکل کلی دستور به حالت زیر است./🔻
Mathf.PingPong(Time, Value)

👈 در دستور فوق مقدار Time بازه زمانی تولید اعداد است و مقدار Value عددی است که دستور از صفر تا آن یک بازه عددی تولید می کند. اگر می خواهیم این دستور در بازه زمانی بازی انجام شود (همیشه) می توان به جای Time دستور Time.time را نوشت. #مثال/🔻
Mathf.PingPong(Time.time, 3)

📍 دستور بالا یک بازۀ زمانی از صفر تا سه در اجرای بازی (قابل استفاده در تابع Update) ایجاد می کند. برای آموزش نحوۀ استفاده از این دستور در پست بعدی اسکریپت آماده حرکت در محور x با استفاده از دستور PingPong قرار خواهد گرفت.

به کانال یونیتی لرنینگ
بپــیوندید./🔻
@UnityLearning
PingPong.js
319 B
⭕️ اسکریپت آماده ساخت یک حالت رفت و برگشتی (Loop) برای حرکت یک آبجکت در محور x از 0 تا 3

🔹 بــه زبان #جاوا اسکریپت

@UnityLearning
⭕️ رفتارها و رویدادها در یونیتی

[این پست جنبه یادآوری و توضیح بیشتر دارد]

🔹در یونیتی زمانی که بخواهیم یک آبجکت از خود رفتار خاصی نشان دهد، باید از #کامپوننت ها استفاده کنیم. کامپوننت ها ویژگی هایی هستند که آبجکت ها در حالت عادی ندارند و لازم است به آنها داده شوند. مثلا آبجکت ها در حالت عادی نسبت به جاذبه واکنشی نشان نمی دهند و ما با اضافه کردن کامپوننت Rigidbody این ویژگی را به آنها می دهیم.

🔸برای رفتار های خاص در یونیتی کامپوننت های زیادی وجود دارد که بسیاری از آنها را در کانال بررسی کرده ایم. اما گاهی اوقات رفتار مد نظر ما به عنوان یک کامپوننت خاص در دسترس نیست در اینجا لازم است برای آبجکت/آبجکت هایمان کد بنویسیم. در واقع این کد یک کامپوننت است که ویژگیهای مد نظر ما را برای آبجکت انجام خواهد داد. علت اسکریپت نویسی در یونیتی هم دقیقاً همین موضوع است یعنی «انجام برخی رفتار و ویژگیها که در یونیتی برای آنها کامپوننت خاصی تعریف نشده است.»

📍البته به ناچار لازم است در برخی اسکریپت ها از کامپوننت های دیگر نیز استفاده کنیم، در واقع این استفاده کار ما را برای کد نویسی راحت تر می کند. این کامپوننت خودش می تواند یک اسکریپت دیگر باشد و یا هر کامپوننت دیگری که در یونیتی تعریف شده است.

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

@UnityLearning
Scripts_as_Behaviour_Components_Unity_Official_Tutorials.137.mp4
14.5 MB
🎥 Scripts as Behaviour Components

🔷 #فیلم قرار گرفته برای توصیف #کامپوننت ها و اسکریپت نویسی در سایت در یونیتی با کیفیت FHD

@UnityLearning
Unity Learning
Scripts_as_Behaviour_Components_Unity_Official_Tutorials.137.mp4
Change_Color.cs
599 B
⭕️ اسکریپت آماده معرفی شده در فیلم

«تغییر #رنگ یک آبجکت با کلید های RGB»

به زبان #سی_شارپ اسکریپت

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