DEV Community

Elshod Ibodullayev
Elshod Ibodullayev

Posted on

Unity MiniFutbol

1) Maydon poli (Plane):

  1. Hierarchy oynasida → Right click
  2. 3D Object → Plane
  3. Inspector oynasida:
    • Name: "Ground"
    • Position: X=0, Y=0, Z=0
    • Scale: X=2, Y=1, Z=3

2) Yashil material yaratish:

  1. Project oynasida → Right click
  2. Create → Material
  3. Nom: "GrassMaterial"
  4. Inspector da:
    • Albedo (rang): Yashil (#2D7A2F) rangni tanlang
  5. Bu materialni "Ground" ga sudrab tashlang (drag & drop) ✅ Natija: Yashil futbol maydoni tayyor! ========================================================= 3)🧱 QADAM 3: DEVORLARNI QURISH 3.1 Chap devor:
  6. Hierarchy → Right click → 3D Object → Cube
  7. Inspector:
    • Name: "WallLeft"
    • Position: X=-10, Y=0.5, Z=0
    • Scale: X=0.2, Y=1, Z=30 3.2 O'ng devor:
  8. Hierarchy → Right click → 3D Object → Cube
  9. Inspector:
    • Name: "WallRight"
    • Position: X=10, Y=0.5, Z=0
    • Scale: X=0.2, Y=1, Z=30 3.3 Orqa devor (o'yinchi tomoni):
  10. Cube yarating
  11. Name: "WallBack"
  12. Position: X=0, Y=0.5, Z=-15
  13. Scale: X=20, Y=1, Z=0.2 3.4 Old devor (raqib tomoni):
  14. Cube yarating
  15. Name: "WallFront"
  16. Position: X=0, Y=0.5, Z=15
  17. Scale: X=20, Y=1, Z=0.2 3.5 Devorlar uchun material:
  18. Create → Material → "WallMaterial"
  19. Albedo: Kulrang yoki qizil rang
  20. Barcha 4 ta devorga apply qiling ✅ Natija: 4 ta devor bilan yopiq maydon! =============================================== ⚽ QADAM 4: TO'P YARATISH 4.1 To'p obyekti:
  21. Hierarchy → 3D Object → Sphere
  22. Inspector:
    • Name: "Ball"
    • Position: X=0, Y=0.5, Z=0
    • Scale: X=0.5, Y=0.5, Z=0.5 4.2 To'p materiali:
  23. Create → Material → "BallMaterial"
  24. Albedo: Oq rang
  25. Ball ga apply qiling 4.3 Physics qo'shish:
  26. Ball ni tanlang
  27. Inspector → Add Component
  28. "Rigidbody" ni qidiring va qo'shing
  29. Rigidbody sozlamalari:
    • Mass: 0.5
    • Drag: 0.5
    • Angular Drag: 0.5
    • Use Gravity: ✅ (belgilangan bo'lsin) 4.4 To'p uchun Physics Material:
  30. Project → Create → Physics Material
  31. Nom: "BallPhysics"
  32. Inspector:

    • Dynamic Friction: 0.6
    • Static Friction: 0.6
    • Bounciness: 0.3
    • Friction Combine: Average
    • Bounce Combine: Average
  33. Ball ni tanlang → Rigidbody → Material

  34. BallPhysics ni tanlang
    ✅ Natija: Sakrashi va harakati bor to'p!

======================================================
🎮 QADAM 5: O'YINCHI (PLAYER) YARATISH
5.1 O'yinchi obyekti:

  1. Hierarchy → 3D Object → Capsule
  2. Inspector:
    • Name: "Player"
    • Position: X=0, Y=1, Z=-10
    • Scale: X=1, Y=1, Z=1 5.2 O'yinchi materiali:
  3. Create → Material → "PlayerMaterial"
  4. Albedo: Ko'k rang (#0066FF)
  5. Player ga apply qiling 5.3 Physics qo'shish:
  6. Player ni tanlang
  7. Add Component → Rigidbody
  8. Sozlamalar:
    • Mass: 2
    • Drag: 2
    • Angular Drag: 5
    • Use Gravity: ✅
    • Constraints:
      • Freeze Rotation: X ✅, Y ✅, Z ✅ 5.4 Capsule Collider sozlash: Player da Capsule Collider bor (avtomatik). Sozlamalar:
    • Radius: 0.5
    • Height: 2 ✅ Natija: Ko'k o'yinchi tayyor! ======================================================== 🏷️ QADAM 7: TO'PGA TAG QO'SHISH Script ishlashi uchun to'pga "Ball" tagi kerak:
  9. Ball obyektini tanlang (Hierarchy)
  10. Inspector yuqorisida "Tag" ni toping
  11. Tag → Add Tag...
  12. + (plus) tugmasini bosing
  13. Nom: "Ball" yozing
  14. Save

  15. Ball ni qayta tanlang

  16. Inspector → Tag → "Ball" ni tanlang

    ✅ Natija: O'yinchi WASD yoki strelkalar bilan yuradi, SPACE bilan to'p tepadi!

    🎥 QADAM 8: KAMERA SOZLASH
    8.1 Kamera pozitsiyasi:

  17. Main Camera ni tanlang (Hierarchy)

  18. Inspector → Transform:

    • Position: X=0, Y=15, Z=-12

    - Rotation: X=45, Y=0, Z=0

    Kamera scriptni qo'shish:

  19. Main Camera ni tanlang

  20. CameraFollow scriptni drag & drop qiling

  21. Inspector da:

    • Target: Player obyektini drag qiling
    • Offset: X=0, Y=15, Z=-12
    • Smooth Speed: 5 8.4 Player ga TAG qo'shish:
  22. Player ni tanlang

  23. Tag → Player (avtomatik bor)

  24. Agar yo'q bo'lsa, Add Tag... → "Player" yarating

======================================================================

⚽ QADAM 9: DARVOZALARNI YARATISH

🥅 9.1 O'yinchi darvorasi (pastda):
Darvoza ramkasi:

  1. Hierarchy → Create Empty
  2. Name: "GoalPlayer"
  3. Position: X=0, Y=0, Z=-14

  4. GoalPlayer ichiga 3 ta Cube yarating:
    Chap ustun:
    Right click on GoalPlayer → 3D Object → Cube
    Name: "PostLeft"
    Position: X=-3, Y=1, Z=0
    Scale: X=0.2, Y=2, Z=0.2
    O'ng ustun:
    Name: "PostRight"
    Position: X=3, Y=1, Z=0
    Scale: X=0.2, Y=2, Z=0.2
    Yuqori to'sin:
    Name: "Crossbar"
    Position: X=0, Y=2, Z=0
    Scale: X=6.4, Y=0.2, Z=0.2
    Darvoza materiali:

  5. Create → Material → "GoalPostMaterial"

  6. Albedo: Oq rang

  7. 3 ta qismga ham apply qiling

🥅 9.2 Raqib darvorasi (tepada):

  1. GoalPlayer ni tanlang
  2. Ctrl+D (duplicate)
  3. Name: "GoalAI"
  4. Position: X=0, Y=0, Z=14 ✅ Natija: 2 ta darvoza tayyor! =====================================================================

🎯 QADAM 10: GOL TRIGGER YARATISH
10.1 Gol zonasi (Player darvorasi):

  1. GoalPlayer ni tanlang
  2. Right click → 3D Object → Cube
  3. Name: "GoalTriggerPlayer"
  4. Position: X=0, Y=1, Z=0.5
  5. Scale: X=6, Y=2, Z=0.5 Trigger sozlash:
  6. GoalTriggerPlayer ni tanlang
  7. Inspector:
    • Box Collider → Is Trigger: ✅ (belgila)
    • Mesh Renderer: ❌ (o'chir, ko'rinmasin) 10.2 Gol zonasi (AI darvorasi):
  8. GoalTriggerPlayer ni copy qiling (Ctrl+C)
  9. GoalAI ni tanlang → Ctrl+V (paste as child)
  10. Name: "GoalTriggerAI"
  11. Position: X=0, Y=1, Z=-0.5 (minus!)

🏷️ QADAM 11: TAG QO'SHISH
Taglar yaratish:
Inspector → Tag → Add Tag...

  1. Tag 0: "GoalPlayer"
  2. Tag 1: "GoalAI"
  3. Save Tag qo'yish:
  4. GoalTriggerPlayer ni tanlang
    → Tag: "GoalPlayer"

  5. GoalTriggerAI ni tanlang
    → Tag: "GoalAI"

==============================================================================

💻 QADAM 12: GOL SISTEMASI SCRIPTI
12.1 Script yaratish:
Project → Create → C# Script
Name: "GoalDetector"
12.2 Kod yozish:GoalDetector.csCode using UnityEngine;

public class GoalDetector : MonoBehaviour
{
[Header("Gol sozlamalari")]
public bool isPlayerGoal = false; // True = Player darvorasi, False = AI darvorasi

private GameManager gameManager;

void Start()
{
Enter fullscreen mode Exit fullscreen mode

12.3 Scriptni qo'shish:

  1. GoalTriggerPlayer ni tanlang
  2. GoalDetector scriptni drag qiling
  3. Inspector:

    • Is Player Goal: ✅ (belgila)
  4. GoalTriggerAI ni tanlang

  5. GoalDetector scriptni drag qiling

  6. Inspector:

    • Is Player Goal: ❌ (belgilamang)

🎮 QADAM 13: GAME MANAGER (Skor tizimi)
13.1 GameManager obyekti:
Hierarchy → Create Empty
Name: "GameManager"
Position: 0, 0, 0
13.2 GameManager scripti:GameManager.csCode using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
[Header("Skor")]
public int playerScore = 0;
public int aiScore = 0;
public int maxScore = 3; // Necha gol yetsag13.3 GameManager scriptni qo'shish:

  1. GameManager obyektini tanlang
  2. GameManager.cs scriptni drag qiling

📊 QADAM 14: UI YARATISH (Skor ko'rsatish)
14.1 Canvas yaratish:
Hierarchy → Right click → UI → Canvas
Name: "Canvas"

Canvas sozlamalari:

  • Render Mode: Screen Space - Overlay
  • Canvas Scaler → UI Scale Mode: Scale With Screen Size
  • Reference Resolution: 1920x1080 14.2 Player skori (chap yuqori): Canvas → Right click → UI → Text Name: "PlayerScoreText"

Transform (Rect Transform):

  • Anchor: Top-Left
  • Pos X: 100, Pos Y: -50
  • Width: 200, Height: 100

Text component:

  • Text: "0"
  • Font Size: 72
  • Alignment: Center
  • Color: Ko'k 14.3 AI skori (o'ng yuqori): Canvas → Right click → UI → Text Name: "AIScoreText"

Rect Transform:

  • Anchor: Top-Right
  • Pos X: -100, Pos Y: -50
  • Width: 200, Height: 100

Text:

  • Text: "0"
  • Font Size: 72
  • Alignment: Center
  • Color: Qizil 14.4 GameManager ga bog'lash:
  • GameManager ni tanlang
  • Inspector → GameManager script:
    • Player Score Text: PlayerScoreText ni drag qiling
    • AI Score Text: AIScoreText ni drag qiling
    • Ball: Ball obyektini drag qiling

✅ SINOV!
Play ▶️ tugmasini bosing

Tekshiring:

  • Gol ursangiz, skor ortadimi? ✅
  • To'p markazga qaytadimi? ✅
  • Skorlar ekranda ko'rinadimi? ✅

====================================================================================================================================================
🎯 1-QADAM: GameScene'ni saqlash

Hozirgi scene'ni saqlang:

File → Save As...
Nomi: GameScene
Assets/Scenes papkasiga saqlang

🎯 2-QADAM: MainMenu Scene yaratish

Yangi Scene yarating:

File → New Scene
Basic (Built-in) tanlang
File → Save As... → nomi: MainMenu

UI qo'shing:

Hierarchy'da o'ng tugma → UI → Canvas
Canvas ichida o'ng tugma → UI → Text - TextMeshPro (yoki UI → Text)
Nomi: "MINI FUTBOL" (sarlavha)

Tugmalar qo'shing:

Canvas ichida o'ng tugma → UI → Button - TextMeshPro
Birinchi tugma nomi: "START"
Ikkinchi tugma: "EXIT"

🎯 3-QADAM: MenuManager scripti
Assets/Scripts papkasida yangi C# script yarating:
O'ng tugma → Create → C# Script → nomi: MenuManager

Keyin men sizga kodni beraman. Tayyor bo'lganingizda aytib bering! ✅

🎯 2. Unity'da sozlash:
MainMenu Scene'da:

Canvas'ga MenuManager qo'shing:

Canvas'ni tanlang (Hierarchy'da)
Inspector'da Add Component
MenuManager scriptini qo'shing

START tugmasini sozlang:

START tugmasini tanlang
Inspector'da pastga scroll qiling
Button komponentini toping
OnClick() bo'limida + tugmasini bosing
Canvas'ni drag qilib olib keling
Dropdown'dan: MenuManager → StartGame()

EXIT tugmasini sozlang:

EXIT tugmasini tanlang
OnClick() → +
Canvas'ni drag qiling
MenuManager → ExitGame()

==========================================================================🎯 3. Build Settings:

File → Build Settings (Ctrl+Shift+B)
Add Open Scenes tugmasini bosing (MainMenu qo'shiladi)
GameScene'ga o'ting (File → Open Scene)
Yana Add Open Scenes bosing

Tartib:

MainMenu (index 0)
GameScene (index 1)

✅ Test qiling:

MainMenu scene'dan Play bosing
START tugmasi GameScene'ga o'tkazishi kerak

======================================================
🎯 4-QADAM: GameScene'dan Menu'ga qaytish
GameScene'da Pause Menu yoki Back tugmasi qo'shamiz.
Unity'da qiling:

GameScene'ni oching
Canvas yarating (agar yo'q bo'lsa):

Hierarchy → o'ng tugma → UI → Canvas

Panel qo'shing (Pause Menu uchun):

Canvas ichida → UI → Panel
Nomi: PausePanel

Tugmalar qo'shing:

PausePanel ichida → UI → Button
Birinchi tugma: "RESUME" (davom etish)
Ikkinchi tugma: "MENU" (menuga qaytish)
Uchinchi tugma: "RESTART" (qayta boshlash)

PausePanel'ni yashiring:

PausePanel'ni tanlang
Inspector'da yuqorida chekboxni o'chiring (inactive qilish)

📝 5-QADAM: PauseManager scripti

🔧 6-QADAM: Sozlash

Canvas'ga komponentlar qo'shing:

Canvas'ni tanlang
Add Component → MenuManager (agar yo'q bo'lsa)
Add Component → PauseManager

PauseManager'ni sozlang:

Canvas'ni tanlang
Inspector'da PauseManager komponentini toping
Pause Panel maydoniga PausePanel'ni drag qiling

Tugmalarni sozlang:

RESUME tugmasi: PauseManager → ResumeGame()
MENU tugmasi: PauseManager → BackToMenu()
RESTART tugmasi: PauseManager → RestartGame()

✅ Test qiling:

O'yinda ESC bosing → Pause menu ochilishi kerak
RESUME → o'yin davom etadi
MENU → MainMenu'ga qaytadi
RESTART → o'yin qayta boshlanadi

Top comments (0)