⭕️ رسم خط در کلاس Debug
▫️گاهی اوقات لازم است در زمان اجرای بازی و در زمان اجرای بازی در محیط Editor یونیتی یک خط برای مشاهده بازی ساز رسم شود تا بازی ساز توسط آن خط مواردی را تست کند و بر اساس آن تصمیم گیری کند. دقت کنید این خط تنها در زمان اجرای بازی (Play Mode) و فقط در زمانی که بازی را در محیط Editor اجرا کرده ایم، دیده میشود. رسم این خط در بعضی موارد که لازم است بازی ساز صحت بازی خود را تست کند، بسیار لازم است.
🔸دستور رسم خط در کلاس Debug به شکل زیر است /👇
Debug.DrawLine(StartPos,EndPos,Color);
👈 این دستور یک خط از نقطه شروع(از نوع Vector3) به نقطه پایان با رنگ داده شده رسم میکند. البته حالات دیگری از این تابع نیز وجود دارد. مثلا پارامتر چهارمی به نام Duration نیز برای تابع وجود دارد که زمان رسم خط را میتوان در آن وارد کرد مثلا اگر مقدار 3.5f در آن قرار گیرد، خط به مدت 3 و نیم ثانیه رسم شده و سپس حذف میشود.
🔹🔷 مثال: رسم خط از یک آبجکت (که کد را به آن متصل کرده ایم) به سمت آبجکت دیگری که برای اسکریپت معرفی شده است به رنگ قرمز . /👇
var Obj : Transform;
......
......
Debug.DrawLine(transform.position,Obj.position,Color.red);
〰〰〰〰〰〰〰〰
🔹🔷کانال یونیتی لرنینگ 🔷🔹
🔸🔶@UnityLearning🔶🔸
▫️گاهی اوقات لازم است در زمان اجرای بازی و در زمان اجرای بازی در محیط Editor یونیتی یک خط برای مشاهده بازی ساز رسم شود تا بازی ساز توسط آن خط مواردی را تست کند و بر اساس آن تصمیم گیری کند. دقت کنید این خط تنها در زمان اجرای بازی (Play Mode) و فقط در زمانی که بازی را در محیط Editor اجرا کرده ایم، دیده میشود. رسم این خط در بعضی موارد که لازم است بازی ساز صحت بازی خود را تست کند، بسیار لازم است.
🔸دستور رسم خط در کلاس Debug به شکل زیر است /👇
Debug.DrawLine(StartPos,EndPos,Color);
👈 این دستور یک خط از نقطه شروع(از نوع Vector3) به نقطه پایان با رنگ داده شده رسم میکند. البته حالات دیگری از این تابع نیز وجود دارد. مثلا پارامتر چهارمی به نام Duration نیز برای تابع وجود دارد که زمان رسم خط را میتوان در آن وارد کرد مثلا اگر مقدار 3.5f در آن قرار گیرد، خط به مدت 3 و نیم ثانیه رسم شده و سپس حذف میشود.
🔹🔷 مثال: رسم خط از یک آبجکت (که کد را به آن متصل کرده ایم) به سمت آبجکت دیگری که برای اسکریپت معرفی شده است به رنگ قرمز . /👇
var Obj : Transform;
......
......
Debug.DrawLine(transform.position,Obj.position,Color.red);
〰〰〰〰〰〰〰〰
🔹🔷کانال یونیتی لرنینگ 🔷🔹
🔸🔶@UnityLearning🔶🔸
⚫️ فرا رسیدن تاسوعا و عاشورای حسینی «سالروز شهادت حضرت امام حسین، آقا اباالفضل العباس و یاران با وفایشان» را به تمام محبین اهل بیت تسلیت عرض میکنیم.
▪️◾️◼️⬛️ ⬛️◼️◾️▪️
@UnityLearning
▪️◾️◼️⬛️ ⬛️◼️◾️▪️
@UnityLearning
Tooltip.png
49.5 KB
نمایش منوی Tooltip برای پارامتر های اسکریپت به عنوان توضیح بیشتر در مورد پارامتـــر
برای این کار می توانید از دستور Tooltip قبل از تعریف پارامتر (در ابتدای اسکریپت به عنوان پارامتر ورودی)
برای این کار می توانید از دستور Tooltip قبل از تعریف پارامتر (در ابتدای اسکریپت به عنوان پارامتر ورودی)
⭕ تعاریف Public و Private
🔹 متغیرها، کلاس ها و توابعی که تعریف می شوند می توانند از نوع Public یا Private باشند تا کنون از این دستورات زیاد استفاده کرده ایم اما توضیحات اندکی در مورد آنها بیان کردیم. بیشتر از این دستورات برای پارامترهایی که باید در Inspector نمایش داده شوند یا نشوند، استفاده کردیم اما کاربرد اصلی این دستورات کلی تر است.
🔸 پارامترها(متغیر، کلاس و تابع)یی که از نوع Public تعریف می شوند، در واقع عمومی اند یعنی از سایر بخش ها قابل دسترسی هستند. سایر بخش ها می توانند کلاس یا اسکریپت دیگری باشند. پارامــــترهای یک کلاس می تواند به پارامترهای Public کلاس دیگر دسترسی داشته باشند و اگر پارامترها Private باشند قابل دسترسی نیستند. (همانطور که بیان شد این دسترسی می تواند از کلاس یا اسکریپت دیگر باشد)
🔹🔷 به طور پیش فرض در #یونیتی متغیرهای سراسری که از نوع Public تعریف می شوند، به عنوان پارامتر ورودی آن اسکریپت در نظر گرفته می شوند و در پنجره Inspector قابل مقدار دهی هستند. در صورتی که می خواهیم یک متغیر از نوع Public باشد اما به عنوان پارامتر ورودی اسکرپیت نمایش داده نشود از دستور HideInInspector قبل از تعریف پارامتر استفاده می شود. اگر این عبارت قبل از تعریف متغیر سراسری Public قرار گیرد آن متغیر به عنوان پارامتر در Inspector نمایش داده نخواهد شد.
#سی_شارپ /👇
[HideInInspector]
public int p = 5;
#جاوا اسکریپت/👇
@HideInInspector
var p = 5;
(در هر دو دستور متغیر p به صورت سراسری public بوده ولی به عنوان پارامتر ورودی در یونیتی نمایش داده نخواهد شد)
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
🔹 متغیرها، کلاس ها و توابعی که تعریف می شوند می توانند از نوع Public یا Private باشند تا کنون از این دستورات زیاد استفاده کرده ایم اما توضیحات اندکی در مورد آنها بیان کردیم. بیشتر از این دستورات برای پارامترهایی که باید در Inspector نمایش داده شوند یا نشوند، استفاده کردیم اما کاربرد اصلی این دستورات کلی تر است.
🔸 پارامترها(متغیر، کلاس و تابع)یی که از نوع Public تعریف می شوند، در واقع عمومی اند یعنی از سایر بخش ها قابل دسترسی هستند. سایر بخش ها می توانند کلاس یا اسکریپت دیگری باشند. پارامــــترهای یک کلاس می تواند به پارامترهای Public کلاس دیگر دسترسی داشته باشند و اگر پارامترها Private باشند قابل دسترسی نیستند. (همانطور که بیان شد این دسترسی می تواند از کلاس یا اسکریپت دیگر باشد)
🔹🔷 به طور پیش فرض در #یونیتی متغیرهای سراسری که از نوع Public تعریف می شوند، به عنوان پارامتر ورودی آن اسکریپت در نظر گرفته می شوند و در پنجره Inspector قابل مقدار دهی هستند. در صورتی که می خواهیم یک متغیر از نوع Public باشد اما به عنوان پارامتر ورودی اسکرپیت نمایش داده نشود از دستور HideInInspector قبل از تعریف پارامتر استفاده می شود. اگر این عبارت قبل از تعریف متغیر سراسری Public قرار گیرد آن متغیر به عنوان پارامتر در Inspector نمایش داده نخواهد شد.
#سی_شارپ /👇
[HideInInspector]
public int p = 5;
#جاوا اسکریپت/👇
@HideInInspector
var p = 5;
(در هر دو دستور متغیر p به صورت سراسری public بوده ولی به عنوان پارامتر ورودی در یونیتی نمایش داده نخواهد شد)
⭕ کانال یونیتی لرنینگ⭕
💢 @UnityLearning💢
⚫️ عاشورای حسینی ⚫️
سالروز شهادت امام حسین و یاران با وفایش در دشت کربلا را گرامی می داریم و همه یک صدا میگوییم
▪️◾️◼️ ⬛️یا حُسَیْن⬛️◼️◾️▪️
▪️◾️◼️⬛️یا عَبّاس⬛️◼️◾️▪️
▪️◾️◼️⬛️یا زِیْنَب⬛️◼️◾️▪️
🏴 السلام علی الحسین و علی علی بن الحسین و علی اولاد الحسین و علی اصحاب الحسین
از همه شما عزیزان، در عزاداریِ خالصانه تانْ برای سَرْوَر و سالارِ شَهیدان التماس دعا داریم.
به ما بپیوندید👇
@UnityLearning
سالروز شهادت امام حسین و یاران با وفایش در دشت کربلا را گرامی می داریم و همه یک صدا میگوییم
▪️◾️◼️ ⬛️یا حُسَیْن⬛️◼️◾️▪️
▪️◾️◼️⬛️یا عَبّاس⬛️◼️◾️▪️
▪️◾️◼️⬛️یا زِیْنَب⬛️◼️◾️▪️
🏴 السلام علی الحسین و علی علی بن الحسین و علی اولاد الحسین و علی اصحاب الحسین
از همه شما عزیزان، در عزاداریِ خالصانه تانْ برای سَرْوَر و سالارِ شَهیدان التماس دعا داریم.
به ما بپیوندید👇
@UnityLearning
⭕️ کلاس ها در یونیتی
🔸 همانطور که می دانید در برنامه نویسی کلاس به مجموعه ای (شامل اشیای خاص و ویژگی های آنها) گفته میشود که هر کدام می توانند رفتار خاصی از خود نمایش دهند. مثلا زمانی که یک شی از کلاس Integer تعریف میکنیم، این شی (متغیر) می تواند رفتار مربوط به اعداد صحیح را از خود نشان دهد و اعمال روی آنها نیز توسط آن انجام میشود (➕➖➗✖️)
🔹 برای سایر کلاس ها نیز به همین شکل است زمانی که یک شی از آنها تعریف میکنیم آن شی می تواند معرف و انجام دهنده اعمال آن شی باشد. اما گاهی این محدوده بزرگ تر از یک شی خاص مثل یک متغیر است. گاهی لازم است یک کلاس از کلاس دیگر ارث ببرد یعنی تمام ویژگی های کلاس قبل را داشته باشد و یک سری ویژگی هم خاص خود داشته باشد. معمولا ً در اینجا کلاس اتومبیل را مثال می زنند که می تواند شامل ویژگی هایی مثل چهار چرخ، شتاب، سرعت حرکت و... باشد و کلاس مرسدس که از کلاس اتومبیل ارث می برد، تمام ویژگی های آن را (یعنی چهار چرخ و ...) دارد اما لازم است یک سری ویژگی خاص خود داشته باشد که باید برای آن تعریف شود. (نحوه تعریف کلاس هایی که از کلاس دیگری ارث می برند، قبلا در کانال بیان شده است، جاوا و سی شارپ)
👈 تعریف کلاس در یونیتی بسیار کاربردی و مهم است، برخی برنامه نویسان حرفه ای دقیقا آنچه برای کلاس ارث برنده مثال زدیم را در بازی خود اجرا میکنند، یعنی دقیقا کلاسی تعریف میکنند برای اتومبیل شامل پارامتر ها و توابع حرکت و... ، و به راحتی برای ساخت بازی خود از آن برای استفاده روی ماشین های مختلف استفاده میکنند.
▫️ در یونیتی اسکریپت ها برای انجام کارهای خاص باید از کلاس های بزرگ تری ارث ببرند. مثلا اگر قرار است کلاس ما رفتار یک آبجکت را توصیف کند باید از کلاس MonoBehaviour ارث ببرد، در واقع این کلاس همه آنچه برای رفتار آبجکت ها لازم است را در خود تعریف کرده و با تعریف یک کلاس جدید از نوع آن به همه آنها دسترسی خواهیم داشت.
⚪️ یا کلاس NetworkManager که شرایط و پارامتر های لازم برای مدیریت شبکه را در یونیتی فراهم کرده است.
☑️ به طور مثال کلاس NetworkManager تابعی به نام OnServerConnect دارد که زمانی اجرا میشود که یک کلاینت به سرور جاری متصل شود. مشابه تابع Update از کلاس Mono Behavior که در هر فریم از زمان به صورت دایمی اجرا میشود.
✅ بنابراین در یونیتی کلاس های بزرگی وجود دارد که در آنها پارامتر هایی برای انجام رویداد های مربوط به بازی به صورت از پیش تعریف شده قرار دارند و می توان با تعریف یک کلاس جدید از آنها و ویژگی های تعریف شده در آنها ارث برد.
🔘 دو مثال از تعریف کلاس از نوع NetworkManager و تعریف تابع OnServerConnect به زبان #جاوا و #سی_شارپ در پست بعدی قرار خواهد گرفت. (برای آموزش نحوه تعریف کلاس)
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔸 همانطور که می دانید در برنامه نویسی کلاس به مجموعه ای (شامل اشیای خاص و ویژگی های آنها) گفته میشود که هر کدام می توانند رفتار خاصی از خود نمایش دهند. مثلا زمانی که یک شی از کلاس Integer تعریف میکنیم، این شی (متغیر) می تواند رفتار مربوط به اعداد صحیح را از خود نشان دهد و اعمال روی آنها نیز توسط آن انجام میشود (➕➖➗✖️)
🔹 برای سایر کلاس ها نیز به همین شکل است زمانی که یک شی از آنها تعریف میکنیم آن شی می تواند معرف و انجام دهنده اعمال آن شی باشد. اما گاهی این محدوده بزرگ تر از یک شی خاص مثل یک متغیر است. گاهی لازم است یک کلاس از کلاس دیگر ارث ببرد یعنی تمام ویژگی های کلاس قبل را داشته باشد و یک سری ویژگی هم خاص خود داشته باشد. معمولا ً در اینجا کلاس اتومبیل را مثال می زنند که می تواند شامل ویژگی هایی مثل چهار چرخ، شتاب، سرعت حرکت و... باشد و کلاس مرسدس که از کلاس اتومبیل ارث می برد، تمام ویژگی های آن را (یعنی چهار چرخ و ...) دارد اما لازم است یک سری ویژگی خاص خود داشته باشد که باید برای آن تعریف شود. (نحوه تعریف کلاس هایی که از کلاس دیگری ارث می برند، قبلا در کانال بیان شده است، جاوا و سی شارپ)
👈 تعریف کلاس در یونیتی بسیار کاربردی و مهم است، برخی برنامه نویسان حرفه ای دقیقا آنچه برای کلاس ارث برنده مثال زدیم را در بازی خود اجرا میکنند، یعنی دقیقا کلاسی تعریف میکنند برای اتومبیل شامل پارامتر ها و توابع حرکت و... ، و به راحتی برای ساخت بازی خود از آن برای استفاده روی ماشین های مختلف استفاده میکنند.
▫️ در یونیتی اسکریپت ها برای انجام کارهای خاص باید از کلاس های بزرگ تری ارث ببرند. مثلا اگر قرار است کلاس ما رفتار یک آبجکت را توصیف کند باید از کلاس MonoBehaviour ارث ببرد، در واقع این کلاس همه آنچه برای رفتار آبجکت ها لازم است را در خود تعریف کرده و با تعریف یک کلاس جدید از نوع آن به همه آنها دسترسی خواهیم داشت.
⚪️ یا کلاس NetworkManager که شرایط و پارامتر های لازم برای مدیریت شبکه را در یونیتی فراهم کرده است.
☑️ به طور مثال کلاس NetworkManager تابعی به نام OnServerConnect دارد که زمانی اجرا میشود که یک کلاینت به سرور جاری متصل شود. مشابه تابع Update از کلاس Mono Behavior که در هر فریم از زمان به صورت دایمی اجرا میشود.
✅ بنابراین در یونیتی کلاس های بزرگی وجود دارد که در آنها پارامتر هایی برای انجام رویداد های مربوط به بازی به صورت از پیش تعریف شده قرار دارند و می توان با تعریف یک کلاس جدید از آنها و ویژگی های تعریف شده در آنها ارث برد.
🔘 دو مثال از تعریف کلاس از نوع NetworkManager و تعریف تابع OnServerConnect به زبان #جاوا و #سی_شارپ در پست بعدی قرار خواهد گرفت. (برای آموزش نحوه تعریف کلاس)
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
NetworkManager_Class.txt
961 B
دو مثال برای آموزش ارث بری کلاس ها از کلاس NetworkManager و استفاده از تابع OnServerConnect
#سی_شارپ و #جاوا اسکریپت
@UnityLearning
#سی_شارپ و #جاوا اسکریپت
@UnityLearning
MovementControls.cs
668 B
⭕️ اسکرپیت آماده جهت حرکت آبجکت با کلیدهای جهتی کیبرد⌨️ ، Joystick 🕹 و هر کنسول حرکتی دیگر🖲
به زبان #سی_شارپ
🔹 به کانال یونیتی لرنینگ
بپیوندید/👇
@UnityLearning
به زبان #سی_شارپ
🔹 به کانال یونیتی لرنینگ
بپیوندید/👇
@UnityLearning
⭕️ تعریف آرایه در جاوا و سی شارپ
🔹در این پست صرفاً تفاوت تعریف آرایه بین دو زبان اسکریپت معمول در یونیتی را توضیح می دهیم.
🔸در جاوا تعریف متغیر مانند زیر انجام می پذیرد/👇
var Arrayname:Type[Num];
🔸در سی شارپ تعریف آرایه به شکل زیر است/👇
Type[Num] Arrayname;
به طور مثال تعریف یک آرایه به نام players از نوع GameObject به تعداد 5 عضو /👇
#سی_شارپ
GameObject[5] players;
#جاوا
var players : GameObject[5];
🔘 دسترسی به هر عضو آرایه در هر دو زبان به یک نحو انجام می شود/👇
players[i]
🔸🔶 تعریف آرایه به عنوان پارامتر ورودی در یونیتی باید بدون تعداد آرایه ذکر شود، یعنی در [] چیزی قرار نمی گیرد و در یونیتی و در پارامتر Size که در زیر آرایه ها ظاهر می شود، تعداد اولیه آرایه را می توان مشخص کرد.
مثال/👇
public GameObject[] players;
(در این صورت در یونیتی یک پارامتر به نام Player ایجاد می شود که در ابتدا هیچ مقداری نمی گیرد، چون مقدار Size=صفر است ، در صورتی که کاربر مقدار Size را برابر مقدار مورد نظر خود قرار دهد به همان تعداد پارامتر از نوع GameObject برایش آماده می شود تا آنها را مقدار دهی کند)
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔹در این پست صرفاً تفاوت تعریف آرایه بین دو زبان اسکریپت معمول در یونیتی را توضیح می دهیم.
🔸در جاوا تعریف متغیر مانند زیر انجام می پذیرد/👇
var Arrayname:Type[Num];
🔸در سی شارپ تعریف آرایه به شکل زیر است/👇
Type[Num] Arrayname;
به طور مثال تعریف یک آرایه به نام players از نوع GameObject به تعداد 5 عضو /👇
#سی_شارپ
GameObject[5] players;
#جاوا
var players : GameObject[5];
🔘 دسترسی به هر عضو آرایه در هر دو زبان به یک نحو انجام می شود/👇
players[i]
🔸🔶 تعریف آرایه به عنوان پارامتر ورودی در یونیتی باید بدون تعداد آرایه ذکر شود، یعنی در [] چیزی قرار نمی گیرد و در یونیتی و در پارامتر Size که در زیر آرایه ها ظاهر می شود، تعداد اولیه آرایه را می توان مشخص کرد.
مثال/👇
public GameObject[] players;
(در این صورت در یونیتی یک پارامتر به نام Player ایجاد می شود که در ابتدا هیچ مقداری نمی گیرد، چون مقدار Size=صفر است ، در صورتی که کاربر مقدار Size را برابر مقدار مورد نظر خود قرار دهد به همان تعداد پارامتر از نوع GameObject برایش آماده می شود تا آنها را مقدار دهی کند)
〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
⚫️فرا رسیدن سالروز شهادت امام سجاد علیه السلام فرزند بزرگوار امام حسین را تسلیت عرض میکنیم.
السلام علیک یا علی بن الحسین یا زین العابدین
یا وجیهاً عِندالله، اِشْفَعْ لَنا عِندَاللّه
@UnityLearning
السلام علیک یا علی بن الحسین یا زین العابدین
یا وجیهاً عِندالله، اِشْفَعْ لَنا عِندَاللّه
@UnityLearning
⭕️ کامپوننت های خاص در یونیتی
🔹 یونیتی برای انجام برخی اعمال معمول اسکریپت های آماده ای را طراحی کرده است. این اسکریپت ها در منوی Component برای دسترسی قرار گرفته اند.
🔸 در واقع برای اینکه برنامه نویسی در اسکرپیت های دیگر کاهش یابد می توان از اعمال تعریف شده در این اسکریپت ها استفاده کرد. این اسکریپت ها در نسخه های جدیدتر یونیتی به کامپوننت تبدیل شده اند اما همان ماهیت را دارند، یعنی به اسکریپت ما قابلیت های بیشتری برای برنامه نویسی استفاده می کنند تا برنامه نویسی برای کاربر کمتر و آسان تر شود.
▫️ در نظر داریم برخی از این اسکریپت ها (کامپوننت ها) را توضیح دهیم. یکی از این کامپوننت ها Character Controllers است که شرایطی برای حرکت اجسام مانند حرکت انسان فراهم میکند. این کامپوننت دستورات و توابعی را به برنامه نویس ارائه می دهد که به کمک آن می تواند آبجکت مورد نظرش تا حرکت بدهد و... (در واقع هر آنچه برای حرکت لازم است توسط این #کامپوننت پیاده سازی میشود)
مهمترین تابع این کامپوننت Move است که در صورتی که فراخوانی شود، آبجکت به سمت محل داده شده حرکت میکند. این حرکت در علم فیزیک مشابه حرکت انسان پیاده سازی میشود و این دقیقا ً تفاوت این کامپوننت با سایر دستوراتی است که برای حرکت تاکنون بیان کرده ایم. (مثل دستور MoveTowards از کلاس Vector3)
▪️ لازم به ذکر است این کامپوننت میزان و نحوه حرکت را بر اساس تنظیماتش که در پنجره Inspector نمایش داده میشود، تنظیم میکند.
⭕️ نحوه استفاده از کامپوننت Character Controller
✅ ابتدا باید این کامپوننت را به آبجکت مورد نظر بدهید ، مسیر اضافه کردن /👇
Component Menu -> Physics -> Character Controller
❇️ سپس میتوانیم با کد نویسی به شکل زیر ابتدا به آن دسترسی داشته باشیم و سپس هر دستور، تابع یا پارامتری از آن صدا بزنیم روی آن اعمال میشود(روی آبجکتی که این کامپوننت را به آن داده ایم)
🔸 #جاوا /👇
var controller : CharacterController = GetComponent.<CharacterController>();
🔸 #سی_شارپ /👇
CharacterController controller = GetComponent<CharacterController>();
🔘 حـــال، مثلا برای صدا زدن تابع Move می توانیم به شکل زیر عمل کنیم /👇 ( #جاوا و #سی_شارپ )
controller.Move(Direction);
👈در این دستور آبجکتی که کامپوننت Character Controller را به آن داده ایم به سمت Direction که یک متغیر از نوع Vector3 است حرکت میکند.
🔜 سایر دستورات، پارامترها و توابع کامپوننت Character Controller را به همراه اسکریپت های آماده و بسیار کاربردی، در پست های بعدی توضیح می دهیم. همچنین سایر کامپوننت هایی که برای ما چنین شرایطی در برنامه نویسی فراهم میکنند را نیز در پست های بعدی توضیح خواهیم داد.
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
🔹 یونیتی برای انجام برخی اعمال معمول اسکریپت های آماده ای را طراحی کرده است. این اسکریپت ها در منوی Component برای دسترسی قرار گرفته اند.
🔸 در واقع برای اینکه برنامه نویسی در اسکرپیت های دیگر کاهش یابد می توان از اعمال تعریف شده در این اسکریپت ها استفاده کرد. این اسکریپت ها در نسخه های جدیدتر یونیتی به کامپوننت تبدیل شده اند اما همان ماهیت را دارند، یعنی به اسکریپت ما قابلیت های بیشتری برای برنامه نویسی استفاده می کنند تا برنامه نویسی برای کاربر کمتر و آسان تر شود.
▫️ در نظر داریم برخی از این اسکریپت ها (کامپوننت ها) را توضیح دهیم. یکی از این کامپوننت ها Character Controllers است که شرایطی برای حرکت اجسام مانند حرکت انسان فراهم میکند. این کامپوننت دستورات و توابعی را به برنامه نویس ارائه می دهد که به کمک آن می تواند آبجکت مورد نظرش تا حرکت بدهد و... (در واقع هر آنچه برای حرکت لازم است توسط این #کامپوننت پیاده سازی میشود)
مهمترین تابع این کامپوننت Move است که در صورتی که فراخوانی شود، آبجکت به سمت محل داده شده حرکت میکند. این حرکت در علم فیزیک مشابه حرکت انسان پیاده سازی میشود و این دقیقا ً تفاوت این کامپوننت با سایر دستوراتی است که برای حرکت تاکنون بیان کرده ایم. (مثل دستور MoveTowards از کلاس Vector3)
▪️ لازم به ذکر است این کامپوننت میزان و نحوه حرکت را بر اساس تنظیماتش که در پنجره Inspector نمایش داده میشود، تنظیم میکند.
⭕️ نحوه استفاده از کامپوننت Character Controller
✅ ابتدا باید این کامپوننت را به آبجکت مورد نظر بدهید ، مسیر اضافه کردن /👇
Component Menu -> Physics -> Character Controller
❇️ سپس میتوانیم با کد نویسی به شکل زیر ابتدا به آن دسترسی داشته باشیم و سپس هر دستور، تابع یا پارامتری از آن صدا بزنیم روی آن اعمال میشود(روی آبجکتی که این کامپوننت را به آن داده ایم)
🔸 #جاوا /👇
var controller : CharacterController = GetComponent.<CharacterController>();
🔸 #سی_شارپ /👇
CharacterController controller = GetComponent<CharacterController>();
🔘 حـــال، مثلا برای صدا زدن تابع Move می توانیم به شکل زیر عمل کنیم /👇 ( #جاوا و #سی_شارپ )
controller.Move(Direction);
👈در این دستور آبجکتی که کامپوننت Character Controller را به آن داده ایم به سمت Direction که یک متغیر از نوع Vector3 است حرکت میکند.
🔜 سایر دستورات، پارامترها و توابع کامپوننت Character Controller را به همراه اسکریپت های آماده و بسیار کاربردی، در پست های بعدی توضیح می دهیم. همچنین سایر کامپوننت هایی که برای ما چنین شرایطی در برنامه نویسی فراهم میکنند را نیز در پست های بعدی توضیح خواهیم داد.
〰〰〰〰〰〰〰〰〰
⭕️کانال یونیتی لرنینگ⭕️
💢@UnityLearning💢
CharacterController_Move.js
1.3 KB
📍اسکریپت آماده حرکت با استفاده از #کامپوننت CharacterController
قبل از استفاده از اسکریپت کامپوننت CharacterController را به آبجکت مورد نظر بدهید.
قبل از استفاده از اسکریپت کامپوننت CharacterController را به آبجکت مورد نظر بدهید.
⭕️ #تابع OnControllerColliderHit
✅ در #ادامه مبحث مربوط به #کامپوننت CharacterController
🔘 برای اجسامی که این کامپوننت را به آنها متصل می کنیم، یک تابع اضافه می شود و آن OnControllerColliderHit است که زمانی اجرا می شود که کاراکتر شما به اجسام دارای کالیدر برخورد می کند. کاربرد اصلی این تابع می تواند هول دادن اجسام باشد. برای اینکه اجسام که کاراکتر به آنها برخورد می کند هول داده شوند می توان از این تابع استفاده کرد.
🔹 اسکریپت بسیار کاربردی این کار (هول دادن آبجکت ها) در پست بعدی برای دانلود قرار خواهد گرفت. این اسکریپت تنها آبجکت هایی را حرکت می دهد(یا به اصطلاح مانند حالت هول دادن جابجا می کند) که دارای کامپوننت Rigidbody باشند.
🔸 بنابراین با دادن این اسکریپت به کاراکتر خود، هر گاه این کاراکتر به اجسام دارای Rigidbody برخورد کند آنها را جابجا می کند.
🔻اسکریپت آماده در پست بعدی قرار خواهد گرفت.🔻
به کانال یونیتی لرنینگ
بپیوندید👇
@UnityLearning
✅ در #ادامه مبحث مربوط به #کامپوننت CharacterController
🔘 برای اجسامی که این کامپوننت را به آنها متصل می کنیم، یک تابع اضافه می شود و آن OnControllerColliderHit است که زمانی اجرا می شود که کاراکتر شما به اجسام دارای کالیدر برخورد می کند. کاربرد اصلی این تابع می تواند هول دادن اجسام باشد. برای اینکه اجسام که کاراکتر به آنها برخورد می کند هول داده شوند می توان از این تابع استفاده کرد.
🔹 اسکریپت بسیار کاربردی این کار (هول دادن آبجکت ها) در پست بعدی برای دانلود قرار خواهد گرفت. این اسکریپت تنها آبجکت هایی را حرکت می دهد(یا به اصطلاح مانند حالت هول دادن جابجا می کند) که دارای کامپوننت Rigidbody باشند.
🔸 بنابراین با دادن این اسکریپت به کاراکتر خود، هر گاه این کاراکتر به اجسام دارای Rigidbody برخورد کند آنها را جابجا می کند.
🔻اسکریپت آماده در پست بعدی قرار خواهد گرفت.🔻
به کانال یونیتی لرنینگ
بپیوندید👇
@UnityLearning
Push_Object.js
864 B
⭕️ اسکریپت شبیه سازی حالت هول دادن سایر آبجکت ها توسط آبجکت کاراکتر (دارای کامپوننت CharacterController)
📍دارای پارامتر میزان نیرو وارده به سایر آبجکت ها(pushPower)
📋 #جاوا اسکریپت
@UnityLearning
📍دارای پارامتر میزان نیرو وارده به سایر آبجکت ها(pushPower)
📋 #جاوا اسکریپت
@UnityLearning
⭕️ نکاتی در رابطه با حلقه ها
🔹 همانطور که قبلاً نیز توضیح داده شده است، سه حلقه کلی در دو زبان #سی_شارپ و #جاوا وجود دارد.
While - Do While - For
👈 که البته در سی شارپ نوع دیگری از For نیز وجود دارد که برای پیمایش اعضای آرایه ها استفاده می شود و آن Foreach می باشد که البته در جاوا با همان دستور for قابل پیاده سازی است.
🔄 در حلقه ها دو دستور Break و Continue وجود دارد که در این پست می خواهیم آنها را بررسی کنیم.
🔘 دســــتور Break به طور کلی باعث توقف حلقه می شود. یعنی اگر از این دستور در بدنه حلقه استفاده کنیم، زمانی که کامپایلر به این خط می رسد، اجرای حلقه را متوقف کرده و از آن خارج می شود(دستورات بعد از حلقه اجرا خواهند شد)
⚪️ اما دستور Continue متفاوت است، این دستور اجرای بدنه حلقه را متوقف می کند اما کامپایلر را به ابتدای دستورات حلقه منتقل می کند. (یعنی دستورات بعد از Continue در بدنـــه حلقه اجرا نخواهند شد و مجدداً دستورات از ابتدای حلقه اجرا می شوند. (همانطور که می دانید اولین اقدام در دستورات حلقه For و While بررسی شرایط حلقه است و سپس اگر شرط برای ادامه یافتن درست بود دستورات مجدداً تکرار خواهند شد.)
☑️ از این دستورات در اسکریپت ها استفاده های زیادی می شود و یادگیری آنها و شناخت تفاوت بین این دستورات بسیار کاربردی و ضروریست.
به کانال یونیتی لرنینگ
بپیونـــــدید🔻
@UnityLearning
🔹 همانطور که قبلاً نیز توضیح داده شده است، سه حلقه کلی در دو زبان #سی_شارپ و #جاوا وجود دارد.
While - Do While - For
👈 که البته در سی شارپ نوع دیگری از For نیز وجود دارد که برای پیمایش اعضای آرایه ها استفاده می شود و آن Foreach می باشد که البته در جاوا با همان دستور for قابل پیاده سازی است.
🔄 در حلقه ها دو دستور Break و Continue وجود دارد که در این پست می خواهیم آنها را بررسی کنیم.
🔘 دســــتور Break به طور کلی باعث توقف حلقه می شود. یعنی اگر از این دستور در بدنه حلقه استفاده کنیم، زمانی که کامپایلر به این خط می رسد، اجرای حلقه را متوقف کرده و از آن خارج می شود(دستورات بعد از حلقه اجرا خواهند شد)
⚪️ اما دستور Continue متفاوت است، این دستور اجرای بدنه حلقه را متوقف می کند اما کامپایلر را به ابتدای دستورات حلقه منتقل می کند. (یعنی دستورات بعد از Continue در بدنـــه حلقه اجرا نخواهند شد و مجدداً دستورات از ابتدای حلقه اجرا می شوند. (همانطور که می دانید اولین اقدام در دستورات حلقه For و While بررسی شرایط حلقه است و سپس اگر شرط برای ادامه یافتن درست بود دستورات مجدداً تکرار خواهند شد.)
☑️ از این دستورات در اسکریپت ها استفاده های زیادی می شود و یادگیری آنها و شناخت تفاوت بین این دستورات بسیار کاربردی و ضروریست.
به کانال یونیتی لرنینگ
بپیونـــــدید🔻
@UnityLearning
Day_and_Night_Cycle_With_Scattering
8.1 MB
⭕️ #پکیج ساده برای ساخت محیط شب و روز به همراه آبجکت ماه 🌕و حرکت ابرها☁️
کیفیت عادی - حجم کم - سادگی (سه ویژگی این پکیج است)
کافی است | پریفاب Moon را به محیط بازی خود در محل مورد نظر اضافه کنید.
کیفیت عادی - حجم کم - سادگی (سه ویژگی این پکیج است)
کافی است | پریفاب Moon را به محیط بازی خود در محل مورد نظر اضافه کنید.
CameraController.cs
1.1 KB
اسکریپت آماده برای دنبال شدن یک آبجکت توسط دوربین
این اسکریپت را به دوربینی بدهید که در ابتدا فاصله آن با را با آبجکت تنظیم کرده اید.
مبنای حرکت فاصلۀ بین دو آبجکت خواهد بود.
@UnityLearning
این اسکریپت را به دوربینی بدهید که در ابتدا فاصله آن با را با آبجکت تنظیم کرده اید.
مبنای حرکت فاصلۀ بین دو آبجکت خواهد بود.
@UnityLearning
⭕️ نسخه 5.6.3 یونیتی نهایی شد. یونیتی در این هفته نسخه 5.6.3 را به صورت نهایی ارائه کرد. در این نسخه برخی مشکلات گزارش شده در نسخه های قبلی، رفع شده است و همچنین برخی ویژگی ها نیز به آن افزوده شده است. این تغییرات بیشتر مربوط به بازی های اندروید در یونیتی بوده است.
🔻دانلود نسخه های مختلف🔻
🔻دانلود نسخه های مختلف🔻
RandomMovement.cs
2.6 KB
⭕️ اسکریپت آماده برای حرکت یک آبجکت به صورت رندوم و تصادفی در محیط Scene با دستور AddForce
به همراه دستورات چرخش آبجکت به صورت تصادفی
@UnityLearning
به همراه دستورات چرخش آبجکت به صورت تصادفی
@UnityLearning
Game Jam Menu Template.unitypackage
1.9 MB
⭕️ #پکیج مناسب برای ساخت منوی اولیه برای بازی
به همراه منوی وسط بازی
Start Menu | Pause Menu
@UnityLearning
به همراه منوی وسط بازی
Start Menu | Pause Menu
@UnityLearning