اولین تماس با کلاس Unreal C++

بیایید مطالعه ++C خود را با تجزیه و تحلیل فایل TutoProjectGameMode.h ایجاد شده توسط Unreal Engine برای پروژه خود شروع کنیم. این فایل سربرگ کلاس TutoProjectGameMode است.


اینم محتوای فایل:

// Copyright Epic Games, Inc. All Rights Reserved.

 

#pragma once

 

#include "CoreMinimal.h"

#include "GameFramework/GameModeBase.h"

#include "TutoProjectGameMode.generated.h"

 

UCLASS(minimalapi)

class ATutoProjectGameMode : public AGameModeBase

{

GENERATED_BODY()

 

public:

ATutoProjectGameMode();

 

};

 C++ Game Programming in Unreal Engine

    Author: Marcos Romero

*/

 


خطوطی که با کاراکتر # شروع می شوند، دستورالعمل های کامپایل نامیده می شوند. آنها دستورالعمل هایی هستند که توسط کامپایلر در طول فرآیند کامپایل استفاده می شود. دستورالعمل #pragma Once استفاده می شود به طوری که فایل فقط یک بار در طول کامپایل گنجانده می شود.


دستورالعمل #include محتوای فایل مشخص شده را در موقعیتی که دستورالعمل قرار دارد درج می کند. در C++ معمولاً برای گنجاندن فایل‌های هدر که حاوی مشخصات مورد نیاز برای فایل فعلی هستند، استفاده می‌شود.


هنگام ایجاد یک کلاس C++ در Unreal Engine، یک فایل هدر با پسوند .generated.h ایجاد می شود. این فایل همیشه باید آخرین فایلی باشد که با دستور #include اضافه می شود.
دستورالعمل UCLASS (minimalapi) یک ماکرو است که نشان می دهد این کلاس توسط Unreal Engine مدیریت می شود. یک ماکرو در زمان کامپایل با یک بلوک کد جایگزین می شود.


خط زیر UCLASS() اعلان کلاس TutoProjectGameMode است. توجه داشته باشید که پیشوند نام کلاس با حرف A است. این پیشوند توسط Unreal Engine قرار داده شده است و به این معنی است که این کلاس بخشی از سلسله مراتب کلاس کلاس AActor است. این نام با پیشوند A فقط در کد ++C استفاده می شود. در ویرایشگر Unreal، نام کلاس TutoProjectGameMode باقی می ماند.

 

class ATutoProjectGameMode : public AGameModeBase

{

   //class code...  

};

 


متن : public AGameModeBase بعد از نام کلاس نشان می دهد که کلاس AGameModeBase کلاس والد کلاس ATutoProjectGameMode است. این مفهومی است که به عنوان وراثت شناخته می شود و به این معنی است که متغیرها و توابع کلاس AGameModeBase بخشی از کلاس ATutoProjectGameMode هستند. همچنین می توان گفت که کلاس ATutoProjectGameMode از نوع AGameModeBase است.


یک جزئیات بسیار مهم، زبان C++ حساسیت به حروف بزرگ و کوچک است، بنابراین بین حروف بزرگ و کوچک تمایز قائل می شود. اگر از نام Atutoprojectgamemode برای ارجاع به کلاس ATutoProjectGameMode استفاده کنید، کامپایلر یک خطا ایجاد می کند زیرا نام آنها متفاوت است.


کاراکترهای { و } یک بلوک کد را تعریف می کنند که در این مورد برای تعریف محتویات کلاس ATutoProjectGameMode استفاده می شود.


اولین خط بعد از { حاوی متن GENERATED_BODY(). این یک ماکرو Unreal Engine است که کد لازم برای Unreal Engine برای مدیریت این کلاس C++ را ایجاد می کند.


برچسب عمومی نشان می دهد که متغیرها و توابع تعریف شده در زیر عمومی هستند، یعنی می توانند توسط سایر کلاس های ++C به آنها دسترسی داشته باشند. سایر گزینه های دسترسی برای متغیرها و توابع محافظت می شوند، جایی که توسط سایر کلاس های C++ قابل دسترسی نیستند اما توسط کلاس های فرزند قابل دسترسی هستند. و خصوصی که حتی برای کلاس های کودک هم قابل دسترسی نیستند. این برچسب ها به عنوان Access Modifiers شناخته می شوند.


در خط زیر public: متن ATutoProjectGameMode(); که اعلان کلاس Constructor است. یک سازنده دارای یک بلوک کد است که هنگام ایجاد یک عنصر از کلاس اجرا می شود. این بلوک کد در فایل TutoProjectGameMode.cpp تعریف شده است.
شخصیت ؛ یک پایان دهنده دستورات در C++ است. به زودی با خطوطی که باید با ; خاتمه داده شوند آشنا خواهید شد.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed