insideUnitCircle.js
331 B
⭕️ قطعه کد جاوا اسکریپت برای قرار گیری آبجکتی که کد به آن متصل می شود در محیط دایره به شعاع 5 به صورت تصادفی با استفاده از کلاس Random
@UnityLearning
@UnityLearning
📍در یونیتی برای اضافه کردن یک فونت جدید می توانید به راحتی آن را به پنجره Project دِرَگ کنید. این کار باعث می شود فونت شما به پروژه Import شود. در این صورت یونیتی کلیه کاراکترهای فونت انتخاب شده را رندر کرده و جدول آن را برای خود تشکیل می دهد. در این صورت کافی است در پنجره Inspector برای آبجکت هایی که Font دارند، این فونت را مقدار دهی کنید تا متن شما با آن فونت نمایش داده شود.
🔹در مورد نمایش فونـــت های فارسی که آموزش آن قبلاً در کانال قرار گرفته است، با نرم افزار Zabet شما باید فونت های مخصوص این نرم افزار که معمولاً با نام F_ شروع می شوند را به Unity اضافه کنید تا نمایش فونت فارسی در یونیتی نیز امکان پذیر شود. البته برای #پکیج UPersian که در کانال قرار گرفته است، این موضوع محدودیتی ندارد و می توانید از هر فونت فارسی برای بازی خود استفاده کنید.
به کانال یونیتی لرنینگ
بپــــــــــیوندید/🔻
@UnityLearning
🔹در مورد نمایش فونـــت های فارسی که آموزش آن قبلاً در کانال قرار گرفته است، با نرم افزار Zabet شما باید فونت های مخصوص این نرم افزار که معمولاً با نام F_ شروع می شوند را به Unity اضافه کنید تا نمایش فونت فارسی در یونیتی نیز امکان پذیر شود. البته برای #پکیج UPersian که در کانال قرار گرفته است، این موضوع محدودیتی ندارد و می توانید از هر فونت فارسی برای بازی خود استفاده کنید.
به کانال یونیتی لرنینگ
بپــــــــــیوندید/🔻
@UnityLearning
⭕️ قابلیت Text Asset در یونیتی
🔹یونیتی قابلیت باز کردن یک سری فایل متنی را دارد، این فایل ها را می توان به پروژه اضافه کرد و بعداً چه در بخش طراحی و چه در بخش کدنویسی و اجرای بازی استفاده کرد. به این فایل ها مجموعۀ Text Asset گفته می شود و یونیتی با همه آنها به یک شکل (یعــــنی فایل متنی) رفتار می کند.
🔸فرمت های فایل که یونیتی برای Text Asset تشخیص می دهد شامل
.txt |.html |.htm | .xml| .bytes |.json |.csv | .yaml | .fnt
می باشد و یونیتی با همه آنها مانند یک فایل متنی ساده رفتار می کند که می توانید از محتویات آنها در بازی استفاده کنید.
به کانال یونیتی لرنینگ
بپـــــــوندید/🔻
@UnityLearning
🔹یونیتی قابلیت باز کردن یک سری فایل متنی را دارد، این فایل ها را می توان به پروژه اضافه کرد و بعداً چه در بخش طراحی و چه در بخش کدنویسی و اجرای بازی استفاده کرد. به این فایل ها مجموعۀ 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 با کلیک راست روی نام پنجره قابل دسترسی است.
🔸در صورتی که نیاز دارید دو پنجره Project را همزمان داشته باشید از این روش استفاده کنید.
گزینۀ Add tab با کلیک راست روی نام پنجره قابل دسترسی است.
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️ تبدیل حالت دو ستونی به تک ستونی پنجره Project
🔹در حالت تک ستونی کلیه آبجکت ها و فایل ها در یک ستون (مانند تصویر) قرار خواهد گرفت.
@UnityLearning
🔹در حالت تک ستونی کلیه آبجکت ها و فایل ها در یک ستون (مانند تصویر) قرار خواهد گرفت.
@UnityLearning
Unity Learning
در یونیتی برای تبدیل درجه به رادیان می توان از دستور زیر استفاده کرد./🔻 var rad : float = deg * Mathf.Deg2Rad; در دستور بالا rad مقدار تبدیل شده نهایی و deg میزان درجه است.
🔹گاهــــی اوقات در برنامه نویسی لازم است، تبدیل بین درجه و رادیان صورت گیرد. #کلاس Mathf می تــــواند این عمل یعنی تبدیل مقدار درجه به رادیان و بر عکس را انجام دهد. همانطور که در پــــست قبلی بیان شد، با روش زیر می توان میزان درجه داده شــــده را به رادیان تبدیل کرد./🔻
var rad : float = deg * Mathf.Deg2Rad;
🔸برای تبدیل بر عکس یعنی تبدیل رادیان به درجـــه نیز از قالب دستوری زیر استفاده می شود./🔻
var deg : float = rad * Mathf.Rad2Deg;
به کانال یونیتی لرنینگ
بپیـــــــوندید/🔻
@UnityLearning
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
📍اطلاعات قبلی لازم: مطالعه در مورد نحوه ذخیره سازی داده ها به کمک جدول درهم سازی(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
(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
🔸در #یونیتی نیز مانند دیگر برنامه های برنامه نویسی عمل تبدیل بین عدد و رشته ای با دستورات خاصی انجام می گیرد. در ادامه دستورات تبدیلی به شکل مثال قرار خواهند گرفت، دقت کنید در تمام دستورات متغیر ها هر کدام از نوع 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 استفاده کنید. در واقع این دستور از صفر تا عدد وارد شده و بر عکس اعداد را میل می دهد و یک حالت رفت و برگشت (مثل بازی پینگ پونگ) می سازد. این دستور برای ساخت حالت های رفت و بر گشتی مثل هوش مصنوعی هایی که باید تنها یک مسیر را طی کنند و... بسیار کاربردی است.
🔸شکل کلی دستور به حالت زیر است./🔻
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
🔹 بــه زبان #جاوا اسکریپت
@UnityLearning
⭕️ رفتارها و رویدادها در یونیتی
[این پست جنبه یادآوری و توضیح بیشتر دارد]
🔹در یونیتی زمانی که بخواهیم یک آبجکت از خود رفتار خاصی نشان دهد، باید از #کامپوننت ها استفاده کنیم. کامپوننت ها ویژگی هایی هستند که آبجکت ها در حالت عادی ندارند و لازم است به آنها داده شوند. مثلا آبجکت ها در حالت عادی نسبت به جاذبه واکنشی نشان نمی دهند و ما با اضافه کردن کامپوننت Rigidbody این ویژگی را به آنها می دهیم.
🔸برای رفتار های خاص در یونیتی کامپوننت های زیادی وجود دارد که بسیاری از آنها را در کانال بررسی کرده ایم. اما گاهی اوقات رفتار مد نظر ما به عنوان یک کامپوننت خاص در دسترس نیست در اینجا لازم است برای آبجکت/آبجکت هایمان کد بنویسیم. در واقع این کد یک کامپوننت است که ویژگیهای مد نظر ما را برای آبجکت انجام خواهد داد. علت اسکریپت نویسی در یونیتی هم دقیقاً همین موضوع است یعنی «انجام برخی رفتار و ویژگیها که در یونیتی برای آنها کامپوننت خاصی تعریف نشده است.»
📍البته به ناچار لازم است در برخی اسکریپت ها از کامپوننت های دیگر نیز استفاده کنیم، در واقع این استفاده کار ما را برای کد نویسی راحت تر می کند. این کامپوننت خودش می تواند یک اسکریپت دیگر باشد و یا هر کامپوننت دیگری که در یونیتی تعریف شده است.
👈 #ادامه_دارد
@UnityLearning
[این پست جنبه یادآوری و توضیح بیشتر دارد]
🔹در یونیتی زمانی که بخواهیم یک آبجکت از خود رفتار خاصی نشان دهد، باید از #کامپوننت ها استفاده کنیم. کامپوننت ها ویژگی هایی هستند که آبجکت ها در حالت عادی ندارند و لازم است به آنها داده شوند. مثلا آبجکت ها در حالت عادی نسبت به جاذبه واکنشی نشان نمی دهند و ما با اضافه کردن کامپوننت Rigidbody این ویژگی را به آنها می دهیم.
🔸برای رفتار های خاص در یونیتی کامپوننت های زیادی وجود دارد که بسیاری از آنها را در کانال بررسی کرده ایم. اما گاهی اوقات رفتار مد نظر ما به عنوان یک کامپوننت خاص در دسترس نیست در اینجا لازم است برای آبجکت/آبجکت هایمان کد بنویسیم. در واقع این کد یک کامپوننت است که ویژگیهای مد نظر ما را برای آبجکت انجام خواهد داد. علت اسکریپت نویسی در یونیتی هم دقیقاً همین موضوع است یعنی «انجام برخی رفتار و ویژگیها که در یونیتی برای آنها کامپوننت خاصی تعریف نشده است.»
📍البته به ناچار لازم است در برخی اسکریپت ها از کامپوننت های دیگر نیز استفاده کنیم، در واقع این استفاده کار ما را برای کد نویسی راحت تر می کند. این کامپوننت خودش می تواند یک اسکریپت دیگر باشد و یا هر کامپوننت دیگری که در یونیتی تعریف شده است.
👈 #ادامه_دارد
@UnityLearning
Scripts_as_Behaviour_Components_Unity_Official_Tutorials.137.mp4
14.5 MB
🎥 Scripts as Behaviour Components
🔷 #فیلم قرار گرفته برای توصیف #کامپوننت ها و اسکریپت نویسی در سایت در یونیتی با کیفیت FHD
@UnityLearning
🔷 #فیلم قرار گرفته برای توصیف #کامپوننت ها و اسکریپت نویسی در سایت در یونیتی با کیفیت FHD
@UnityLearning
Unity Learning
Scripts_as_Behaviour_Components_Unity_Official_Tutorials.137.mp4
Change_Color.cs
599 B
⭕️ اسکریپت آماده معرفی شده در فیلم
«تغییر #رنگ یک آبجکت با کلید های RGB»
به زبان #سی_شارپ اسکریپت
به کانال یونیتی لرنینگ
بپیوندید./🔻
@UnityLearning
«تغییر #رنگ یک آبجکت با کلید های RGB»
به زبان #سی_شارپ اسکریپت
به کانال یونیتی لرنینگ
بپیوندید./🔻
@UnityLearning
Its A Road Tool.unitypackage
1.4 MB
⭕️ #پکیج ساخت جاده در یونیتی
🔹 این پکیج برای ساخت محیط با جاده به هر شکلی استفاده می شود. هماهنگی با Terrain و سطوح آن از دیگر ویژگی های این پکیج است.
@UnityLearning
🔹 این پکیج برای ساخت محیط با جاده به هر شکلی استفاده می شود. هماهنگی با Terrain و سطوح آن از دیگر ویژگی های این پکیج است.
@UnityLearning
Unity Learning
Its A Road Tool.unitypackage
⭕️ #آموزش استفاده از #پکیج
🔹برای استفاده از این پکیج بعد از import کردن آن به پروژه بازی سازی خود، می توانید آن را از منوی GameObject به بازی اضافه کنید./🔻
GameObject->Create Other->Road
🔸سپس روی Terrain یا هر آبجکت دارای MeshRendrer و Collider کلیک کنید تا نقاط روی صفحه ثبت شود.
🔹در پایان تعیین مسیر دکمه قرمز رنگ Lock در کنار صفحه [پنجره Inspector] کلیک کنید و منتظر بمانید تا مسیر شما کامل شود.
📍بعداً نیز می توانید مسیرتان را تغییر دهید برای این کار مجددا روی دکمه سبز رنگ Modify در کنار صفحه کلیک کنید و مجددا مسیر را روی صفحه مشخص کنید.
📕 این پکیج ویژگیهای دیگری نیز دارد که می توانید آنها را در فایل Readme موجود در پوشه پکیج مشاهده نمایید.
به کانال یونیتی لرنینگ
بپیــــــــوندید./🔻
@UnityLearning
🔹برای استفاده از این پکیج بعد از import کردن آن به پروژه بازی سازی خود، می توانید آن را از منوی GameObject به بازی اضافه کنید./🔻
GameObject->Create Other->Road
🔸سپس روی Terrain یا هر آبجکت دارای MeshRendrer و Collider کلیک کنید تا نقاط روی صفحه ثبت شود.
🔹در پایان تعیین مسیر دکمه قرمز رنگ Lock در کنار صفحه [پنجره Inspector] کلیک کنید و منتظر بمانید تا مسیر شما کامل شود.
📍بعداً نیز می توانید مسیرتان را تغییر دهید برای این کار مجددا روی دکمه سبز رنگ Modify در کنار صفحه کلیک کنید و مجددا مسیر را روی صفحه مشخص کنید.
📕 این پکیج ویژگیهای دیگری نیز دارد که می توانید آنها را در فایل Readme موجود در پوشه پکیج مشاهده نمایید.
به کانال یونیتی لرنینگ
بپیــــــــوندید./🔻
@UnityLearning
Unity Learning
⭕️ رفتارها و رویدادها در یونیتی [این پست جنبه یادآوری و توضیح بیشتر دارد] 🔹در یونیتی زمانی که بخواهیم یک آبجکت از خود رفتار خاصی نشان دهد، باید از #کامپوننت ها استفاده کنیم. کامپوننت ها ویژگی هایی هستند که آبجکت ها در حالت عادی ندارند و لازم است به آنها…
⭕️ اسکریپت نویسی برای ایجاد یک رفتار خاص #ادامه
🔸اسکریپت ها در یک بازی نقش بسیار مهمی را بر عهده دارند و یک بازی ساز حتماً باید به آن توجه کامل کند. همانطور که قبلاً نیز توضیح داده ایم، بدترین حالت برای کدها وجود اشکال (bug) در کد است که حتماً منجر به شکست کل بازی خواهد شد. در یونیتی این استراتژی وجود دارد که تا خطاهای کامپایلری کلیه اسکریپت های موجود در کد رفع نشود، به هیچ عنوان اجازۀ اجرای بازی را نخواهد داد اما خطاهای غیر دستوری مثل مقدار دهی اشتباه یک متغیر و... در یونیتی تست نخواهد شد و تنها در زمان اجرای بازی باعث Crash خواهند شد.
🔹حتما در اسکریپت نویسی سعی کنید یک کد را مدام کپی پِیست نکنید. این کار بیش از 5 بار در یک پروژۀ بازی سازی، نشان از متخصص نبودن برنامه نویسان آن دارد. همچنین سعی کنید، متغیرها در برنامه نویسی را با توجه به کاری که انجام می دهند، نام گذاری کنید. این کار ساختار اسکریپت شما را کاملاً مفهومی می کند که به Trace کردن (آزمون کردن) کد بسیار کمک خواهد کرد.
@UnityLearning
🔸اسکریپت ها در یک بازی نقش بسیار مهمی را بر عهده دارند و یک بازی ساز حتماً باید به آن توجه کامل کند. همانطور که قبلاً نیز توضیح داده ایم، بدترین حالت برای کدها وجود اشکال (bug) در کد است که حتماً منجر به شکست کل بازی خواهد شد. در یونیتی این استراتژی وجود دارد که تا خطاهای کامپایلری کلیه اسکریپت های موجود در کد رفع نشود، به هیچ عنوان اجازۀ اجرای بازی را نخواهد داد اما خطاهای غیر دستوری مثل مقدار دهی اشتباه یک متغیر و... در یونیتی تست نخواهد شد و تنها در زمان اجرای بازی باعث Crash خواهند شد.
🔹حتما در اسکریپت نویسی سعی کنید یک کد را مدام کپی پِیست نکنید. این کار بیش از 5 بار در یک پروژۀ بازی سازی، نشان از متخصص نبودن برنامه نویسان آن دارد. همچنین سعی کنید، متغیرها در برنامه نویسی را با توجه به کاری که انجام می دهند، نام گذاری کنید. این کار ساختار اسکریپت شما را کاملاً مفهومی می کند که به Trace کردن (آزمون کردن) کد بسیار کمک خواهد کرد.
@UnityLearning
⭕️ تنظیم آسمان محیط
☀️ همانطور که می دانید در یونیتی، کامپوننت Skybox مسئول نمایش محیط آسمان در بازی می باشد. اما این #کامپوننت باید کجا استفاده شود تا خروجی لازم نمایش داده شود؟ همانطور که واضح است آسمان موضوعی است برای نمایش در دوربیـــن فعال بازی، بنابراین باید کامپوننت Skybox به آبجکتی که دارای کامپوننت Camera است داده شود. یعنی همیشه کامپوننت زمانی کار خواهد کرد که در کنار Camera باشد.
🔹ضمناً پارامتر Clear Flags نیز از کامپوننت Camera باید روی Skybox تنظیم شده باشد. در صورتی که لازم باشد دوربین فعال در بازی تغییر کند باید کامپوننت Skybox آن نیز همزمان تغییر کند.
🔸 کامپوننت Skybox تنها یک پارامتر دارد و آن ، همان آسمانی است که باید برای دوربین نمایش دهد، در صورتی که Skybox برای پروژه خود دانلود کرده باشید می توانید با کلیک روی دایره کنار پارامتر Custom Skybox آنرا انتخاب کنید.
@UnityLearning
☀️ همانطور که می دانید در یونیتی، کامپوننت Skybox مسئول نمایش محیط آسمان در بازی می باشد. اما این #کامپوننت باید کجا استفاده شود تا خروجی لازم نمایش داده شود؟ همانطور که واضح است آسمان موضوعی است برای نمایش در دوربیـــن فعال بازی، بنابراین باید کامپوننت Skybox به آبجکتی که دارای کامپوننت Camera است داده شود. یعنی همیشه کامپوننت زمانی کار خواهد کرد که در کنار Camera باشد.
🔹ضمناً پارامتر Clear Flags نیز از کامپوننت Camera باید روی Skybox تنظیم شده باشد. در صورتی که لازم باشد دوربین فعال در بازی تغییر کند باید کامپوننت Skybox آن نیز همزمان تغییر کند.
🔸 کامپوننت Skybox تنها یک پارامتر دارد و آن ، همان آسمانی است که باید برای دوربین نمایش دهد، در صورتی که Skybox برای پروژه خود دانلود کرده باشید می توانید با کلیک روی دایره کنار پارامتر Custom Skybox آنرا انتخاب کنید.
@UnityLearning
Unity Learning
⭕️ تنظیم آسمان محیط ☀️ همانطور که می دانید در یونیتی، کامپوننت Skybox مسئول نمایش محیط آسمان در بازی می باشد. اما این #کامپوننت باید کجا استفاده شود تا خروجی لازم نمایش داده شود؟ همانطور که واضح است آسمان موضوعی است برای نمایش در دوربیـــن فعال بازی، بنابراین…
⭕️ استفاده از یک آسمان برای تمام دوربین های فعال
[تنظیم یک آسمان به عنوان Default Skybox برای همه دوربین ها]
🔸در یونیتی برای اینکه بخواهیم یک آسمان را روی تمام دوربین های فعال بازی اعمال کنیم و دیگر نخواهیم برای تک تک دوربین ها کامپوننت Skybox قرار دهیم، لازم است از پنجره Light Setting استفاده کنیم و در بخش Environment اقدام به تنظیم یک آسمان خاص برای بازی کنیم. این آسمان روی تمامی دوربین ها به عنوان پیش فرض تنظیم می شود و شما اگر بخواهید یک دوربین آسمان متفاوتی را نمایش دهد باید اختصاصاً برای آن #کامپوننت Skybox قرار دهید.
@UnityLearning
[تنظیم یک آسمان به عنوان Default Skybox برای همه دوربین ها]
🔸در یونیتی برای اینکه بخواهیم یک آسمان را روی تمام دوربین های فعال بازی اعمال کنیم و دیگر نخواهیم برای تک تک دوربین ها کامپوننت Skybox قرار دهیم، لازم است از پنجره Light Setting استفاده کنیم و در بخش Environment اقدام به تنظیم یک آسمان خاص برای بازی کنیم. این آسمان روی تمامی دوربین ها به عنوان پیش فرض تنظیم می شود و شما اگر بخواهید یک دوربین آسمان متفاوتی را نمایش دهد باید اختصاصاً برای آن #کامپوننت Skybox قرار دهید.
@UnityLearning