Unity MiniFutbol

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MyrinNew
    Senior Member
    • Feb 2024
    • 5168

    #1

    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()
    {





    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




    More...
Working...