به نام خدا
در این آموزش یونیتی می خواهیم نحوه قفل شدن نگاه یک گیم آبجکت (محور z) ، به یک آبجکت دیگر را آموزش دهیم.
در ابتدا نتیجه نهایی آموزش را مشاهده کنید:
ابتدا از منوی GameObject --> 3D Object یک Cube و Cylinder را وارد پروژه کردیم.
سپس یک اسکریپت سی شارپ ایجاد کرده و کدهای زیر را درون آن تایپ کردیم.
در خط 6 یک متغیر با سطح دسترسی عمومی تعریف کردیم برای این که از داخل انجین آبجکت هدف را به آن نسبت دهیم ؛ نوع آن را Transform گذاشتیم چون مختصات گیم آبجکت را نیاز داریم.
در خط 17 با استفاده از کامپوننت transform و متد LookAt متغیری که تعریف کردیم را به عنوان پارامتر ورودی این متد فرستادیم؛ وظیفه این متد چرخاندن جهت z گیم آبجکت به سمت هدف می باشد.
در خط 18 با استفاده از کلاس دیباگ و متد DrawLine خطی قرمز ترسیم کردیم تا این تغییر جهت به سمت گیم ابجکت هدف واضح تر باشد ، پارامتر اول این متد شروع خط را مشخص می کند پارامتر دوم جهت و اندازه آن را با ضرب کردن در 5 مشخص کردیم در پارامتر سوم هم رنگ خط را قرمز کردیم.
حال اسکریپت را به مکعب سبز نسبت دادیم و اسم آن را در هایرارکی Enemy گذاشته و اسم Cylinder را به Npc تغییر دادیم حال با حرکت دادن Npc از درون صحنه مشاهده می کنید که جهت نگاه مکعب سبز هم تغییر می کند.
اما بعد از اجرا مشاهده می کنید که این چرخش خیلی سریع و غیر طبیعی انجام می گیرد که می توانید با استفاده از متد Slerp و کلاس Quaternion چرخش های طبیعی تر ایجاد کنید که در دوره دوم آموزش ساخت بازی شوتر اول شخص کاملا به این موضوعات پرداخته ام.
امیدوارم از این آموزش فارسی یونیتی از وبلاگ توسعه دهنده بازی لذت برده باشید.
دیدگاهها (۱۲)
محمد
۲۱ تیر ۹۵ ، ۰۶:۱۹
ممنون از آموزش خوبتون
اما تو آموزش این رو درست نوشتید؟Slerp
منظورتون lerp نیست؟!
پاسخ:
۲۱ تیر ۹۵، ۰۷:۳۱
امید عسکراوی
۲۳ تیر ۹۵ ، ۱۳:۳۸
ولی اقای رجب زاده من یک درخواست کوچک داشتم میخواستم درخواست کنم اگه میشه اموزش زمانی که ما مثلا در بازی fps زوم میکنیم یا fire2 رو میزنیم مثلا دوربین بیاد و به دشمنای جلوی ها اشاره کند یعنی بعد از کشتن دشمن اول و بعد دوباره خارج کردن و زدن حالت زوم به دشمن بعدی که در جلوی ما است اشاره کند یعنی روی دشمن قرار بگیرد و به صورت اتوماتیک روی دشمن قرار بگیره حالتی مثل بازی بتلفید یا مدرن کمبت
ممنون میشم یک اموزش در این زمینه قرار بدید
پاسخ:
۲۳ تیر ۹۵، ۱۳:۴۹
امید عسکراوی
۲۳ تیر ۹۵ ، ۱۸:۰۰
مشتاقانه منتظر هستم تا این اموزش رو در نزدیک ترین زمان ممکمن قرار بدید
ممنون از توجه شما
با تشکر یاعلی
پاسخ:
۲۳ تیر ۹۵، ۱۹:۱۰
امید عسکراوی
۲۷ تیر ۹۵ ، ۱۲:۵۴
ممنون
یاعلی
پاسخ:
۲۷ تیر ۹۵، ۱۲:۵۹
امید عسکراوی
۲۸ تیر ۹۵ ، ۰۱:۲۲
1_من اموزشی رو میخواستم که مثلا وقتی دشمن جلوی ما با کمی فاصله منظورم از کمی خیلی کم نیست یعنی ده متری یا کمتر مثلا هر بار که زوم بکنم اگه اسلحه زمش نزدیک دشمن بود بیا و به روی دشمن بیوفته و بعد از کشتن دشمن اگه دشمن بعدی که مثلا دورتر از دشمن قبله اگه سر اسلحه رو کمی به طرفش بکشم اسلحه با زدن زوم بیاد و به روی دشمن دوم بیوفته
ممنون
2_اقای رجب زاده میشه یه توضیحی هم در مورد خروجی گرفتن بدید من یه مرحله تستی ساختم مرحله هیچی نداره غیر از چند cube و چند تا زمبی همین ولی وقتی ازش خروجی میگیرم و روی گوشیم نصبش میکنم وقتی توی مرحله هستم تصویر کمی کند میشه یا اسلحه وقتی شلیک میکنم تتکون نمیخوره میشه توضیح بدید باید چیکار بکنم
ممنون
یا علی
پاسخ:
۲۸ تیر ۹۵، ۱۰:۴۵
محمد
۲۱ مرداد ۹۵ ، ۱۶:۴۵
پاسخ:
۲۲ مرداد ۹۵، ۱۳:۳۴
جواد
۱۰ شهریور ۹۵ ، ۱۸:۲۹
پاسخ:
۱۰ شهریور ۹۵، ۲۱:۳۳
جواد
۱۱ شهریور ۹۵ ، ۰۱:۰۴
پاسخ:
۱۱ شهریور ۹۵، ۱۲:۳۴
جواد
۱۱ شهریور ۹۵ ، ۱۳:۲۱
خیلی ممنونم از شما به دلیل رسیدگی به سوالات ما
شاد باشید :)
پاسخ:
۱۱ شهریور ۹۵، ۱۵:۱۳
milad
۱۵ خرداد ۹۶ ، ۰۲:۱۶
پاسخ:
۱۶ خرداد ۹۶، ۱۹:۱۰
رضا
۲۱ آذر ۹۸ ، ۱۹:۳۲
سلام آقای زجب زاده ایمیلتون رو میتونید بدید به من بهتون پیام بدم
امیر
۰۵ خرداد ۹۹ ، ۰۱:۱۳
سلام
ببخشید سوال داشتم . ممنون میشم راهنماییم کنید.
1-من می خواستم بازی خودم رو انلاین کنم اما نمیدونم چجوری؟! می خواهم گیمر ها دو به دو با یکدیگر مسابقه دهند. لطفا راهنمایی کنید.
2- می خواستم بازی بسازم اما بعضی جاها به مشکل بر می خورم. شما میتونید راهنماییم کنید؟