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

مرحله ۱: برنامهریزی و طراحی اولیه
🎯 هدفگذاری
قبل از نوشتن حتی یک خط کد، باید بدانید که چه نوع بازیای میسازید:
- اول شخص (FPS) یا سوم شخص؟
- بازی تکنفره یا چندنفره؟
- داستانمحور یا آرکید؟
✍️ مستندسازی
یک سند طراحی بازی (GDD – Game Design Document) تهیه کنید که شامل موارد زیر باشد:
- سبک بازی (اکشن، بقا، جنگی و …)
- لیست ویژگیها (سلاحها، دشمنها، مراحل)
- رابط کاربری (UI)
- طرحهای اولیه (Sketch/Mockup)
مرحله ۲: ایجاد پروژه در Unity
🔧 تنظیمات اولیه
- Unity Hub را باز کرده و یک پروژه 3D Core جدید ایجاد کنید.
- نام پروژه را مثلا
Shooter3Dبگذارید.
📦 پوشهبندی پروژه
ساختار پوشهها را به شکل زیر منظم کنید:
Assets/
├── Scripts/
├── Models/
├── Materials/
├── Prefabs/
├── Scenes/
├── UI/
مرحله ۳: پیادهسازی بازیکن (Player)
🕹️ کنترل حرکت
- یک Capsule به صحنه اضافه کنید و نام آن را
Playerبگذارید. - به آن یک Character Controller اضافه کنید.
- یک اسکریپت
PlayerMovement.csبنویسید:
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
private CharacterController controller;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
float moveX = Input.GetAxis("Horizontal");
float moveZ = Input.GetAxis("Vertical");
Vector3 move = transform.right * moveX + transform.forward * moveZ;
controller.Move(move * speed * Time.deltaTime);
}
}
🎯 هدفگیری و شلیک
- دوربین را به عنوان فرزند Player قرار دهید.
- یک اسکریپت دیگر
Gun.csبسازید که تیراندازی را کنترل کند:
public class Gun : MonoBehaviour
{
public GameObject bulletPrefab;
public Transform firePoint;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
}
}
}
مرحله ۴: پیادهسازی گلولهها و برخوردها
🧨 Bullet Behavior
- یک Prefab به نام
Bulletبسازید. - به آن یک Rigidbody و Collider بدهید.
- اسکریپت
Bullet.cs:
public class Bullet : MonoBehaviour
{
public float speed = 20f;
public float lifetime = 2f;
void Start()
{
GetComponent<Rigidbody>().velocity = transform.forward * speed;
Destroy(gameObject, lifetime);
}
void OnCollisionEnter(Collision collision)
{
Destroy(gameObject);
// اگر دشمن بود، دمیج بده
}
}
مرحله ۵: دشمنها و هوش مصنوعی (AI)
👾 دشمن پایه
- یک Prefab به نام
Enemyبسازید. - اسکریپت
EnemyAI.cs:
public class EnemyAI : MonoBehaviour
{
public Transform player;
public float speed = 3f;
void Update()
{
Vector3 dir = (player.position - transform.position).normalized;
transform.position += dir * speed * Time.deltaTime;
transform.LookAt(player);
}
}
💥 دمیج و مرگ
- به Enemy یک سیستم سلامت اضافه کن.
- وقتی گلوله برخورد کرد، از سلامت کم کن و در صورت نیاز Destroy کن.
مرحله ۶: رابط کاربری (UI)
❤️ نمایش نوار جان
- از Canvas استفاده کن.
- با اسکریپت
HealthUI.csسلامت بازیکن را نمایش بده.
💬 HUD
- گلوله باقیمانده، نام اسلحه، دشمن کشتهشده و … را نمایش بده.
مرحله ۷: طراحی مرحله (Level Design)
🏗️ ساخت نقشه
- با ابزار ProBuilder محیط بسازید.
- یا از مدلهای آماده در Asset Store استفاده کنید (مثلاً Urban city، جنگل، یا صحنههای نظامی).
🎯 اضافهکردن اهداف
- هدف مرحله را تعیین کن (مثلاً رسیدن به نقطهای خاص یا کشتن همه دشمنها).
مرحله ۸: صدا و جلوههای بصری
🔊 صدا
- صدای تیراندازی، انفجار، قدمها و دشمنان را اضافه کن.
- از
AudioSourceوAudioClipاستفاده کن.
💥 جلوههای ویژه
- از Particle System برای انفجار یا تیر استفاده کن.
- نور دینامیک و post-processing کیفیت گرافیکی را بالا میبرد.
مرحله ۹: تست و بهینهسازی
- تست کامل انجام بده (حرکت، شلیک، دشمنها، UI)
- از Profiler یونیتی برای بررسی عملکرد استفاده کن.
- فریمریت را بررسی کن، بافتها و مدلها را بهینهسازی کن.
مرحله ۱۰: ساخت خروجی و انتشار
🏁 Build بازی
- از منوی File > Build Settings:
- پلتفرم را انتخاب کن (مثلاً Windows یا Android)
- دکمه Build را بزن.
🌍 انتشار
- بازی را روی سایت شخصی یا فروشگاههایی مثل itch.io یا Steam یا کافه بازار و مایکت قرار بده.
- اگر قصد توسعه بیشتر داری، فیدبک کاربران را جمعآوری کن.
جمعبندی
ساخت یک بازی شوتر سهبعدی در یونیتی ممکنه در ابتدا چالشبرانگیز به نظر برسه، اما با برنامهریزی دقیق، تمرین و ابزارهایی مثل Unity Asset Store، این مسیر خیلی لذتبخش خواهد بود. اگر یادگیری مداوم و تست را در اولویت بگذاری، میتونی بازیهای بسیار حرفهای و جذاب بسازی.
