آموزش یونیتی Unity قسمت دوم

درود خدمت دوستان عزیز، علیرضا پیر هستم و با قسمت دوم از سری آموزش های موتور بازی سازی یونیتی در خدمت شما هستم.

در این جلسه ساخت یک بازی دو بعدی در سبک Runner رو شروع می کنیم،

اگر با سبک های مختلف بازی ها آشنایی ندارید،

سبک رانر به سبکی از بازی های کامپیوتری گفته میشه، که یک کاراکتر در اون در حال حرکت (یا دویدن) هست و کاربر باید با هدایت اون بازی رو پیش ببره؛ از موانع عبور کنه و امتیاز کسب کنه (یا ستاره ها رو بگیره) از این دست بازی ها میشه به بازی کلاه قرمزی برای پلتفرم اندروید اشاره کرد

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

آموزش یونیتی

بازی ای که خواهیم ساخت تقریبا همچین فرمی خواهد داشت:

نتیجه نهایی بازی

ضمن عرض این نکته  که به اینکه نقاشیم خیلی خوب هست، واقفم؛ در توضیح تصویر:

اون موجود آبیه قرار هست که کاراکتری باشه که ما کنترلش می کنیم، اون اجسام قرمز، چیزهایی هستن که نباید بهشون برخورد کنیم و با پرش و لیز خوردن باید بگذریم ازشون، و اون ستاره ها هم همون امتیاز ها هستن که باید سعی کنیم بگیریمشون.

پلیرمون پس در جهت x ها حرکت می کنه،

قراردادمون این باشه که قراره با کلید c بشینه و با کلید x بپره، هر مرحله رو هم قرار بر این میزاریم که 60 ثانیه باشه.

خوب؛ اول باید هسته اصلی بازیمون رو پیاده سازی کنیم، همه چیز در بازی روی زمین اتفاق میوفته، پس بیاید اول زمین رو بسازیم، حالا چطور بسازیم؟

برای اینکار ما باید یک GameObject ایجاد کنیم، که پلیر روی اون حرکت کنه، بنابر این برای اینکار، از منوی GameObject و از بخش 3D گزینه ی Cube رو انتخاب می کنیم تا یک مکعب به محیط بازیمون اضافه بشه:

اضافه کردن مکعب به بازی

مکعب ما ایجاد شد، اما اگه قرار باشه کاراکتر ما روی این مکعب حرکت کنه، هنوز حرکت نکرده به سمت منفی بینهایت سقوط می کنه:

مکعب ایجاد شده در یونیتی

برای اینکه این معضل برطرف بشه، باید مکعبمون رو بزرگ کنیم در جهت x.

برای اینکار باید آبجکتمون رو Scale کنیم، برای اینکار دو راه وجود داره، یا اینکه روی مکعب کلیک کنیم و از پنجره ی Inspector و در بخش Scale مقدار X رو اونقدر که به نظر مناسب بیاد افزایش بدیم:

scale کردن object در محور x

یا اینکه از بخش بالای ادیتور، گزینه ی Scale رو برای آبجکتتون فعال کنید و با درگ کردن بردار قرمزه به وجود اومده، سایزش رو در جهت x اضافه کنید:

روش دیگر scale کردن object

من گزینه ی اول رو انتخاب می کنم و به مقدار X در Scale عدد 40 رو میدم:

تنظیم scale در محور x

 

حالا ما زمینمون رو ساختیم، یک نکته ی خیلی مهمی که وجود داره اینه که ما قراره بازی سازی کنیم، قرار نیست چیز زیبایی بسازیم، زیباسازی بازی برای مرحله های بعده، به همین علته که ما فعلا فقط از اجسام آماده استفاده می کنیم، و بعد طرح های گرافیکی رو جایگزین مکعب و مربع و استوانه هامون می کنیم.

بنابراین من در ادامه هروقت گفتم زمین، منظورم همین مکعب کشیده شده در جهت x هست.

حالا وقتشه که کاراکتر خودمون رو به بازی اضافه کنیم، برای کاراکتر هم اینبار شیء کپسول رو انتخاب می کنیم. بنابراین بار دیگه در منوی GameObject و 3D، گزینه ی Capsule رو انتخاب می کنیم تا یک کپسول وارد ادیتورمون بشه:

این کپسول رو هم از این به بعد صداش می کنیم کاراکتر، الان احتمالا کاراکتر توی زمینه، پس ابزار Transform رو از بالا انتخاب می کنیم و کاراکتر رو در محور y ها میاریم بالا تا روی زمین قرار بگیره:

transform کردن object در محور y

حالا باید به کاراکترمون، Character Controller رو نسبت بدیم، برای اینکار روی کاراکتر کلیک کنید، از بخش Inspector روی گزینه ی AddComponent کلیک کنید و در بخش Physics ، گزینه ی Charactrer Controller رو انتخاب کنید تا این Component به پلیر اضافه بشه:

اضافه کردن component به unity

 

حالا وقتشه که برنامه نویسی رو شروع کنیم، باید کد های کاراکترمون رو بنویسیم، برای اینکه کد نویسی رو شروع کنیم، در پنجره ی Project کلیک راست کنید، و یه پوشه به اسم Scripts ایجاد کنید با انتخاب گزینه ی Create و Folder...

توی این فولدر ما کد هامون رو مینویسیم از این به بعد:

ایجاد پوشه برای برنامه نویسی unity

حالا روی فولدری که ایجاد کردیم کلیک راست کنید، Create و سپس C# Script رو انتخاب کنید تا یک کد سی شارپ ایجاد بشه براتون، من نام movement رو برای این کد انتخاب کردم:

نوشتن کدهای یونیتی در پوشه movement

روی فایل سی شارپی که ایجاد کردید دابل کلیک کنید و در محیط monodevelop این کد رو  جایگزین قبلی کنید:

using UnityEngine;
using System.Collections;	
public class ExampleClass : MonoBehaviour {
    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    private Vector3 moveDirection = Vector3.zero;
    void Update(){
        CharacterController controller = GetComponent();
        if (controller.isGrounded){
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            if (Input.GetButton("Jump"))
                moveDirection.y = jumpSpeed;     
       }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
   }
}

ذخیره کدها در یونیتی

حالا فایل رو با زدن کلید Ctrl+s ذخیره می کنیم و به محیط یونیتی برگردید و فایل کدی که نوشتید رو با یک درگ اند دراپ، بکشید و روی کاراکتر بندازید:

گذاشتن فایل کدها روی object

حالا بازی رو اجرا کنید و نتیجه رو ببینید (با زدن کلید Ctrl+P یا با زدن اون مثلث بالای صفحه) :

اجرای نهایی بازی

میبینید که کاراکترمون حالا با کلید های A و D حرکت می کنه، و با کلید Space میپره، اما یک مشکلی وجود داره! با زدن کلید W و S کاراکتر بالا و پایین میره و از زمین میوفته پایین!

ما فقط میخوایم پلیرمون در راستای x ها حرکت کنه.

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

امیدوارم که مفید بوده باشه این جلسه. تا جلسه ی آینده خدانگهدار و پیروز باشید.

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید