1) Maydon poli (Plane):
- Hierarchy oynasida → Right click
- 3D Object → Plane
- Inspector oynasida:
- Name: "Ground"
- Position: X=0, Y=0, Z=0
- Scale: X=2, Y=1, Z=3
2) Yashil material yaratish:
- Project oynasida → Right click
- Create → Material
- Nom: "GrassMaterial"
- Inspector da:
- Albedo (rang): Yashil (#2D7A2F) rangni tanlang
- Bu materialni "Ground" ga sudrab tashlang (drag & drop) ✅ Natija: Yashil futbol maydoni tayyor! ========================================================= 3)🧱 QADAM 3: DEVORLARNI QURISH 3.1 Chap devor:
- Hierarchy → Right click → 3D Object → Cube
- Inspector:
- Name: "WallLeft"
- Position: X=-10, Y=0.5, Z=0
- Scale: X=0.2, Y=1, Z=30 3.2 O'ng devor:
- Hierarchy → Right click → 3D Object → Cube
- 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):
- Cube yarating
- Name: "WallBack"
- Position: X=0, Y=0.5, Z=-15
- Scale: X=20, Y=1, Z=0.2 3.4 Old devor (raqib tomoni):
- Cube yarating
- Name: "WallFront"
- Position: X=0, Y=0.5, Z=15
- Scale: X=20, Y=1, Z=0.2 3.5 Devorlar uchun material:
- Create → Material → "WallMaterial"
- Albedo: Kulrang yoki qizil rang
- Barcha 4 ta devorga apply qiling ✅ Natija: 4 ta devor bilan yopiq maydon! =============================================== ⚽ QADAM 4: TO'P YARATISH 4.1 To'p obyekti:
- Hierarchy → 3D Object → Sphere
- 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:
- Create → Material → "BallMaterial"
- Albedo: Oq rang
- Ball ga apply qiling 4.3 Physics qo'shish:
- Ball ni tanlang
- Inspector → Add Component
- "Rigidbody" ni qidiring va qo'shing
- Rigidbody sozlamalari:
- Mass: 0.5
- Drag: 0.5
- Angular Drag: 0.5
- Use Gravity: ✅ (belgilangan bo'lsin) 4.4 To'p uchun Physics Material:
- Project → Create → Physics Material
- Nom: "BallPhysics"
-
Inspector:
- Dynamic Friction: 0.6
- Static Friction: 0.6
- Bounciness: 0.3
- Friction Combine: Average
- Bounce Combine: Average
Ball ni tanlang → Rigidbody → Material
BallPhysics ni tanlang
✅ Natija: Sakrashi va harakati bor to'p!
======================================================
🎮 QADAM 5: O'YINCHI (PLAYER) YARATISH
5.1 O'yinchi obyekti:
- Hierarchy → 3D Object → Capsule
- Inspector:
- Name: "Player"
- Position: X=0, Y=1, Z=-10
- Scale: X=1, Y=1, Z=1 5.2 O'yinchi materiali:
- Create → Material → "PlayerMaterial"
- Albedo: Ko'k rang (#0066FF)
- Player ga apply qiling 5.3 Physics qo'shish:
- Player ni tanlang
- Add Component → Rigidbody
- 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:
- Ball obyektini tanlang (Hierarchy)
- Inspector yuqorisida "Tag" ni toping
- Tag → Add Tag...
- + (plus) tugmasini bosing
- Nom: "Ball" yozing
Save
Ball ni qayta tanlang
-
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: Main Camera ni tanlang (Hierarchy)
-
Inspector → Transform:
- Position: X=0, Y=15, Z=-12
- Rotation: X=45, Y=0, Z=0
Kamera scriptni qo'shish:
Main Camera ni tanlang
CameraFollow scriptni drag & drop qiling
-
Inspector da:
- Target: Player obyektini drag qiling
- Offset: X=0, Y=15, Z=-12
- Smooth Speed: 5 8.4 Player ga TAG qo'shish:
Player ni tanlang
Tag → Player (avtomatik bor)
Agar yo'q bo'lsa, Add Tag... → "Player" yarating
======================================================================
⚽ QADAM 9: DARVOZALARNI YARATISH
🥅 9.1 O'yinchi darvorasi (pastda):
Darvoza ramkasi:
- Hierarchy → Create Empty
- Name: "GoalPlayer"
Position: X=0, Y=0, Z=-14
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:Create → Material → "GoalPostMaterial"
Albedo: Oq rang
3 ta qismga ham apply qiling
🥅 9.2 Raqib darvorasi (tepada):
- GoalPlayer ni tanlang
- Ctrl+D (duplicate)
- Name: "GoalAI"
- Position: X=0, Y=0, Z=14 ✅ Natija: 2 ta darvoza tayyor! =====================================================================
🎯 QADAM 10: GOL TRIGGER YARATISH
10.1 Gol zonasi (Player darvorasi):
- GoalPlayer ni tanlang
- Right click → 3D Object → Cube
- Name: "GoalTriggerPlayer"
- Position: X=0, Y=1, Z=0.5
- Scale: X=6, Y=2, Z=0.5 Trigger sozlash:
- GoalTriggerPlayer ni tanlang
- Inspector:
- Box Collider → Is Trigger: ✅ (belgila)
- Mesh Renderer: ❌ (o'chir, ko'rinmasin) 10.2 Gol zonasi (AI darvorasi):
- GoalTriggerPlayer ni copy qiling (Ctrl+C)
- GoalAI ni tanlang → Ctrl+V (paste as child)
- Name: "GoalTriggerAI"
- Position: X=0, Y=1, Z=-0.5 (minus!)
🏷️ QADAM 11: TAG QO'SHISH
Taglar yaratish:
Inspector → Tag → Add Tag...
- Tag 0: "GoalPlayer"
- Tag 1: "GoalAI"
- Save Tag qo'yish:
GoalTriggerPlayer ni tanlang
→ Tag: "GoalPlayer"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()
{
12.3 Scriptni qo'shish:
- GoalTriggerPlayer ni tanlang
- GoalDetector scriptni drag qiling
-
Inspector:
- Is Player Goal: ✅ (belgila)
GoalTriggerAI ni tanlang
GoalDetector scriptni drag qiling
-
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:
- GameManager obyektini tanlang
- 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)