پروگرامنگ ایک گیم وحدت کے ساتھ: ایک ابتدائی رہنما۔

پروگرامنگ ایک گیم وحدت کے ساتھ: ایک ابتدائی رہنما۔
یہ گائیڈ مفت پی ڈی ایف کے طور پر ڈاؤنلوڈ کرنے کے لیے دستیاب ہے۔ اس فائل کو ابھی ڈاؤن لوڈ کریں۔ . بلا جھجھک اس کو کاپی کریں اور اپنے دوستوں اور کنبہ کے ساتھ شئیر کریں۔

انٹرنیٹ معیشت کی ایک حیران کن خصوصیت انڈی ویڈیو گیمز کا اضافہ ہے۔ ایک بار ہزار افراد ، ملٹی ملین ڈالر ٹرپل-اے اسٹوڈیوز کے خصوصی ڈومین کے بعد ، متعدد ٹول سیٹ تیار کیے گئے ہیں جو جدید گیم ڈویلپمنٹ کے وسائل افراد یا چھوٹے ، پروگرامرز اور ڈیزائنرز کے ایڈہاک کلیکشن کے ہاتھ میں لاتے ہیں۔ ہم نے پہلے بہترین انڈی گیمز پر تبادلہ خیال کیا ہے ، لہذا اس بات کو یقینی بنائیں کہ آپ ان کو کچھ الہام کے لیے دیکھیں کہ یونٹی جیسے ٹولز سے کیا حاصل کیا جا سکتا ہے۔





انڈی گیم ڈویلپمنٹ ٹیموں نے چستی اور خطرے کو برداشت کرنے کا مظاہرہ کیا ہے جو کہ بہت سے معاملات میں انہیں اپنے بڑے بجٹ کے ہم منصبوں کے مقابلے میں گیم پلے کی جدت کو تیزی سے آگے بڑھانے کی اجازت دیتا ہے۔ حالیہ برسوں میں کئی حیران کن کامیاب انڈی ٹائٹلوں کا پریمیئر ہوا ہے ، بشمول۔ مائن کرافٹ۔ ، لمبو۔ ، اور سپر میٹ بوائے۔ ، اور یہاں تک کہ اگر آپ کو اس طرح کے گیمز بنانے کی مہارت نہیں ہے ، آپ بلڈ باکس کا استعمال کرتے ہوئے گیم بنا سکتے ہیں۔





انڈی گیم ڈویلپمنٹ کے تیزی سے ترقی پذیر زمین کی تزئین میں ، وحدت۔ ایک ڈی فیکٹو معیار کے طور پر ابھرا ہے: اس کی کم لاگت ، استعمال میں آسانی اور وسیع فیچر سیٹ اسے تیزی سے گیم ڈویلپمنٹ کے لیے مثالی بنا دیتا ہے۔ اتحاد اتنا لچکدار ہے ، کہ آپ بھی کر سکتے ہیں۔ اپنے کسٹم گیم کنٹرولرز بنائیں۔ تھوڑا سا DIY کے ساتھ جانتے ہیں کہ کیسے!





یہاں تک کہ بڑے اسٹوڈیوز جیسے سی سی پی (ڈویلپرز آف حوا آن لائن۔ ) اسے تیزی سے کھیل کے تصورات کے لیے استعمال کریں۔ یونٹی ایک 'باکس میں گیم انجن' فراہم کرتی ہے - ایک فزکس اور رینڈرینگ انجن جس میں ہک کے ساتھ کئی سکرپٹ زبانیں ہیں ، جو ویڈیو گیم کی کسی بھی نوع کے لیے موزوں ہیں۔

اگرچہ یونٹی گیم کے ماحول میں ہیرا پھیری کے لیے ایک بصری ایڈیٹر مہیا کرتی ہے ، یونٹی ایک 'زیرو پروگرامنگ' گیم تخلیق کار نہیں ہے۔ اس سے آپ کو نتائج پیدا کرنے کے لیے پروگرام کرنے کی ضرورت ہوتی ہے ، لیکن آپ کو کسی بھی 'گیم میکر' پروگرام کے مقابلے میں زیادہ لچکدار اور طاقتور ٹول بھی فراہم کرتا ہے۔



اتحاد آپ کے لیے کام نہیں کرے گا ، لیکن یہ داخلے کی راہ میں رکاوٹ کو کافی حد تک کم کرتا ہے۔ C ++ اور OpenGL کے ساتھ شروع سے مکمل طور پر شروع کرتے ہوئے ، اس مقام تک پہنچنے میں کچھ دن لگ سکتے ہیں جہاں اصل میں اسکرین پر کچھ پیش کیا گیا ہے۔ اتحاد کا استعمال کرتے ہوئے ، اس میں دس سیکنڈ لگتے ہیں۔ اتحاد گیم تخلیق کے بنیادی عناصر کو تیز ، بدیہی طریقے سے نوسکھئیے پروگرامرز کے ہاتھوں میں ڈال دیتا ہے۔

آج میں یونٹی میں ایک گیم بنانے کے لیے آپ کو جاننے کی ہر چیز کے لیے آپ کی رہنمائی کروں گا ، جسے دس اہم ابواب میں تقسیم کیا گیا ہے۔





§1 Un وحدت کے ورژن۔

§2 Un وحدت کی تنصیب





§3 Ob آبجیکٹ پر مبنی نمونے کا مختصر تعارف۔

ity4 – اتحاد کی بنیادی باتیں۔

§5 – مثال: ایک گیم کے بنیادی عناصر۔

§6 Un اتحاد میں سکرپٹنگ۔

-7 – مثال: سکرپٹ پونگ۔

-8 دستاویزات کی تلاش / مزید سیکھنا۔

§9 Your اپنا گیم بنانا / ایک اسٹینڈ ایپلی کیشن کو مرتب کرنا۔

§10 بند کرنے والے نوٹس

1. وحدت کے ورژن۔

اتحاد دو بنیادی ذائقوں میں آتا ہے: پرو ورژن اور مفت ورژن۔ وہاں پر ایک اختلافات کی تعداد ، لیکن ، وسیع پیمانے پر ، پرو ورژن متعدد بصری بہتریوں کی حمایت کرتا ہے (جیسے ریئل ٹائم نرم سائے اور پوسٹ پروسیسنگ) ، اور بڑی تعداد میں نسبتا معمولی خصوصیات جو زیادہ پیچیدہ کھیلوں کے لیے انتہائی مددگار ہیں۔

اس نے کہا ، زیادہ تر نسبتا simple آسان کھیلوں کے لیے جو آپ بنانا چاہتے ہیں ، یونٹی کا مفت ورژن بالکل مناسب ہے۔ ہم دلچسپی رکھنے والوں کے لیے ذیل میں اہم اختلافات کو مزید تفصیل سے توڑ دیں گے۔

1.1 قیمتوں کا تعین

اتحاد کا مفت ورژن یقینا مفت ہے۔ تاہم ، کچھ حدود ہیں: یونٹی کا مفت ورژن کسی بھی کمپنی کو لائسنس نہیں دیا جا سکتا جس کی سالانہ آمدنی اس سے زیادہ ہے $ 100،000۔ . اگرچہ اس طرح کی تنظیمیں اس گائیڈ کے دائرہ کار سے باہر ہیں ، اگر آپ کو شبہ ہے کہ آپ ایسی تنظیم بن سکتے ہیں ، تو شاید پرو ورژن کے لیے اسپرنگ کرنا دانشمندی ہے۔

اتحاد کا پرو ورژن ہے۔ $ 75۔ ایک ماہ ، یا $ 1500۔ ایک مستقل لائسنس کے لیے ، اور اس کی کوئی حد نہیں ہے کہ آپ اس کے ساتھ بنائے گئے گیمز کے ساتھ کیا کر سکتے ہیں۔ یہاں 30 دن کی مفت آزمائش بھی دستیاب ہے ، جسے ہم اس گائیڈ کے لیے استعمال کریں گے ، تاکہ آپ کو دستیاب خصوصیات کا مکمل جائزہ دے سکیں۔ ایک سالہ طالب علم کا لائسنس بھی دستیاب ہے۔ مطالعہ کے لیے $ 129۔ .

1.2 خصوصیات

یونٹی کے مفت ورژن میں بہت سی خصوصیات غائب ہیں۔ تاہم ، سب سے اہم اختلافات درج ذیل ہیں: یونٹی کے مفت ورژن میں کئی رینڈرنگ آپشنز نہیں ہیں جو بہتر نظر آنے والے ، تیزی سے چلنے والے گیمز (ایل او ڈی سپورٹ ، سکرین اسپیس پوسٹ پروسیسنگ ، ایڈوانس شیڈرز ، ریئل ٹائم سافٹ سائے ، اور ملتوی رینڈرنگ)۔ اس میں مکمل کی کمی بھی ہے۔ میکانیم حرکت پذیری کا نظام ، اور کچھ AI ٹولز۔

عام طور پر ، پیچیدہ ، بڑے پیمانے پر منصوبوں ، یا منصوبوں کے لیے جہاں گرافیکل پرفارمنس اہم ہوتی ہے ، پرو ورژن قابل قدر ہے۔ میں پرو ورژن استعمال کرتا ہوں ، کیونکہ میں Oculus Rift کے لیے ورچوئل رئیلٹی گیمز تیار کرتا ہوں ، اور ہیڈسیٹ کے ساتھ صحیح طریقے سے بات چیت کرنے کے لیے اسکرین اسپیس پوسٹ پروسیسنگ سپورٹ ضروری ہے۔

2. وحدت کی تنصیب۔

اتحاد نصب کرنے کے لیے سیدھا ہے۔ آپ قابل عمل سے ڈاؤنلوڈ کر سکتے ہیں۔ اتحاد 3d.com/get-unity/download .

ایک بار ڈاؤن لوڈ ہونے کے بعد ، اسے چلائیں ، اور پھر انسٹالر ہدایات پر عمل کریں۔ جب انسٹالیشن مکمل ہوجائے گی ، ایک ونڈو نظر آئے گی جس کا عنوان ہے 'آپ کے یونٹی لائسنس کو فعال کریں'۔ 'یونٹی پرو کی 30 دن کی مفت آزمائش کو چالو کریں' اور پھر 'ٹھیک' کے نشان والے باکس کو چیک کریں۔

مبارک ہو! اب آپ کے پاس یونٹی پرو کا 30 دن کا ٹرائل ہے۔ جب آزمائش ختم ہو جاتی ہے ، اگر آپ پرو ورژن نہیں خریدنا چاہتے ہیں ، تو آپ مفت ورژن میں تبدیل ہو سکتے ہیں اور اپنا موجودہ مواد رکھ سکتے ہیں۔

اینڈروئیڈ فون کمپیوٹر سے منسلک نہیں ہے۔

3. آبجیکٹ پر مبنی نمونہ کا مختصر تعارف۔

اتحاد کے ساتھ شروع کرنے سے پہلے ، یہ ضروری ہے کہ ہم بنیادی باتوں پر تھوڑا سا غور کریں۔ اتحاد دونوں کی حمایت کرتا ہے۔ سی # اور جاوا اسکرپٹ۔ کے لیے گیم پروگرامنگ ؛ ہم اس ٹیوٹوریل کے لیے C# کے ساتھ کام کریں گے۔

سب سے پہلے ، اگر آپ نے پہلے کبھی پروگرام نہیں کیا ہے تو ، اس ٹیوٹوریل کو ایک طرف رکھیں اور مائیکرو سافٹ کے ذریعے کام کرنے میں کچھ دن گزاریں۔ سی # لینگویج پرائمر۔ جب تک کہ آپ آسان کاموں کے لیے زبان استعمال کرنے میں راحت محسوس نہ کریں۔

اگر آپ C# سے کچھ مختلف چاہتے ہیں (لیکن ضروری نہیں کہ ایسی زبان جو آپ یونٹی میں استعمال کر سکتے ہیں) ، تو شروع کرنے والوں کے لیے چھ آسان پروگرامنگ زبانوں کے لیے ہماری گائیڈ پر ایک نظر ڈالیں۔

اگر آپ نے پہلے سی یا جاوا جیسی لازمی یا آبجیکٹ پر مبنی زبان میں پروگرام کیا ہے تو ، پرائمر کو چھوڑیں اور اپنے آپ کو اس سے واقف کریں کہ سی# دوسری زبانوں سے کس طرح مختلف ہے جو آپ ماضی میں استعمال کر چکے ہیں۔ کسی بھی طرح ، ٹیوٹوریل کے ساتھ اس وقت تک آگے نہ بڑھیں جب تک کہ آپ C# کے ساتھ سادہ مسائل کو حل کرنے میں راحت محسوس نہ کریں (مثال کے طور پر ، اگر میں آپ سے ایک پروگرام لکھنے کو کہوں جو پہلے سو پرائم نمبر پرنٹ کرتا ہے ، آپ کو اس پروگرام کو بغیر لکھنے کے قابل ہونا چاہیے۔ گوگل سے مشورہ)

یہاں سمجھنے کے لیے سب سے اہم تصور آبجیکٹ پر مبنی نمونہ ہے۔ کھولیں ). آبجیکٹ پر مبنی زبانوں میں ، پروگراموں کو فنکشنل یونٹس میں تقسیم کیا جاتا ہے جسے کہتے ہیں۔ اشیاء . ہر شے کے اپنے ذاتی متغیرات اور افعال ہوتے ہیں۔ آبجیکٹ سے متعلق افعال کہلاتے ہیں۔ طریقے .

یہاں خیال ماڈیولریٹی ہے: ہر شے کو الگ تھلگ رکھ کر ، اور دوسری چیزوں کو اس کے طریقوں سے اس کے ساتھ بات چیت کرنے پر مجبور کرکے ، آپ ممکنہ غیر ارادی تعاملات کی تعداد کو کم کرسکتے ہیں - اور ، توسیع کے ذریعے ، کیڑے۔ آپ ایسی چیزیں بھی بنا سکتے ہیں جنہیں آپ بغیر کسی ترمیم کے دوبارہ استعمال کر سکتے ہیں۔ اتحاد میں ، آپ ان اشیاء کی تعمیر کریں گے اور ان سے منسلک کریں گے۔ کھیل کے ادارے (جن کے رویے پر وہ حکومت کریں گے)

اشیاء سے فوری طور پر ہیں۔ کلاسیں : ایک کلاس صرف ایک فائل ہے جو آپ کی شے کی تعریف بیان کرتی ہے۔ لہذا ، اگر آپ چاہتے ہیں a موک وہ شے جو آپ کے کھیل میں کسی دشمن کے لیے AI کو سنبھالتی ہے ، آپ ایک 'موک' کلاس لکھیں گے ، اور پھر اس فائل کو ہر دشمن ہستی سے منسلک کریں گے۔ جب آپ اپنا کھیل چلائیں گے تو ہر دشمن 'موک' آبجیکٹ کی ایک کاپی سے لیس ہوگا۔

کسی شے میں نئی ​​سکرپٹ منسلک کرنا اس طرح لگتا ہے:

پہلا، آبجیکٹ کو منتخب کریں اور پر جائیں انسپکٹر . پر کلک کریں اجزاء شامل کریں۔ بٹن

کے پاس جاؤ نئی سکرپٹ ، اپنا مطلوبہ نام درج کریں اور کلک کریں۔ بنائیں اور شامل کریں .

اب آپ کے پاس ایک نیا سکرپٹ ہے جسے آپ اس پر ڈبل کلک کرکے ترمیم کر سکتے ہیں!

ایک کلاس فائل کچھ اس طرح نظر آتی ہے:

using UnityEngine;
public class Mook : MonoBehaviour {
private float health;
void Start () {
health = 100;
}
void Update(){
if (health > 0) {
/* Search for player
if you encounter the player on the road, kill him
if you get shot, remove a random amount of health */
}
}
}

آئیے اس کو توڑ دیں:

  • UnityEngine کا استعمال: یہ لائن C# کو بتاتی ہے کہ ہم یونٹی کی لائبریریاں استعمال کرنا چاہتے ہیں ، جو ہمیں یونٹی گیم انجن سے منسلک کرنے کی اجازت دیتی ہے۔
  • پبلک کلاس موک: مونو سلوک: یہ لائن کلاس اور اس کے نام کا اعلان کرتی ہے - موک .
  • نجی فلوٹ صحت: یہ ایک پرائیویٹ کلاس متغیر کا اعلان کرتا ہے (جسے صرف کلاس کے اندر سے تبدیل کیا جا سکتا ہے)۔ متغیر کو ایک قدر دی جاتی ہے۔ شروع کریں .
  • باطل آغاز (): یہ نامی ایک طریقہ کا اعلان کرتا ہے۔ شروع کریں . اسٹارٹ ایک خاص طریقہ ہے جو صرف ایک بار چلتا ہے ، جب گیم شروع میں شروع ہوتا ہے۔
  • باطل اپ ڈیٹ (): اپ ڈیٹ ایک اور خاص طریقہ ہے ، جو ہر فریم پر چلتا ہے۔ آپ کی زیادہ تر گیم منطق یہاں جائے گی۔
  • // اگر آپ سڑک پر کھلاڑی کا سامنا کرتے ہیں تو اسے مار ڈالو: یہ لائن ایک تبصرہ ہے (ڈبل سلیش سے شروع ہونے والی کسی بھی لائن کو C#نے نظر انداز کر دیا ہے)۔ تبصرے اپنے آپ کو یاد دلانے کے لیے استعمال کیے جاتے ہیں کہ کوڈ کے مخصوص بٹس کیا کرتے ہیں۔ اس معاملے میں ، یہ تبصرہ کوڈ کے زیادہ پیچیدہ بلاک کے لیے کھڑا ہونے کے لیے استعمال کیا جا رہا ہے جو کہ حقیقت میں وہی کرتا ہے جو تبصرہ بیان کرتا ہے۔

اس کے ساتھ شروع کریں اور اپ ڈیٹ ، آپ تقریبا own کسی بھی نام سے اپنے طریقے فوری کر سکتے ہیں۔ تاہم ، آپ کے بنائے ہوئے طریقے اس وقت تک نہیں چلیں گے جب تک کہ انہیں بلایا نہ جائے۔ آئیے ایک فرضی کلاس کے لیے ایک طریقہ کا اعلان کرتے ہیں جسے کہتے ہیں۔ addTwoNumbers جو دو نمبروں کو ایک ساتھ جوڑتا ہے:

public float addTwoNumbers(float a, float b) {
return a+b;
}

یہ ایک عوامی (دیگر اشیاء تک قابل رسائی) طریقہ کار کا اعلان کرتا ہے جو کہ ایک فلوٹ واپس کرتا ہے ، جسے کہتے ہیں۔ addTwoNumbers ، جو ان پٹ کے طور پر دو فلوٹس لیتا ہے (کہا جاتا ہے۔ کو اور ب ). اس کے بعد یہ دو اقدار کا مجموعہ اس کی پیداوار کے طور پر لوٹاتا ہے۔

اس طریقہ کار کو ایک ہی کلاس کے اندر سے کال کریں (کہیں ، اندر سے۔ اپ ڈیٹ ) اس طرح لگتا ہے:

float result = addTwoNumbers(1, 2);

کسی دوسری کلاس سے طریقہ کال کرنا اسی طرح ہے:

addTwoNumbers instance;
float result = instance.addTwoNumbers(1, 2);

ایک بار پھر ، یہ صرف ہماری کلاس کی ایک مثال بناتا ہے ، مناسب طریقہ تک رسائی حاصل کرتا ہے اور اسے ان نمبروں کو کھلاتا ہے جن کو ہم شامل کرنا چاہتے ہیں ، پھر نتیجہ کو اسٹور کرتا ہے نتیجہ . سادہ۔

اگر آپ کی سکرپٹ کسی ایسی چیز سے منسلک ہے جس میں خاص خصوصیات ہیں (جیسے ایک پارٹیکل ایمیٹر) جس تک گیم اوبجیکٹ پیرامیٹرز کے عام سیٹ کے تحت رسائی حاصل نہیں کی جاسکتی ہے ، تو آپ اسے استعمال کرکے ایک مختلف قسم کی گیم ہستی کے طور پر علاج کرنے کا انتخاب کرسکتے ہیں۔ GetComponent طریقہ

اس کے لیے نحو اس طرح لگتا ہے:

GetComponent().Play();

اگر اس میں سے کوئی آپ کے لیے ناواقف ہے تو واپس جائیں اور C# پرائمر سے گزریں۔ جب آپ آگے بڑھیں گے تو یہ آپ کو بہت مایوسی سے بچائے گا۔

4۔ اتحاد کی بنیادی باتیں۔

اس سیکشن میں ، ہم یونٹی انجن کے بنیادی میکانکس کے ذریعے کام کرنے جا رہے ہیں۔ اتحاد میں ورک فلو کچھ اس طرح جاتا ہے:

  1. کھیل میں کردار ادا کرنے کے لیے ایک ادارہ بنائیں (خالی۔ گیم آبجیکٹ۔ خلاصہ منطقی کاموں کے لیے استعمال کیا جا سکتا ہے)۔
  2. کلاس فائل لکھیں یا ڈھونڈیں ، اور اسے ہستی میں بطور اسکرپٹ شامل کریں ( اجزاء شامل کریں۔ میں بٹن انسپکٹر دیکھیں.
  3. رن > پرکھ > ڈیبگ > دہرائیں جب تک یہ کام نہیں کرتا اور گیم کے اگلے عنصر کی طرف بڑھتا ہے۔

اتحاد کئی بنیادی ویو ٹیبز کے ساتھ آتا ہے جو صارف کے ذائقے کے لیے مختلف طریقوں سے پیش کیے جا سکتے ہیں۔ بڑے پانچ یہ ہیں:

  1. گیم: گیم کی ایک چلتی مثال دکھاتا ہے جس کے ساتھ آپ بات چیت کر سکتے ہیں اور جانچ سکتے ہیں۔
  2. منظر: کا ایک مستحکم ، قابل تدوین ورژن فراہم کرتا ہے۔ کھیل کی دنیا .
  3. انسپکٹر: آپ کو کھیل کی دنیا میں انفرادی اداروں کو ان میں منتخب کرکے ان میں ترمیم کرنے کی اجازت دیتا ہے۔ ایڈیٹر ٹیب.
  4. پروجیکٹ: آپ کو پروجیکٹ کی فائلوں کے ذریعے براؤز کرنے اور ماڈلز ، مواد اور دیگر وسائل کو ڈریگ کرنے کی اجازت دیتا ہے۔ ایڈیٹر ٹیب ان کو گیم کی دنیا میں رکھیں۔
  5. درجہ بندی: یہ ٹیب دنیا کی تمام اشیاء کو دکھاتا ہے ، جس کی مدد سے آپ منظر میں دور دراز اشیاء اور والدین کی ہستیوں کو ایک دوسرے سے کلک اور گھسیٹ کر تلاش کرسکتے ہیں۔

ان تمام چیزوں کے مقامات کے لیے نیچے دی گئی تصویر دیکھیں:

4.1 وحدت ہستیاں

4.1.1 میش

میشز راستہ ہے۔ 3D جیومیٹری اتحاد میں نمائندگی کی جاتی ہے۔ آپ یا تو یونٹی کا بلٹ ان استعمال کرسکتے ہیں۔ قدیم اشیاء (کیوبز ، دائرے ، سلنڈر ، وغیرہ) ، یا ماڈلنگ پیکج سے اپنے 3D ماڈل درآمد کریں جیسے بلینڈر یا مایا . اتحاد مختلف قسم کے 3D فارمیٹس کی حمایت کرتا ہے ، بشمول۔ .fbx ، اور .3ds .

میش میں ہیرا پھیری کے لیے بنیادی ٹول انٹرفیس کے اوپری بائیں کونے میں سکیلنگ ، گردش اور ترجمہ کے بٹن ہیں۔ یہ بٹن ایڈیٹر ویو میں ماڈلز میں کنٹرول آئیکنز کو شامل کرتے ہیں ، جو پھر خلا میں ان کو ہیرا پھیری کے لیے استعمال کیا جا سکتا ہے۔ کسی شے کی ساخت یا طبیعیات کی خصوصیات کو تبدیل کرنے کے لیے ، انہیں منتخب کریں اور استعمال کریں۔ انسپکٹر کا تجزیہ کرنے کے لیے دیکھیں مواد اور غیر لچکدار جسم عناصر.

4.1.2 GUI عناصر۔

روایتی GUI سپرائٹس اور متن کا استعمال کرتے ہوئے دکھایا جا سکتا ہے۔ GUI متن اور GUI بناوٹ۔ ایڈیٹر میں گیم آبجیکٹ۔ تاہم ، UI عناصر کو سنبھالنے کا ایک زیادہ مضبوط اور حقیقت پسندانہ طریقہ استعمال کرنا ہے۔ 3D متن اور چار گیم آبجیکٹس (شفاف بناوٹ اور ایک غیر شفاف شفاف شیڈر کے ساتھ) HUD عناصر کو کھیل کی دنیا میں بطور ادارہ رکھنا۔

میں درجہ بندی دیکھیں ، ان گیم پلے عناصر کو بچے بنانے کے لیے مرکزی کیمرے پر گھسیٹا جا سکتا ہے ، اس بات کو یقینی بناتے ہوئے کہ وہ کیمرے کے ساتھ حرکت کریں اور گھومیں۔

GUI عناصر (متن اور بناوٹ) انسپکٹر ٹیب میں متعلقہ فیلڈز کا استعمال کرتے ہوئے ان کے سائز اور پیمانے کو ایڈجسٹ کر سکتے ہیں۔

4.1.3 مواد

مواد بناوٹ اور شیڈر کا مجموعہ ہیں ، اور پروجیکٹ ٹیب سے براہ راست گیم اشیاء پر گھسیٹا جا سکتا ہے۔ شیڈرز کی ایک بڑی تعداد یونٹی پرو کے ساتھ آتی ہے ، اور آپ انسپکٹر ٹیب کا استعمال کرتے ہوئے ان سے منسلک ساخت کو ایڈجسٹ کرسکتے ہیں جس پر وہ لاگو ہوتے ہیں۔

ایک ساخت درآمد کرنے کے لیے ، اسے a میں تبدیل کریں۔ .jpg ، .png ، یا .bmp ، اور اسے گھسیٹیں اثاثے یونٹی پروجیکٹ ڈائرکٹری کے تحت فولڈر (جس میں ظاہر ہوتا ہے میرے کاغذات بطور ڈیفالٹ)۔ کچھ سیکنڈ کے بعد ، ایک لوڈنگ بار ایڈیٹر میں ظاہر ہوگا۔ جب یہ ختم ہوجائے تو ، آپ تصویر کو بطور ساخت کے ڈھونڈ سکیں گے۔ پروجیکٹ ٹیب.

4.1.5 لائٹس

لائٹس ہیں۔ گیم آبجیکٹ۔ جو دنیا پر روشنی ڈالتا ہے۔ اگر آپ کے منظر میں کوئی روشنی نہیں ہے تو ، تمام کثیرالاضلاع ایک ہی چمک کی سطح پر کھینچے جاتے ہیں ، جس سے دنیا کو ایک فلیٹ ، دھلائی ہوئی نظر ملتی ہے۔

لائٹس کو پوزیشن میں رکھا جا سکتا ہے ، گھمایا جا سکتا ہے اور کئی اندرونی خصوصیات ہیں جنہیں آپ اپنی مرضی کے مطابق بنا سکتے ہیں۔ کی شدت سلائیڈر روشنی کی چمک کو کنٹرول کرتا ہے ، اور رینج کنٹرول کرتا ہے کہ یہ کتنی جلدی ختم ہو جاتا ہے۔

میں ہدایات۔ منظر کا منظر آپ کو روشنی کی زیادہ سے زیادہ حد دکھاتا ہے۔ مطلوبہ اثر حاصل کرنے کے لیے دونوں سیٹنگ کے ساتھ کھیلیں۔ آپ روشنی کے رنگ ، پیٹرن کو بھی ایڈجسٹ کرسکتے ہیں ( کوکی سطح پر دکھائی گئی روشنی کی طرف اشارہ کیا جاتا ہے ، اور براہ راست روشنی کی طرف دیکھتے وقت اسکرین پر کس قسم کی بھڑک اٹھتی ہے۔ کوکی کو زیادہ حقیقت پسندانہ روشنی کے نمونوں کو جعلی بنانے ، ڈرامائی طور پر جھوٹے سائے بنانے اور پروجیکٹر کی تقلید کے لیے استعمال کیا جا سکتا ہے۔

روشنی کی تین اہم اقسام ہیں۔ جگہ ، نقطہ ، اور سمتی .

اسپاٹ لائٹس۔ تھری ڈی اسپیس میں ایک مقام اور پروجیکٹ لائٹ متغیر زاویہ کے شنک میں صرف ایک سمت میں ہے۔ یہ فلیش لائٹس ، سرچ لائٹس ، اور عام طور پر ، آپ کو روشنی کا زیادہ درست کنٹرول دیتے ہیں۔ اسپاٹ لائٹس سائے ڈال سکتی ہیں۔

پوائنٹ لائٹس۔ تھری ڈی اسپیس میں ایک مقام ہے ، اور تمام سمتوں میں یکساں طور پر روشنی ڈالیں۔ پوائنٹ لائٹس سائے نہیں ڈالتی ہیں۔

دشاتمک روشنیاں۔ ، آخر میں ، سورج کی روشنی کی تقلید کے لیے استعمال ہوتے ہیں: وہ روشنی کو ایک سمت میں پیش کرتے ہیں گویا لامحدود دور سے۔ دشاتمک روشنیاں منظر میں ہر شے کو متاثر کرتی ہیں ، اور سائے پیدا کر سکتی ہیں۔

4.1.6 پارٹیکل سسٹم

TO ذرہ نظام۔ ایک ھے گیم آبجیکٹ۔ جو بیک وقت سیکڑوں یا ہزاروں ذرات پیدا اور کنٹرول کرتا ہے۔ ذرات چھوٹی ، بہتر 2D اشیاء ہیں جو 3D خلا میں ظاہر ہوتی ہیں۔ پارٹیکل سسٹم آسان رینڈرنگ اور فزکس کا استعمال کرتے ہیں ، لیکن بغیر ہچکچاہٹ کے حقیقی وقت میں ہزاروں اداروں کو ظاہر کر سکتے ہیں ، انہیں دھواں ، آگ ، بارش ، چنگاریوں ، جادو کے اثرات اور بہت کچھ کے لیے مثالی بنا سکتے ہیں۔

بہت سارے پیرامیٹرز ہیں جنہیں آپ ان اثرات کو حاصل کرنے کے لیے موافقت کرسکتے ہیں ، اور آپ ان کے تحت ذرہ نظام کے ذریعے ان تک رسائی حاصل کرسکتے ہیں۔ جزو ایڈیٹر > پارٹیکل سسٹم کا انتخاب > انسپکٹر ٹیب کھولنا . آپ ہر ذرہ کا سائز ، رفتار ، سمت ، گردش ، رنگ اور بناوٹ کو تبدیل کر سکتے ہیں ، اور ان میں سے بیشتر پیرامیٹرز کو وقت کے ساتھ ساتھ تبدیل کرنے کے لیے بھی ترتیب دے سکتے ہیں۔

کے نیچے تصادم وصف ، اگر آپ اسے فعال کرتے ہیں اور تخروپن کی جگہ مقرر کرتے ہیں۔ دنیا آپ کو ایسے ذرات ملیں گے جو دنیا میں موجود اشیاء سے ٹکرا جائیں گے ، جنہیں بارش ، چلتا ہوا پانی اور چنگاریوں سمیت کئی حقیقت پسندانہ ذرات کے اثرات کے لیے استعمال کیا جا سکتا ہے۔

5. مثال: ایک گیم کے بنیادی عناصر۔

اس ٹیوٹوریل کے لیے ، ہم ایک سادہ گیم بنانے جا رہے ہیں۔ پونگ - ایسی چیز جسے ہم نے پہلے DIY میں کئی بار احاطہ کیا ہے:

  • آرڈوینو کلاسیکی پونگ۔
  • Arduino OLED پونگ

اس سیکشن میں ، ہم بنیادی عناصر کا اہتمام کریں گے - اسکرپٹنگ ٹیوٹوریل بعد میں آئے گا۔

پہلے ، آئیے پونگ کے کھیل کو اس کے بنیادی اجزاء میں تقسیم کریں۔ سب سے پہلے ، ہمیں دو پیڈل اور ایک گیند کی ضرورت ہے۔ گیند آف اسکرین اڑتی ہے ، لہذا ہم اسے دوبارہ ترتیب دینے کا طریقہ کار چاہتے ہیں۔ ہم یہ بھی چاہتے ہیں کہ موجودہ سکور کو ڈسپلے کیا جائے ، اور ، آپ کو اتحاد کے تمام بنیادی عناصر دکھانے کی خاطر ، جب آپ گیند کو ماریں گے تو ہم فینسی پارٹیکل اثر چاہیں گے۔ پورے کھیل کو ڈرامائی طور پر روشن کرنے کی ضرورت ہوگی۔

یہ ٹوٹ جاتا ہے a میں۔ گیند کی چیز (ایک دائرہ) ، ایک پیدا کرنے والا ، دو پیڈل پروپس کے ساتھ۔ ذرہ خارج کرنے والے منسلک ، ایک 3D ٹیکسٹ ہستی ، اور ایک اسپاٹ لائٹ . اس ٹیوٹوریل کے لیے ، ہم پہلے سے طے شدہ طبیعیات استعمال کریں گے۔ اچھال ، کے ساتھ اچھال کمبائن تیار ضرب . دس اسکرین شاٹس میں سیٹ اپ کیسا لگتا ہے:

سب سے پہلے ، ایک بنائیں۔ کیوب پروپ پیڈل کے لیے

اسے مناسب طریقے سے اسکیل کریں ، اس کی نقل بنائیں ، اور ایک ڈال کرہ گیند کے پیڈل کے درمیان

پھر ، ایک بنائیں۔ 3D ٹیکسٹ آبجیکٹ۔ اور پیمانے اور پوزیشن اسے صحیح طریقے سے ، تبدیل کرنا۔ حرف کا سائز کم pixelated تصویر حاصل کرنے کی خاصیت

اگلا ، دو بنائیں۔ ذرہ نظام ، اپنی پسند کی خصوصیات چنیں ، اور انہیں پیڈل سے جوڑیں۔

اگلا ، آپ چاہیں گے۔ پوزیشن اور کیمرے کو گھمائیں۔ تاکہ یہ منظر کو صحیح طریقے سے فریم کرے۔ جبکہ کیمرہ منتخب کیا گیا ہے ، آپ نیچے دائیں کونے میں کیمرے کے منظر کا ایک چھوٹا سا پیش نظارہ دیکھ سکتے ہیں۔

ختم کرنے سے پہلے ، ہمیں گیند کو کھیل کے علاقے سے باہر اچھالنے سے روکنے کے لیے بمپر بننے کے لیے دو اضافی کیوب بنانے کی ضرورت ہے۔ ہم ان کو غیر چیک کرکے غیر مرئی بنا سکتے ہیں۔ میش رینڈرر میں انسپکٹر ٹیب .

اگر آپ کھیل کو دباتے ہیں تو ، اب آپ ہمارے کھیل کے بنیادی عناصر کو دیکھ سکتے ہیں۔ وہ ابھی تک کچھ نہیں کریں گے ، لیکن ہم اس تک پہنچ جائیں گے!

اب جب کہ ہمیں یہ سیٹ اپ مل گیا ہے ، ہم اس کے بارے میں بات کرنے جا رہے ہیں کہ گیم بنانے کے لیے ان عناصر کو سکرپٹ کرنے میں کیا شامل ہے۔

6. اتحاد میں سکرپٹنگ۔

ایک بار جب آپ کے پاس کسی شے کے ساتھ اسکرپٹ منسلک ہوجائے تو ، آپ اس پر ڈبل کلک کرکے نظر ثانی کرسکتے ہیں انسپکٹر . یہ کھلتا ہے۔ مونو ڈویلپ۔ ، اتحاد کے لیے ڈیفالٹ ڈیولپمنٹ ماحول۔ جوہر میں ، مونو ڈویلپ ایک ٹیکسٹ ایڈیٹر ہے جس میں خاص طور پر پروگرامنگ کی طرف مرضی کی خصوصیات ہیں۔

مطلوبہ الفاظ اور تبصرے کو نمایاں کیا گیا ہے۔ نیلا اور سبز ، اور عددی اقدار اور ڈور ظاہر ہوتے ہیں۔ نیٹ . اگر آپ نے استعمال کیا ہے۔ کلپس یا دیگر IDE کی ، MonoDevelop بہت ملتی جلتی ہے۔ آپ کر سکتے ہیں۔ تعمیر ایڈیٹر کے اندر سے آپ کے سکرپٹ ، نحو کی غلطیوں کو چیک کرنے کے لیے ، جیسے:

عام طور پر ، اپنی اسکرپٹ کو یونٹی کے ساتھ بات چیت کرنے کے ل you ، آپ کو ان عناصر کا حوالہ دینے کی ضرورت ہوگی جو اسکرپٹ میں موجود شے کے پاس ہیں (آپ ان عناصر کی ایک فہرست دیکھ سکتے ہیں انسپکٹر ٹیب جب متعلقہ چیز منتخب کی جاتی ہے)۔ اس کے بعد آپ ان عناصر میں سے ہر ایک کے لیے طریقوں کو کال کرسکتے ہیں یا اپنی مطلوبہ تبدیلیاں لا سکتے ہیں۔

اگر آپ چاہتے ہیں کہ کسی شے پر اسکرپٹ کسی مختلف شے کی خصوصیات کو متاثر کرے تو آپ خالی بنا سکتے ہیں۔ گیم آبجیکٹ۔ آپ کے سکرپٹ میں متغیر ، اور انسپکٹر منظر میں کسی اور شے کو تفویض کرنا۔

ان عناصر کی فہرست جو کسی شے میں ہوسکتی ہے وہ مندرجہ ذیل ہے (مندرجہ بالا مثال میں ہمارے ایک پیڈل کے انسپکٹر ویو سے لیا گیا):

  1. تبدیل
  2. کیوب (میش فلٹر)
  3. باکس کولائیڈر۔
  4. میش رینڈرر۔

اعتراض کے ان پہلوؤں میں سے ہر ایک اسکرپٹ کے اندر سے متاثر ہوسکتا ہے۔ اگلا ، ہم دیکھیں گے کہ کس طرح.

6.1 تبدیل کریں

یونٹی میں گیم آبجیکٹ کے ٹرانسفارم افعال اس شے کے جسمانی پیرامیٹرز کو کنٹرول کرتے ہیں۔ پیمانے ، اس کی پوزیشن ، اور اس کی واقفیت . آپ اسکرپٹ کے اندر سے ان تک رسائی حاصل کرسکتے ہیں:

transform.position = newPositionVector3;
transform.rotation = newRotationQuaternion;
transform.localScale = newScaleVector3;

مندرجہ بالا مثالوں میں ، نامزد متغیرات ناموں میں بیان کردہ اقسام کے ہیں۔ یہاں چند اہم تفصیلات ہیں: پوزیشن اور پیمانہ ، جیسا کہ آپ توقع کریں گے ، بطور اسٹور کیا جاتا ہے۔ ویکٹر 3s . آپ تک رسائی حاصل کر سکتے ہیں۔ ایکس ، اور ، اور کے ساتھ ہر ایک کے اجزاء (مثال کے طور پر ، transform.position.y آپ کو صفر طیارے کے اوپر کسی شے کا فاصلہ دیتا ہے)۔

تاہم ، بچنے کے لئے جمبل لاک ، گردشوں کو بطور سنبھالا جاتا ہے۔ کواٹرنیشنز۔ (چار جزو ویکٹر) چونکہ ہاتھوں سے ہیرا پھیری کرنے والے کواٹرنیشن غیر سنجیدہ ہیں ، لہذا آپ یولیرین زاویوں کا استعمال کرتے ہوئے گردشوں میں ہیرا پھیری کرسکتے ہیں Quaternion.Euler اس طرح کا طریقہ:

transform.rotation = Quaternion.Euler(pitch, yaw, roll);

اگر آپ اشیاء کو آسانی سے ایک جگہ سے دوسری جگہ منتقل کرنا چاہتے ہیں تو آپ کو تھپڑ quaternions اور vector3s کے لیے مددگار طریقہ Slerp تین دلائل لیتا ہے - موجودہ حالت ، حتمی حالت ، اور تبدیلی کی رفتار ، اور دی گئی رفتار سے ان کے درمیان آسانی سے انٹرپولیٹس۔ نحو اس طرح لگتا ہے:

transform.position = Vector3.Slerp(startPositionVector3, newDestinationVector3, 1);

6.2 رینڈرر

یونٹی میں رینڈرر کے افعال آپ کو پرپس کی سطحوں کو اسکرین پر پیش کرنے کے طریقے کو کنٹرول کرنے کی اجازت دیتے ہیں۔ آپ ساخت کو دوبارہ تفویض کرسکتے ہیں ، رنگ تبدیل کرسکتے ہیں ، اور شے کی شیڈ اور نمائش کو تبدیل کرسکتے ہیں۔ نحو اس طرح لگتا ہے:

renderer.enabled = false;
renderer.material.color = new Color(0, 255, 0);
renderer.material.mainTexture = myTexture;
renderer.material.shader = newShader;

ان میں سے بیشتر کے کافی واضح افعال ہیں۔ پہلی مثال سوال میں موجود چیز کو پوشیدہ بنا دیتی ہے: متعدد حالات میں ایک مفید چال۔ دوسری مثال ایک نئی تفویض کرتی ہے۔ آرجیبی رنگ۔ (یعنی ، سبز) زیربحث شے کو۔ تیسرا مین ڈفیوز ساخت کو ایک نئے بناوٹ متغیر کو تفویض کرتا ہے۔ آخری مثال آبجیکٹ کے مواد کے شیڈر کو نئے متعین شیڈر متغیر میں بدل دیتی ہے۔

6.3 طبیعیات

اتحاد ایک مربوط طبیعیات کے انجن کے ساتھ آتا ہے - ایسی چیز جسے طبیعیات سینڈ باکس گیمز سب استعمال کرتے ہیں۔ یہ آپ کو اشیاء کی جسمانی خصوصیات تفویض کرنے اور ان کے تخروپن کی تفصیلات آپ کے لیے سنبھالنے دیتا ہے۔ عام طور پر ، درسی کتاب اور ٹرانسفارم سسٹم کا استعمال کرتے ہوئے اپنی طبیعیات کو نافذ کرنے کی کوشش کرنے کے بجائے ، یونٹی کے طبیعیات کے انجن کو زیادہ سے زیادہ حد تک استعمال کرنا آسان اور زیادہ مضبوط ہے۔

طبیعیات کے تمام سامان کی ضرورت ہوتی ہے۔ ٹکرانے والے . تاہم ، اصل تخروپن خود ایک کے ذریعہ سنبھالا جاتا ہے۔ غیر لچکدار جسم ، جس میں شامل کیا جا سکتا ہے۔ انسپکٹر دیکھیں. Rigidbodies ہو سکتے ہیں۔ حرکیاتی یا غیر کیمیائی .

Kinematic physics props آپس میں ٹکراتے ہیں (اور اثر) nonkinematic physics props کے ارد گرد ، لیکن خود ٹکر سے متاثر نہیں ہوتے۔ جامد کینیومیٹک پروپس ضرب المثل غیر منقولہ اشیاء ہیں ، اور حرکت پذیر کینیومیٹک اشیاء ضرب المثل نہ رکنے والی قوت ہیں (ریکارڈ کے لیے ، جب وہ آپس میں ٹکراتے ہیں ، وہ صرف ایک دوسرے سے گزرتے ہیں)۔

اس کے علاوہ ، آپ شے کے کونیی ڈریگ کو ایڈجسٹ کر سکتے ہیں (اسے گھمانے میں کتنی توانائی درکار ہوتی ہے) ، اس کے بڑے پیمانے کو تبدیل کر سکتے ہیں ، حکم دے سکتے ہیں کہ یہ کشش ثقل سے متاثر ہے یا نہیں اور اس پر قوتیں لگائیں۔

مثالیں:

rigidbody.angularDrag = 0.1f;
rigidbody.mass = 100;
rigidbody.isKinematic = false;
rigidbody.useGravity = true;
rigidbody.AddForce(transform.forward * 100);

یہ سب کافی خود وضاحت کرنے والے ہیں۔ یہاں نوٹ کرنے کی واحد چیز کا استعمال ہے۔ آگے بڑھائیں . ویکٹر 3 کے تینوں اجزاء ہیں ( .آگے ، .up ، اور . ٹھیک ہے ) ان سے وابستہ ، جس تک رسائی حاصل کی جا سکتی ہے اور ان کے ساتھ گھومتا ہے ( آگے ایڈیٹر میں نیلے تیر کی سمت ہے)۔ کی آگے بڑھائیں مطلوبہ الفاظ صرف موجودہ شے کے لیے آگے کی ویکٹر ہے جس کی شدت 1 ہے۔ اس کو فلوٹ سے ضرب دی جا سکتی ہے تاکہ چیز پر زیادہ قوت پیدا ہو۔ آپ حوالہ بھی دے سکتے ہیں۔ transform.up اور ٹرانسفارم ڈرائٹ ، اور ان کی نفی کریں تاکہ ان کا الٹ پلٹ ہو۔

6.4 تصادم۔

اکثر ، جب کوئی گیم بناتے ہو تو ، آپ چاہتے ہیں کہ تصادم ہو جس کے نتیجے میں آپ کے کوڈ میں کچھ تبدیلی آئے گی ، صرف طبیعیات کے تخروپن سے ہٹ کر۔ اس کے لیے آپ کو a کی ضرورت ہوگی۔ تصادم کا پتہ لگانے کا طریقہ .

اتحاد میں تصادم کا پتہ لگانے کے لیے ایک خاص مقدار کی تیاری کی ضرورت ہے۔ سب سے پہلے ، تصادم میں کم از کم ایک چیز کی ضرورت ہوتی ہے a غیر کینیومیٹک سخت جسم اس سے منسلک. دونوں اشیاء میں درست کولائیڈر ہونا ضروری ہے ، جو کہ غیر محرک ہیں۔ دونوں اشیاء کی کل رفتار اتنی کم ہونی چاہیے کہ وہ دراصل آپس میں ٹکرا جائیں ، بجائے اس کے کہ ایک دوسرے کو چھوڑیں۔

اگر آپ نے ان تمام چیزوں کا خیال رکھا ہے تو آپ تصادم کا پتہ لگانے کا ایک خاص طریقہ اسکرپٹ میں رکھ کر تصادم کی جانچ کر سکتے ہیں۔ طریقہ اس طرح نظر آئے گا:

void OnCollisionEnter(Collision other) {
//do things here
}

یہ طریقہ پہلے فریم کے دوران خود بخود چلے گا کہ کوئی اور شے آپ کی چیز کو چھوئے۔ تصادم کی ہستی۔ دوسرے اس چیز کا حوالہ ہے جسے آپ نے مارا۔ آپ مثال کے طور پر اس کا حوالہ دے سکتے ہیں۔ گیم آبجیکٹ ، غیر لچکدار جسم ، اور تبدیل خصوصیات کو مختلف طریقوں سے جوڑنے کے لیے۔ جبکہ OnCollisionEnter۔ شاید یہ سب سے عام فنکشن ہے جسے آپ استعمال کریں گے ، آپ بھی استعمال کر سکتے ہیں۔ OnCollisionExit اور OnCollisionStay (دوسری صورت میں یکساں نحو اور استعمال کے ساتھ) ، جو پہلے فریم کے دوران چالو ہوتا ہے کہ آپ کسی شے سے ٹکرانا بند کر دیتے ہیں اور ہر فریم کے دوران جو آپ کسی چیز سے ٹکرا رہے ہیں ، بالترتیب۔

بعض اوقات ، اس کو کرنا بھی مفید ثابت ہوسکتا ہے جسے کہا جاتا ہے۔ رے کاسٹنگ . رے کاسٹنگ میں ، ایک لامحدود پتلی لائن (a کرن ) دنیا کے ذریعے کسی اصل سے ، کسی ویکٹر کے ساتھ ، اور ، جب یہ کسی چیز سے ٹکراتی ہے تو ، پہلے تصادم کی پوزیشن اور دیگر تفصیلات واپس کردی جاتی ہیں۔ رے کاسٹ کا کوڈ اس طرح لگتا ہے:

RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit)) {
float distanceToGround = hit.distance;
}

یہ -Vector3.up (سیدھے نیچے) کے ساتھ موجودہ آبجیکٹ کی پوزیشن سے ایک کرن ڈالتا ہے ، اور متغیر کو جوڑتا ہے مارا پہلی چیز جس سے وہ ٹکرا جائے۔ ایک بار جب آپ کی کرن کسی چیز سے ٹکراتی ہے ، آپ رسائی حاصل کرسکتے ہیں۔ hit.distance اس بات کا تعین کرنے کے لئے کہ یہ کتنا دور ہے ، یا hit.GameObject جس چیز کو آپ نے مارا اس میں ہیرا پھیری کریں۔

اس طرح کے رے کاسٹ کو شوٹروں کے لیے استعمال کیا جا سکتا ہے کہ بندوق کس چیز کی طرف اشارہ کرتی ہے ، یا جب کیمرہ ان کی طرف دیکھتا ہے ، یا موومنٹ میکینک کے مخصوص انداز کے لیے اشیاء کو منتخب کرنے کے لیے استعمال کیا جا سکتا ہے۔

6.5 وقت کی اصلاح

جب آپ اس طرح اشیاء کو ہیرا پھیری کر رہے ہیں تو ذہن میں رکھنے کے لیے ایک اہم عنصر کا تعلق ہے۔ فریم کی شرح . اس سے کوئی فرق نہیں پڑتا ہے کہ آپ کتنی احتیاط سے اصلاح کرتے ہیں ، فریمریٹس ہمیشہ مختلف ہوتے ہیں ، اور آپ نہیں چاہتے کہ آپ کے کھیل کی رفتار اس کے مطابق مختلف ہو۔ اگر کوئی اور آپ کے گیم کو اس سے تیز کمپیوٹر پر چلاتا ہے جس سے آپ نے اسے تیار کیا ہے تو آپ نہیں چاہتے کہ گیم ڈبل اسپیڈ پر چلے۔

جس طریقے سے آپ اس کو درست کرتے ہیں وہ ان اقدار کو ضرب دینا ہے جو آپ آخری فریم کو پیش کرنے میں لگے وقت سے استعمال کر رہے ہیں۔ یہ استعمال کرکے کیا جاتا ہے۔ ٹائم ڈیلٹا ٹائم۔ . یہ کسی بھی متغیر کی رفتار کو مؤثر طریقے سے بدل دیتا ہے جس سے آپ ہر فریم کو بڑھا رہے ہیں۔ فی فریم تبدیل کریں کو فی سیکنڈ میں تبدیلی ، اور آپ کو شاید یہ تبدیلی کسی بھی قدر میں کرنی چاہیے جو آپ ہر فریم کو بڑھا رہے ہیں یا کم کر رہے ہیں۔

6.6 آڈیو ذرائع اور سننے والے۔

اب جب کہ ہم نے اشیاء بنانے ، پیش کرنے اور کنٹرول کرنے کے طریقے کا احاطہ کیا ہے ، آئیے دوسرے احساس کے بارے میں بات کرتے ہیں جو کمپیوٹر گیمز پیش کر سکتے ہیں: یعنی ، آواز . اتحاد دو قسم کی آوازوں کی حمایت کرتا ہے: 2 ڈی۔ اور 3D۔ آوازیں 3D آوازیں فاصلے کی بنیاد پر ان کے حجم کو مختلف کرتی ہیں ، اور کیمرے کی نسبت حرکت کرتے ہوئے بگاڑ دیتی ہیں۔ 2D آوازیں نہیں آتی ہیں۔

2 ڈی آوازیں صوتی اوورز اور بیک گراؤنڈ میوزک کے لیے موزوں ہیں ، اور 3D آوازیں دنیا میں ہونے والے واقعات سے پیدا ہونے والی آوازوں پر لاگو ہوتی ہیں۔ آواز 3D ہے یا نہیں اس کو تبدیل کرنے کے لیے ، اسے میں منتخب کریں۔ پروجیکٹ دیکھیں ، سوئچ کریں انسپکٹر ڈراپ ڈاؤن مینو سے مناسب آپشن دیکھیں اور منتخب کریں ، پھر دبائیں۔ دوبارہ امپورٹ کریں بٹن

اصل میں آواز چلانے کے لیے ، آپ کو ایک منسلک کرنے کی ضرورت ہوگی۔ آڈیو سورس ایک سہارے پر (جس سہارے سے آپ آواز نکالنا چاہتے ہیں ، 3D آواز کی صورت میں)۔ پھر آپ کو کھولنے کی ضرورت ہوگی آڈیو کلپ فیلڈ اور اپنی صوتی فائل منتخب کریں۔

کیا لوگ دیکھ سکتے ہیں کہ ان کا فیس بک کس نے دیکھا۔

آپ استعمال کر سکتے ہیں myAudioSource.Pause () اور myAudioSource.Play () ان صوتی فائلوں کو کنٹرول کرنے کے لیے۔ آپ فال آف سلوک ، حجم ، اور ڈوپلر کو آواز کے نیچے منتقل کرنے کو ایڈجسٹ کرسکتے ہیں۔ انسپکٹر آڈیو سورس کے لیے ٹیب۔

6.7 ان پٹ۔

ایک گیم جو صارف سے کوئی ان پٹ نہیں لیتا وہ زیادہ گیم نہیں ہوتا۔ بہت سے مختلف قسم کے ان پٹ ہیں جن میں آپ پڑھ سکتے ہیں ، اور ان میں سے تقریبا almost تمام کے ذریعے قابل رسائی ہیں۔ ان پٹ اور کیی کوڈ اشیاء کچھ نمونہ ان پٹ اسٹیٹمنٹ (جس کی ہر فریم میں اقدار ہیں) ذیل میں ہیں۔

Vector3 mousePos = Input.mousePosition;
bool isLeftClicking = Input.GetMouseButton(0);
bool isPressingSpace = Input.GetKey(KeyCode.Space);

ان لائنوں کے افعال زیادہ تر خود وضاحتی ہیں۔ ان تین قسم کے ان پٹ ریفرنس کا استعمال کرتے ہوئے ، آپ جدید ترین 3D کمپیوٹر گیمز کی کنٹرول سکیموں کو دوبارہ تشکیل دے سکتے ہیں۔

6.8 اسکرپٹ کو ڈیبگ کرنا۔

ہم کہتے ہیں کہ اسکرپٹ کام نہیں کرتا۔ جیسا کہ ایک اچھا ڈاکٹر کہتا ہے ، بینگ اپ اور ہینگ اپ آپ کے ساتھ ہو سکتے ہیں۔ اگر آپ کے C#کے ساتھ سیدھی نحو کی غلطیاں ہیں تو ، گیم عام طور پر چلانے سے انکار کردے گا جب آپ پلے کو دبائیں گے ، اور کچھ مناسب مفید غلطی کے پیغامات فراہم کیے جائیں گے اگر آپ تعمیر ایڈیٹر کے اندر سے سکرپٹ. ذیل میں دیکھیں:

یہ کیڑے عام طور پر ٹھیک کرنا زیادہ مشکل نہیں ہوتے ہیں۔ جو چیز زیادہ پریشانی کا باعث بن سکتی ہے وہ ہے ٹھیک ٹھیک سیمنٹک غلطیاں ، جس میں آپ نے کامیابی کے ساتھ درست C# سے بھری فائل لکھی ہے - صرف وہ نہیں جو آپ کے خیال میں ایسا کرے۔ اگر آپ کے پاس ان میں سے کوئی غلطی ہے ، اور آپ کو اس کا سراغ لگانے میں دشواری ہو رہی ہے تو ، کچھ چیزیں ہیں جنہیں آپ صورت حال کو بہتر بنانے کی کوشش کر سکتے ہیں۔

سب سے پہلے کھیل کے عمل کو روکنا ہے ، اور کنسول کو چیک کرنا ہے۔ آپ پر کلک کرکے گیم کو روک سکتے ہیں۔ توقف ایڈیٹر کے اوپری درمیانی حصے میں آئیکن ، اور پھر منتخب کریں۔ تسلی کے نیچے سے کھڑکی مینو (یا دبانا۔ Ctrl > شفٹ > ج۔ ). یہاں تک کہ اگر کوئی غلطیاں نہیں ہیں ، انتباہات اب بھی کچھ اشارے دینے میں مدد کرسکتے ہیں کہ کیا غلط ہو رہا ہے۔

اگر یہ کام نہیں کرتا ہے تو ، آپ اندرونی متغیرات کی حالت کو پرنٹ کرکے اپنے اسکرپٹ کی حالت کے بارے میں کچھ اندازہ لگانے کی کوشش کر سکتے ہیں تاکہ یہ تصدیق کی جا سکے کہ پروگرام وہی کر رہا ہے جو آپ سمجھتے ہیں کہ یہ کر رہا ہے۔ آپ استعمال کر سکتے ہیں ڈیبگ لاگ (سٹرنگ) سٹرنگ کے مندرجات کو کنسول پر پرنٹ کرنے کے لیے جب پروگرام پر عملدرآمد اس لائن سے ٹکرا جائے۔ عام طور پر ، اگر آپ ان چیزوں کے ذریعے جو آپ کو لگتا ہے کہ جو ہونا چاہیے تھا اس سے پیچھے ہٹ کر کام کریں ، آخر کار آپ ایک ایسے مقام پر پہنچ جائیں گے جہاں آپ کے ڈیبگ پرنٹ وہ کام نہیں کریں گے جس کی آپ توقع کرتے ہیں۔ وہیں آپ کی غلطی ہے۔

7. مثال: سکرپٹ پونگ۔

پونگ بنانے کے لیے ، آئیے کھیل کو اس کے بنیادی عناصر میں تقسیم کریں: ہمیں ایک گیند کی ضرورت ہے جو بڑھتی ہوئی رفتار سے پیڈلوں کے درمیان آگے پیچھے رکے ، ہمیں ایک سکور بورڈ کی ضرورت ہے جو جانتا ہے کہ گیندیں پیڈل کب گزر چکی ہیں ، اور ہمیں ایک طریقہ کار کی ضرورت ہے۔ جب ایسا ہوتا ہے تو گیند کو دوبارہ شروع کرنا۔ ایک اچھا پہلا قدم یہ ہوگا کہ گیند میں نان کینی میٹک رگ باڈی ، پیڈل میں دو کائینمیٹک رگڈ باڈیز شامل کریں ، ان سب کے لیے کشش ثقل کو غیر فعال کریں ، اور معیاری اثاثوں میں سے ایک مناسب طبیعی مواد تفویض کریں ( اچھال کے ساتھ اچھال کمبائن تیار ضرب ).

ذیل میں ، آپ گیند کا اسکرپٹ وضاحتی تبصروں کے ساتھ دیکھ سکتے ہیں۔ گیند کو کچھ بنیادی اہداف کو پورا کرنے کی ضرورت ہے: اسے ایک پیچیدہ انداز میں اچھالنا چاہیے ، ہمیشہ دونوں محوروں پر حرکت کو برقرار رکھنا چاہیے ، اور اسے افقی سمت میں ایک مشکل لیکن ناممکن رفتار سے تیز ہونا چاہیے۔

BallHandler.cs

اگلا ، ہمیں اپنے پیڈل کو اسکرپٹ کرنے کی ضرورت ہے ، جسے آپ نیچے دیکھ سکتے ہیں۔ پیڈل کو کلیدی پریس کے جواب میں اوپر اور نیچے جانے کی ضرورت ہے (لیکن کچھ حدود سے باہر نہیں)۔ اسے ذرہ نظام کو متحرک کرنے کی بھی ضرورت ہوتی ہے جب یہ کسی چیز سے ٹکرا جاتا ہے۔

PaddleHandler.cs

اگلا ، ہمیں دشمن AI کی ضرورت ہے: ایسی چیز جو دشمن کے پیڈل کو گیند کی طرف ایک مقررہ شرح سے ٹریک کرے گی۔ اس کے لیے ، ہم زیادہ سے زیادہ سادگی کے لیے Vector3.Slerp استعمال کریں گے۔ ہم بھی وہی ذرہ برتاؤ پسند کریں گے جو ہم اپنے پیڈل پر دیکھتے ہیں۔

EnemyAI.cs

آخر میں ، ہمیں اسکور بورڈ کو اپ ڈیٹ کرنے اور گیند کو دوبارہ ترتیب دینے کے لیے ایک اسکرپٹ کی ضرورت ہے جب یہ حد سے باہر ہو جائے۔

ScoreboardUpdater.cs

ان سکرپٹس کے ساتھ منسلک اور حوالوں سے بھرا ہوا ، جب ہم پونگ کے اپنے کھیل کو چلاتے ہیں ، ہم گیم پلے کا تجربہ کرتے ہیں!

آپ کر سکتے ہیں۔ میرا پونگ ڈیمو ڈاؤن لوڈ کریں۔ ، اگر آپ ہر وہ چیز دیکھنا چاہتے ہیں جو میں نے بیان کی ہے۔ یہ ونڈوز ، میک اور لینکس سسٹم پر چلتا ہے۔

8. دستاویزات کی تلاش / مزید سیکھنا۔

وحدت ایک پیچیدہ انجن ہے جس میں بہت سی خصوصیات ہیں جو کہ اس طرز کے گائیڈ میں ممکنہ طور پر احاطہ کی جاسکتی ہیں ، اور اس سے پہلے کہ آپ انٹرنیٹ پر دستیاب (مفت اور تجارتی) یونٹی ایکسٹینشنز کا وسیع حصہ شامل کریں۔ یہ گائیڈ آپ کو گیم کی نشوونما کے لیے ایک مضبوط مقام فراہم کرے گا ، لیکن کسی بھی کوشش میں سیلف ایجوکیشن ایک اہم مہارت ہے ، اور یہاں دوگنا ہے۔

یہاں ایک اہم وسیلہ ہے۔ اتحاد سکرپٹ حوالہ۔ . سکرپٹ ریفرنس ایک قابل تلاش ڈیٹا بیس ہے ، جو C# اور جاوا اسکرپٹ دونوں کے لیے دستیاب ہے ، جس میں ہر یونٹی کمانڈ اور فیچر کی فہرست ہے ، جس میں ان کے افعال کی تفصیل اور نحو کی مختصر مثالیں ہیں۔

اگر آپ کو ایڈیٹر اور یونٹی کے انٹرفیس کے ساتھ پریشانی ہو رہی ہے ، یا صرف ویڈیو ٹیوٹوریلز کی طرح ترجیح کے معاملے میں ، اعلی معیار کی ایک لمبی فہرست ہے اتحاد ویڈیو سبق دستیاب. زیادہ وسیع (لیکن کم وسیع) وحدت کے لیے ٹیکسٹ سبق CatLikeCoding سے بھی دستیاب ہیں۔

آخر میں ، اگر آپ کے پاس دستاویزات یا سبق کے دائرہ کار سے باہر کے سوالات ہیں تو ، آپ مخصوص سوالات پر پوچھ سکتے ہیں۔ جوابات۔ Unity3d.com۔ . یاد رکھیں کہ جوابات رضاکاروں کے ذریعہ فراہم کیے جاتے ہیں ، لہذا ان کے وقت کا احترام کریں اور پہلے ڈیٹا بیس کو تلاش کریں تاکہ یہ یقینی بنایا جا سکے کہ آپ کے سوال کا پہلے ہی جواب نہیں دیا گیا ہے۔

9. اپنا گیم بنانا / ایک اسٹینڈ ایپلیکیشن کو مرتب کرنا۔

جب آپ نے کوئی ایسی چیز بنائی ہے جس پر آپ کو فخر ہے (یا آپ نے مشق کے لیے ہماری تھوڑی سی ڈونگ پونگ مثال کی کلوننگ مکمل کر لی ہے) ، اب وقت آگیا ہے کہ آپ اپنے گیم کو ایڈیٹر سے منتقل کریں اور اسے کسی ایسی چیز میں بدل دیں جسے آپ انٹرنیٹ پر پوسٹ کر سکیں آپ کے دوست اور کنبہ کھیلنے کے لئے۔ ایسا کرنے کے لیے ، آپ کو ایک اسٹینڈ ایپلیکیشن بنانی ہوگی۔ اچھی خبر یہ ہے کہ اتحاد میں ، یہ بہت ، بہت آسان ہے۔ تاہم ، کچھ ممکنہ ہچکی ہیں جن سے آپ محتاط رہنا چاہیں گے۔

شروع کرنے والوں کے لیے ، جان لیں کہ آپ صرف غلطی سے پاک پروجیکٹ بنا سکتے ہیں۔ اس مقصد کے لیے ، اس بات کو یقینی بنائیں کہ جب آپ تعمیر کرتے ہیں تو آپ کے پاس کنسول کھلا ہے: کچھ خرابی کی شرائط ہیں جنہیں گیم ایڈیٹر میں نظر انداز کر دے گا ، لیکن پھر بھی کوشش کی گئی تعمیر کو روک دے گا۔ یہ صرف کنسول میں غلطی کے پیغامات کو پھینک دیتا ہے ، اسکرین پر کوئی نظر آنے والے نتائج کے بغیر ، جو آپ کو چیک کرنا بھول جاتے ہیں تو مایوس کن ہوسکتا ہے۔ ایک بار جب آپ اپنے گیم کو مرتب کرنے میں غلطی سے پاک ہوجاتے ہیں ، اگرچہ ، آپ منتخب کرسکتے ہیں۔ تعمیراتی ترتیبات۔ کے نیچے فائل۔ مینو ، یا دبائیں۔ Ctrl > شفٹ

> ب۔ . یہ ایک سادہ ڈائیلاگ لائے گا جو آپ کو کئی پلیٹ فارمز کے لیے اپنا گیم بنانے کی اجازت دیتا ہے۔

وہاں سے عمل خود وضاحتی ہے: اپنے اختیارات منتخب کریں ، اور دبائیں۔ تعمیر ؛ گیم آپ کو ڈائرکٹری انسٹال کرنے کا اشارہ کرے گا ، اور وہاں قابل عمل اور ڈیٹا ڈائریکٹری دونوں رکھے گا۔ ان دونوں فائلوں کو ایک ساتھ زپ اور تقسیم کیا جاسکتا ہے (صرف اس بات کو یقینی بنائیں کہ آپ یونٹی ڈیمو میں بنائے گئے گیم کے لیے چارج نہیں کر رہے ہیں ، کیونکہ یہ سروس کی شرائط کی خلاف ورزی کرتا ہے)۔

10. نوٹس بند کرنا۔

کسی بھی گیم ڈویلپمنٹ ٹول کی طرح ، اتحاد کے ساتھ کامیابی کی کلید تکراری ترقی ہے۔ آپ کو انتظامی انکریمنٹ میں تعمیر کرنا ہے - ہر طرح سے مہتواکانکشی بنیں ، لیکن چھوٹے حصوں میں مہتواکانکشی رہیں ، اور ان حصوں کا اہتمام کریں کہ یہاں تک کہ اگر آپ اپنے حتمی عزائم سے کم ہوجائیں تو ، آپ کم از کم ایک مربوط کے ساتھ ختم ہوجائیں گے۔ مصنوعات

پہلے انتہائی اہم عناصر حاصل کریں: اپنے ذہن میں ایک آئیڈیا رکھیں۔ کم از کم قابل عمل مصنوعات ، سب سے آسان ، سب سے ننگی ہڈیوں کی چیز جو آپ ممکنہ طور پر بنا سکتے ہیں اور پھر بھی محسوس کرتے ہیں جیسے آپ نے کوئی قابل قدر چیز حاصل کی ہو۔ بڑے عزائم کی طرف بڑھنے سے پہلے اس کم از کم قابل عمل منصوبے کو حاصل کریں۔

یہ ٹیوٹوریل آپ کو ایک مضبوط آغاز کی جگہ فراہم کرتا ہے ، لیکن اتحاد سیکھنے کا بہترین طریقہ ایک گیم بنانا ہے۔ ایک گیم بنانا شروع کریں ، جیسے جیسے وہ آتے ہیں اپنے علم میں خلا کو پُر کریں ، اور آہستہ آہستہ علم کا بہاؤ ان چیزوں کو ختم کردے گا جنہیں آپ حیرت انگیز طور پر نہیں جانتے۔

اگر آپ نے یہ سب پڑھا ہے اور یونٹی کے ساتھ درکار کوڈنگ سے تھوڑا سا مغلوب ہو گئے ہیں تو ، یقینی بنائیں کہ آپ چیک کریں کہ کیسے یونٹی لرن کے ساتھ گیم ڈویلپمنٹ سیکھیں۔ اور بغیر کسی پروگرامنگ کے ویڈیو گیمز بنانے کے بارے میں ہماری گائیڈ بھی پڑھیں۔

اتحاد ایک طاقتور ٹول ہے ، اور تھوڑی سی ریسرچ کے ساتھ ، آپ اس کے ساتھ متاثر کن پروجیکٹس بنا سکتے ہیں جتنا آپ توقع کر سکتے ہیں۔ ہمیں بتائیں کہ آپ نے نیچے دیئے گئے تبصروں میں کیا بنایا ہے - ہم دیکھنا پسند کریں گے!

بانٹیں بانٹیں ٹویٹ ای میل۔ چیک کرنے کے 3 طریقے کہ آیا ای میل اصلی ہے یا جعلی۔

اگر آپ کو کوئی ای میل موصول ہوئی ہے جو قدرے مشکوک نظر آتی ہے تو ، اس کی صداقت کو جانچنا ہمیشہ بہتر ہوتا ہے۔ یہ بتانے کے تین طریقے ہیں کہ آیا ای میل اصلی ہے۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پروگرامنگ۔
  • پروگرامنگ۔
  • لانگ فارم
  • لانگفارم گائیڈ۔
مصنف کے بارے میں آندرے انفینٹے۔(131 مضامین شائع ہوئے)

جنوب مغرب میں مقیم ایک مصنف اور صحافی ، آندرے کو 50 ڈگری سیلسیس تک کام کرنے کی ضمانت دی گئی ہے ، اور بارہ فٹ کی گہرائی تک واٹر پروف ہے۔

آندرے انفینٹ سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔