پلاک هفت
سوابق تدریس

مدیر وبلاگ توسعه دهنده بازی مدرس سایت های فرانش و لرنینگ تی وی است و شما می توانید با کلیک به روی لینک های زیر به صفحه آموزش مدیر در وب سایت فرانش و سایت لرنینگ تی وی برید



LearningTv.ir

GameDeveloper

اسلایدر

GameDeveloper

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

خبرنامه

جهت اطلاع از آموزش های رایگان و کد های تخفیف در خبرنامه عضو شوید با کلیک به روی لینک زیر دکمه ارسال به راهنمای عضویت در خبرنامه رفته و مطالعه فرمائید

راهنمای عضویت در خبرنامه وبلاگ

دوره های جامع آموزشی
خرید امن از توسعه دهنده بازی
حقوق مادی و معنوی


توسعه دهنده بازی با افرادی که مطالب وبلاگ را کپی می کنند شدیدا برخورد کرده و از طریق راه های قانونی پیگیری خواهد کرد سیستم وبلاگ بیان با پلیس فتا همکاری ویژه ای دارد و به سرعت این پیگیری انجام می شود طبق ماده12ـ هركس به طور غیرمجاز داده‌های متعلق به دیگری را برباید، چنانچه عین داده‌ها در اختیار صاحب آن باشد، به جرای نقدی از یك میلیون (1.000.000) ریال تا بیست میلیون (20.000.000) ریال و در غیر این صورت به حبس از نود و یك روز تا یك سال یا جزای نقدی از پنج میلیون (5.000.000) ریال تا بیست میلیون (20.000.000) ریال یا هر دو مجازات محكوم خواهد شد.

با عضویت در خبرنامه وبلاگ از مزایای آن بهره ببرید!.
دانلود رایگان پکیج های پولی با عضویت در خبرنامه!

به نام خدا

در این آموزش یونیتی می خواهیم نحوه قفل شدن نگاه یک گیم آبجکت (محور z) ، به یک آبجکت دیگر را آموزش دهیم.

در ابتدا نتیجه نهایی آموزش را مشاهده کنید:

 

 

ابتدا از منوی GameObject --> 3D Object یک Cube و Cylinder را وارد پروژه کردیم.

سپس یک اسکریپت سی شارپ ایجاد کرده و کدهای زیر را درون آن تایپ کردیم.

 

 

در خط 6 یک متغیر با سطح دسترسی عمومی تعریف کردیم برای این که از داخل انجین آبجکت هدف را به آن نسبت دهیم ؛ نوع آن را Transform گذاشتیم چون مختصات گیم آبجکت را نیاز داریم.

 

 

در خط 17 با استفاده از کامپوننت transform و متد LookAt متغیری که تعریف کردیم را به عنوان پارامتر ورودی این متد فرستادیم؛ وظیفه این متد چرخاندن جهت z گیم آبجکت به سمت هدف می باشد.

در خط 18 با استفاده از کلاس دیباگ و متد DrawLine خطی قرمز ترسیم کردیم تا این تغییر جهت به سمت گیم ابجکت هدف واضح تر باشد ، پارامتر اول این متد شروع خط را مشخص می کند پارامتر دوم جهت و اندازه آن را با ضرب کردن در 5 مشخص کردیم در پارامتر سوم هم رنگ خط را قرمز کردیم.

حال اسکریپت را به مکعب سبز نسبت دادیم و اسم آن را در هایرارکی Enemy گذاشته و اسم Cylinder را به Npc تغییر دادیم حال با حرکت دادن Npc  از درون صحنه مشاهده می کنید که جهت نگاه مکعب سبز هم تغییر می کند.

اما بعد از اجرا مشاهده می کنید که این چرخش خیلی سریع و غیر طبیعی انجام می گیرد که می توانید با استفاده از متد Slerp و کلاس Quaternion چرخش های طبیعی تر ایجاد کنید که در دوره دوم آموزش ساخت بازی شوتر اول شخص کاملا به این موضوعات پرداخته ام.

امیدوارم از این آموزش فارسی یونیتی از وبلاگ توسعه دهنده بازی لذت برده باشید.

 

نظرات (۹)

سلام
ممنون از آموزش خوبتون
اما تو آموزش این رو درست نوشتید؟Slerp
منظورتون lerp نیست؟!
پاسخ:
سلام
خواهش می کنم
بله با استفاده از کلاس Quaternion.Slerp می شود چرخش نرمی ایجاد کرد که زمانش در دست خوده ماست
البته چرخش رو باید با Quaternion.LookRotation ایجاد کنید.
متد Lerp هم تقریبا همین کارایی رو داره به عنوان مثال می تونید برای حرکت نرم بین دو پوزیشن مختلف از این دستور استفاده کنید
( متغیر سرعت حرکت * Time.deltaTime , پوزیشن دوم , پوزیشن اول)Vector3.Lerp

  • امید عسکراوی
  • سلام خدمت شما اقای رجب زاده و ممنون به خاطر این اموزش زیبا

    ولی اقای رجب زاده من یک درخواست کوچک داشتم میخواستم درخواست کنم اگه  میشه اموزش زمانی که ما مثلا در بازی fps  زوم میکنیم یا fire2 رو میزنیم مثلا دوربین بیاد و به دشمنای جلوی ها اشاره  کند یعنی بعد از کشتن دشمن اول و بعد دوباره خارج کردن و زدن حالت زوم به دشمن بعدی که در جلوی ما است اشاره کند یعنی روی دشمن قرار بگیرد  و به صورت اتوماتیک روی دشمن قرار بگیره حالتی مثل بازی بتلفید  یا مدرن کمبت
    ممنون میشم یک اموزش در این زمینه قرار بدید
    پاسخ:
    سلام دوست عزیز
    من تا حالا روی این موضوع کار نکردم
    ولی چیزی نیست که نشه پیادش کرد
    چند تا پروژه آموزشی دارم به امیده خدا فرصت شد و عمری بود این موردی که گفتین رو آموزش میدم.

    حتما در خبرنامه وبلاگ عضو شید تا از مزایای اون بهره ببرید.
    در پناه خدا


  • امید عسکراوی
  • ممنون اقای رجب زاده از پاسخی که دادید
     
    مشتاقانه منتظر هستم تا این اموزش رو  در نزدیک ترین زمان ممکمن قرار بدید
    ممنون از توجه شما
    با تشکر  یاعلی

    پاسخ:
    سلام
    خواهش می کنم دوست عزیز

  • امید عسکراوی
  • سلام اقای رجب زاده میخواستم بگم من چند روز پیش در مورد یه اموزش ازتون کمک خواستم که در مورد زوم کردن بود  میخواستم بدونم ایا امکانش هست اموزش رو قرار بدید یا نه
    ممنون
    یاعلی
    پاسخ:
    سلام دوست خوب
    شما زوم کردن رو می خواستید یا تغییر جهت دوربین با زدن کلیک راست به روی دشمنان
    اگر زوم کردن رو فقط می خواین تا چند روز دیگه یک اموزش متنی میزارم کاره زیادی نداره
    من آموزشی که براتون مد نظر دارم با هر بار زدن کلیک راست روی دشمن زوم کنه
    یک پروژه جاری به اتمام رسیده در حال آپلود هست تمام بشه 
    روی آموزش شما کار می کنم
    موفق باشی


  • امید عسکراوی
  • سلام اقای رجب زاده ممنون از پاسخی که دادید
     1_من اموزشی رو میخواستم که  مثلا وقتی دشمن جلوی ما با کمی فاصله منظورم از کمی خیلی کم  نیست یعنی ده متری یا کمتر  مثلا هر بار که زوم بکنم اگه اسلحه زمش نزدیک دشمن بود بیا و به  روی دشمن  بیوفته و بعد از کشتن دشمن اگه دشمن بعدی که مثلا دورتر از دشمن قبله اگه سر اسلحه رو کمی به طرفش بکشم اسلحه با زدن زوم بیاد و به روی دشمن  دوم بیوفته
    ممنون

    2_اقای رجب زاده میشه یه توضیحی هم در مورد خروجی گرفتن بدید من یه مرحله تستی ساختم  مرحله هیچی نداره غیر از چند cube  و چند تا زمبی همین ولی وقتی ازش خروجی میگیرم و روی گوشیم نصبش میکنم وقتی توی مرحله هستم تصویر کمی کند میشه یا اسلحه وقتی شلیک میکنم تتکون نمیخوره میشه توضیح بدید باید چیکار بکنم
    ممنون
    یا علی
    پاسخ:
    سلام
    آموزش شما درست میشه ولی خوب به دلیل این که اموزش های دیگه در نوبت هستن با تاخیر در وبلاگ قرار می گیره

    در مورده خروجی اگر بازیتون کند اجرا میشه یا قدرت گوشی که روش تست می کنید ضعیفه یا این که از مشکلات یونیتی 5 هست فعلا با توجه به بازخوردهایی که صورت گرفته بازی های سه بعدی اندروید رو بهتره در یونیتی 4 بسازید یا این که از آخرین نسخه یونیتی 5 استفاده کنید

    موفق باشی


    ممنون.این کد عالیه.من تازه شروع کردم.کدنویس شلیک کردن رو بلد بودم ولی نمیدونستم چجوری میتونم برای اصلحه نشانه بزارم.با این کد تونستم.ممنون
    پاسخ:
    خواهش می کنم

     سلام
    خیلی ممنونم از اموزش هاتون 
    یه سوال مهم پیش اومده برام اگه بخوایم ''فقط ''در محور rotation.x به سمت transform مورد نظر چرخش کنیم باید چی کار کرد؟
    خیلی ممنونم اگه پاسخ بدید
    پاسخ:
    سلام دوست خوب در دروه جامع برنامه نویسی سی شارپ این موضوع رو آموزش دادم
    در هفته آینده منتشر میشه

    سلام
    لطفا اگه میشه کد رو به من بدید به خدا خیلی لازم دارمش ،پروژه رو باید تا اخر ماه تحویل بدم مشکل من فقط همین یه خط کد هست اگه تا هفته دیگه صبر کنم وقت زیادی رو از دست میدم 
    خیلی ممنون میشم اگه الان اون رو برام تایپ کنید

    خیلی ممنون از رسیدگی سریع به سوالات
    خدانگهدار
    پاسخ:
    سلام دوست خوب 

    موفق باشی

    سلام
    خیلی ممنونم از شما به دلیل رسیدگی به سوالات ما
    شاد باشید :)
    پاسخ:
    سلام 
    خواهش می کنم
    مچکر 
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی