Skip to main content
0

āļŠāļēāļĢāļˆāļēāļāļœāļđāđ‰āđ€āļ‚āļĩāļĒāļ™

Guess Card Game āđ€āļāļĄ Casual Game āļ—āļĩāđˆāđ€āļĨāđˆāļ™āļ‡āđˆāļēāļĒ āļŠāļšāļēāļĒ āđ† āđ€āļžāļĨāļīāļ™ āđ„āļ§āđ‰āđ€āļĨāđˆāļ™ Party āļāļąāļšāđ€āļžāļ·āđˆāļ­āļ™āļāđ‡āļ”āļĩ (!Must Try!)

āđ€āļ‚āļĩāļĒāļ™āđ‚āļ”āļĒ
Chairawit Iamkhajornchai
Internship @ borntoDev

āļšāļ—āļ„āļ§āļēāļĄāļ™āļĩāđ‰āļ•āļĩāļžāļīāļĄāļžāđŒ āđāļĨāļ° āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 12 āļāļĢāļāļŽāļēāļ„āļĄ 2566

āđ‚āļ”āļĒāđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāļ—āļĩāđˆāđ€āļĢāļēāļˆāļ°āļĄāļēāļ—āļģāđƒāļ™āļ§āļąāļ™āļ™āļĩāđ‰āļ„āļ·āļ­ Guess Card Game

āđ‚āļ”āļĒ āļœāļĄāđ„āļ”āđ‰āđāļĢāļ‡āļšāļąāļ™āļ”āļēāļĨāđƒāļˆ āļˆāļēāļ Video āđƒāļ™ Youtube āļ‚āļ­āļ‡āļŠāđˆāļ­āļ‡ Awesome Tuts āđƒāļ™āļŠāļ·āđˆāļ­āļ„āļĨāļīāļ›āļ§āđˆāļē “How To Build Rock Paper Scissors Game | Unity Tutorial” āļˆāļēāļāļ„āļĨāļīāļ›āļˆāļ°āļŠāļ­āļ™āļāļēāļĢāļ—āļģāđ€āļāļĄ āđ€āļ›āđˆāļēāļĒāļīāđ‰āļ‡āļŠāļļāļš āļ‹āļķāđˆāļ‡āļœāļĄāļĄāļ­āļ‡āļ§āđˆāļēāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļĄāļēāļ•āđˆāļ­āļĒāļ­āļ”āđ„āļ­āđ€āļ”āļĩāļĒāļ•āđˆāļ­āđ„āļ”āđ‰ āđ‚āļ”āļĒāļœāļĄāđ„āļ”āđ‰āļ™āļģāđ„āļ­āđ€āļ”āļĩāļĒāļˆāļēāļ Board Game : Spyfall āđ€āļ‚āđ‰āļēāļĄāļēāđ€āļŠāļĢāļīāļĄāļ”āđ‰āļ§āļĒāđ‚āļ”āļĒāļ—āļģāļāļēāļĢāļĨāļ‡ Scope āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ—āļģāđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™ āļ”āđ‰āļ§āļĒ Concept āļ‡āđˆāļēāļĒ āđ† āļ„āļ·āļ­āļˆāļ°āļĄāļĩāļ„āļģāđƒāļšāđ‰āļĄāļēāđƒāļŦāđ‰āļžāļĢāđ‰āļ­āļĄāļāļąāļšāļāļēāļĢāđŒāļ”āļ•āļąāļ§āđ€āļĨāļ·āļ­āļ 3 āđƒāļš āļ‹āļķāđˆāļ‡ 1 āđƒāļ™āļ™āļąāđ‰āļ™āļĄāļĩāđƒāļšāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ­āļĒāļđāđˆ āđ‚āļ”āļĒāđ€āļāļĄāļ™āļĩāđ‰āļāđ‡āđ„āļ”āđ‰āļžāļąāļ’āļ™āļēāļ”āđ‰āļ§āļĒ Unity

āļˆāļēāļāļ—āļĩāđˆāļāļĨāđˆāļēāļ§āļĄāļēāļ‚āđ‰āļēāļ‡āļ•āđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļĄāļ·āļ­āđƒāļŦāļĄāđˆāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļˆāļ°āļ—āļģāđ€āļāļĄāļ‚āļ­āļ‡āļ•āļąāļ§āđ€āļ­āļ‡āļŠāļąāļāđ€āļāļĄāđāļĨāđ‰āļ§āđ€āļ­āļēāđ„āļ›āļ•āđˆāļ­āļĒāļ­āļ”āļŦāļĢāļ·āļ­āđ„āļĄāđˆāļāđ‡āļ—āļģāđ€āļĨāđˆāļ™āļāļąāļšāđ€āļžāļ·āđˆāļ­āļ™āļāļąāļ™āļŠāļ™āļļāļ āđ† āļāļąāļ™āļāđ‡āļ•āļēāļĄ āļ§āļąāļ™āļ™āļĩāđ‰āļœāļĄāļāđ‡āļ‚āļ­āļŦāļĒāļīāļšāđ€āļāļĄāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļ‡āđˆāļēāļĒāļ­āļĒāđˆāļēāļ‡ Guess Card Game āļĄāļēāļĨāļ­āļ‡āđƒāļŦāđ‰āđ€āļžāļ·āđˆāļ­āļ™ āđ† āļ—āļģāļ•āļēāļĄāđ„āļ›āļžāļĢāđ‰āļ­āļĄ āđ† āļāļąāļ™āđ€āļĨāļĒāļ™āļ° āđ‚āļ”āļĒāđ€āļˆāđ‰āļēāđ€āļāļĄāļ—āļĩāđˆāđ€āļĢāļēāļˆāļ°āļ—āļģāđƒāļ™āļ§āļąāļ™āļ™āļĩāđ‰āđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļš 2 āļĄāļīāļ•āļī āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāđ„āļ›āđ€āļĨāđˆāļ™āđ„āļ”āđ‰āļ—āļąāđ‰āļ‡āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļĄāļ·āļ­āļ–āļ·āļ­ āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ āđāļĨāļ°āļšāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡ PC āļ­āļĩāļāļ”āđ‰āļ§āļĒ āđ€āļ”āļĩāđ‹āļĒāļ§āļ–āđ‰āļēāļ—āļļāļāļ„āļ™āļžāļĢāđ‰āļ­āļĄāđāļĨāđ‰āļ§āđ€āļĢāļēāđ„āļ›āļĨāļ‡āļĄāļ·āļ­āļ—āļģāļžāļĢāđ‰āļ­āļĄāļāļąāļ™āđ€āļĨāļĒ!!!

Credit by Boardgametoday.com

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 1 : āđ€āļ•āļĢāļĩāļĒāļĄāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļĩāđˆāđƒāļŠāđ‰ ðŸŽŪ

  1. Unity : https://unity.com/download
  2. Visual Studio Community : https://visualstudio.microsoft.com/vs/community/
  3. Unity Store āļŠāļģāļŦāļĢāļąāļšāļŦāļē Assets https://assetstore.unity.com/packages/2d/textures-materials/rock-climber-slot-game-assets-50243

Basic Interface Game

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 2 : āđ€āļĢāļīāđˆāļĄāļŠāļĢāđ‰āļēāļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāđƒāļ™ Unity

1. āđ€āļ›āļīāļ”āđ‚āļ›āļĢāđāļāļĢāļĄ Unity āđāļĨāđ‰āļ§āļ—āļģāļāļēāļĢāļāļ” New project

 2.āđ€āļĨāļ·āļ­āļāļĢāļđāļ›āđāļšāļšāđ€āļ›āđ‡āļ™āđāļšāļš 2D āđāļĨāđ‰āļ§āļāļ” Create project

āļ›āļĨ.āļŦāļĨāļąāļ‡āļˆāļēāļ create project āđāļĨāđ‰āļ§āļ­āļēāļˆāđƒāļŠāđ‰āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļŦāļ™āđˆāļ­āļĒāļ™āļ°āļ„āļĢāļąāļš āļ—āļąāđ‰āļ‡āļ™āļĩāđ‰āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļš āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§ PC āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ°āļ„āļ™

3. āđ€āļĢāļīāđˆāļĄāļŠāļĢāđ‰āļēāļ‡ Game Object āļāļąāļ™āđ€āļĨāļĒ āđ‚āļ”āļĒāđ€āļĢāļēāļˆāļ°āđ€āļĢāļīāđˆāļĄāļāļąāļ™āļˆāļēāļ Background āļ‰āļēāļāļŦāļĨāļąāļ‡āļ‚āļ­āļ‡āđ€āļāļĄāļāļąāļ™āļāđˆāļ­āļ™āļ™āļ°āļ„āļĢāļąāļšāđ€āļĢāļīāđˆāļĄāļ—āļĩāđˆ āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡ ctrl + 4 āđ€āļ›āļīāļ”āļŦāļ™āđ‰āļēāļ•āđˆāļēāļ‡ Hierachy āļ‚āļķāđ‰āļ™āļĄāļē āļˆāļēāļāļ™āļąāđ‰āļ™āļ•āļēāļĄāļ”āđ‰āļ§āļĒ āļ„āļĨāļīāļāļ‚āļ§āļēāļ—āļĩāđˆ UI → Image

āļŠāđˆāļ§āļ™ Inspector āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļąāļš āļŠāļĩ āđāļĨāļ° āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Background āđ„āļ”āđ‰āđ‚āļ”āļĒ āļ›āļĢāļąāļšāļ•āļĢāļ‡ Rect Transform āđ€āļĨāļĒ

4. āļˆāļąāļ”āļ—āļģ Element āļāļēāļĢāđŒāļ”āļŠāļģāļŦāļĢāļąāļšāđ€āļĨāđˆāļ™āđāļĨāļ°āļ„āļģāđƒāļšāđ‰āļĢāļ§āļĄāđ„āļ›āļ–āļķāļ‡ āļāļĢāļ­āļš āļ„āļģāļ–āļēāļĄ āđ‚āļ”āļĒāļ§āļīāļ˜āļĩāļāļēāļĢāļˆāļ°āļ„āļĨāđ‰āļēāļĒāļāļąāļšāļ‚āļąāđ‰āļ™āļ—āļĩāđˆ 2 āļˆāļ°āđ„āļ”āđ‰āļŦāļ™āđ‰āļēāļ•āļēāļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰āđ€āļĨāļĒāđ‚āļ”āļĒāļ–āđ‰āļēāđ€āļĢāļēāļ­āļĒāļēāļāļ•āļāđāļ•āđˆāļ‡āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļāđ‡āđƒāļŦāđ‰āđ‚āļŦāļĨāļ” Assets āļĄāļēāđāļĨāđ‰āļ§āļ—āļģāļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āđ€āļ‚āđ‰āļēāļĄāļēāđ„āļ”āđ‰āđ€āļĨāļĒ

āļˆāļ°āđ„āļ”āđ‰āļŦāļ™āđ‰āļēāļ•āļēāļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰āđ€āļĨāļĒ āđ‚āļ”āļĒāļ–āđ‰āļēāđ€āļĢāļēāļ­āļĒāļēāļāļ•āļāđāļ•āđˆāļ‡āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āļāđ‡āđƒāļŦāđ‰āđ‚āļŦāļĨāļ” Assets āļĄāļēāđāļĨāđ‰āļ§ āļ—āļģāļāļēāļĢ import āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āđ„āļ”āđ‰āđ€āļĨāļĒ

5. āļŦāļĨāļąāļ‡āļˆāļēāļāļ•āļāđāļ•āđˆāļ‡āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™ āđāļĨāđ‰āļ§āļŦāļ™āđ‰āļēāļ•āļēāļ„āļĢāļēāļ§āđ†āļāđ‡āļˆāļ°āļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 3 : āļĄāļēāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ„āļ§āļšāļ„āļļāļĄāđ€āļāļĄāļ”āđ‰āļ§āļĒāļāļąāļ™āļ•āđˆāļ­ C#

1. āđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĢāļēāļˆāļ°āđƒāļŠāđ‰āđ€āļ›āđ‡āļ™āļ āļēāļĐāļē C# āđāļĨāđ‰āļ§āļ—āļģāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđ‚āļŸāļĨāļ”āđ€āļ”āļ­āļĢāđŒ Scripts āđāļĨāđ‰āļ§āļ„āļĨāļīāļāļ‚āļ§āļēāđ€āļĨāļ·āļ­āļ C# Script āļ•āļąāđ‰āļ‡āļŠāļ·āđˆāļ­

2. āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āđ‚āļ”āļĒāļˆāļ°āļŠāļĢāđ‰āļēāļ‡ Card.cs āļ‚āļķāđ‰āļ™āļĄāļē āđ€āļžāļ·āđˆāļ­āļ„āļ§āļšāļ„āļļāļĄ card object āđƒāļ™āđ€āļāļĄ āđ‚āļ”āļĒāļāļēāļĢ import namespace āđāļĨāļ° Library āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

āļ›āļĢāļ°āļāļēāļĻāļ„āļĨāļēāļŠāļŠāļ·āđˆāļ­ Card āļ—āļĩāđˆ inherit āļˆāļēāļ MonoBehaviour āđƒāļ™ Unity āļ‹āļķāđˆāļ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđāļ™āļšāļŠāļ„āļĢāļīāļ›āļ•āđŒāļāļąāļšāļ­āļ­āļšāđ€āļˆāļāļ•āđŒāļ‚āļ­āļ‡āđ€āļāļĄāđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ Unity āđ€āļžāļ·āđˆāļ­āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āđāļĨāļ°āļ„āļ§āļšāļ„āļļāļĄāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āđāļĨāļ°āļ•āļąāļ§āđāļ›āļĢāđ„āļ”āđ‰

public class Card : MonoBehaviour
{
 public string cardInfo; 
}

āļ āļēāļĒāđƒāļ™āļ„āļĨāļēāļŠ “Card” āļĄāļĩāļ•āļąāļ§āđāļ›āļĢāļ—āļĩāđˆāđ€āļ›āđ‡āļ™ public āļŠāļ·āđˆāļ­āļ§āđˆāļē “cardInfo” āļ—āļĩāđˆāļĄāļĩ type āđ€āļ›āđ‡āļ™ string āđ‚āļ”āļĒāļĄāļąāļ™āļˆāļ°āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļąāļ§āļ•āđˆāļēāļ‡ āđ† āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāđŒāļ”āđ„āļ§āđ‰ āđāļĨāļ°āļ•āļąāļ§āđāļ›āļĢ isOpen āļ—āļĩāđˆāļ›āļĢāļ°āļāļēāļĻāđ€āļ›āđ‡āļ™ private āļĄāļĩāļŠāļ™āļīāļ”āđ€āļ›āđ‡āļ™ boolean āđ€āļ­āļēāđ„āļ§āđ‰āļšāļ­āļāļŠāļ–āļēāļ™āļ°āļ§āđˆāļēāļāļēāļĢāđ€āļ›āļīāļ”āļŦāļĢāļ·āļ­āļ›āļīāļ”āļ­āļĒāļđāđˆāđ‚āļ”āļĒāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđ€āļĢāļēāļˆāļ°āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ false āļ™āļąāđˆāļ™āļŦāļĄāļēāļĒāļ–āļķāļ‡āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļāļēāļĢāđŒāļ”āļˆāļ°āļ„āļ§āđˆāļģāļ­āļĒāļđāđˆ

    public void OpenCard()
    {
        if (isOpen)
        {
            return;
        }

        isOpen = true;
        Debug.Log("Card opened: " + cardInfo);
    }

āļ•āđˆāļ­āļĄāļēāđ€āļ›āđ‡āļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļŠāļ·āđˆāļ­āļ§āđˆāļē “OpenCard()” āđ€āļ›āđ‡āļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāđ€āļ›āļīāļ”āļāļēāļĢāđŒāļ” āļāđˆāļ­āļ™āļ­āļ·āđˆāļ™āļ•āđ‰āļ­āļ‡āđ€āļŠāđ‡āļ„āļāđˆāļ­āļ™āļ§āđˆāļēāļāļēāļĢāđŒāļ”āđ€āļ›āļīāļ”āļ­āļĒāļđāđˆāļĄāļąāđ‰āļĒ āđ‚āļ”āļĒāļ”āļđāļˆāļēāļāļ•āļąāļ§āđāļ›āļĢ “isOpen” āļŦāļēāļāļāļēāļĢāđŒāļ”āđ€āļ›āļīāļ”āļ­āļĒāļđāđˆāđāļĨāđ‰āļ§ āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļˆāļ° return āļāļĨāļąāļĄāļēāđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāļ­āļ°āđ„āļĢāđ€āļĨāļĒ āđāļ•āđˆāļ–āđ‰āļēāđ„āļĄāđˆāđ€āļ‚āđ‰āļēāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļˆāļ°āđƒāļŦāđ‰ “isOpen” āđ€āļ›āđ‡āļ™ true āļŦāļĄāļēāļĒāļ–āļķāļ‡āļāļēāļĢāđŒāļ”āđ€āļ›āļīāļ”āļ­āļĒāļđāđˆāđƒāļ™āļ‚āļ“āļ°āļ™āļĩāđ‰ āđāļĨāļ°āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ„āļ›āļšāļ™ console āđƒāļ™ Unity āđ‚āļ”āļĒāđƒāļŠāđ‰āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Debug.Log() āđ€āļžāļ·āđˆāļ­āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļāļēāļĢāđŒāļ”

    public string GetCardInfo()
    {
        return cardInfo;
    }

āļŠāļļāļ”āļ—āđ‰āļēāļĒāđ€āļĢāļēāļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ “GetCardInfo()” āđ€āļžāļ·āđˆāļ­ return āļ„āđˆāļēāļ‚āļ­āļ‡ “cardInfo” āļĄāļēāđƒāļŠāđ‰āđāļĨāļ°āđ‚āļ„āđ‰āļ”āđāļšāļšāđ€āļ•āđ‡āļĄāļŠāļēāļĄāļēāļĢāļ–āļ”āļđāđ„āļ”āđ‰āļ—āļĩāđˆāļ”āđ‰āļēāļ™āļĨāđˆāļēāļ‡āđ„āļ”āđ‰āđ€āļĨāļĒ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class Card : MonoBehaviour
{
    public string cardInfo; 

    private bool isOpen = false;

    public void OpenCard()
    {
        if (isOpen)
        {
            return;
        }

        isOpen = true;
        Debug.Log("Card opened: " + cardInfo);
    }

    public string GetCardInfo()
    {
        return cardInfo;
    }
}

3. āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āđƒāļ™āļŠāđˆāļ§āļ™ GameManager āļ•āļąāļ§āļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđ€āļĨāđˆāļ™āđ€āļāļĄāļŦāļĨāļąāļ

using UnityEngine;
using UnityEngine.UI;

public class GameManagers : MonoBehaviour
{
    public CardShuffler cardShuffler;

    public GameObject blackbox;
    public Image resultImage;
    public Button cardA;
    public Button cardB;
    public Button cardC;

    public Sprite winSprite; // Assign the win sprite in the Inspector
    public Sprite loseSprite; // Assign the lose sprite in the Inspector

    public bool gameEnded = false;

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ āļ—āļēāļ‡āļœāļĄāļ›āļĢāļ°āļāļēāļĻāđ€āļ›āđ‡āļ™ GameManagers āđ€āļ•āļīāļĄ s āļ™āļ°āļ„āļĢāļąāļšāđ€āļ™āļ·āđˆāļ­āļ‡āļ”āđ‰āļ§āļĒāļŠāļ·āđˆāļ­ GameManager āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āđ„āļ”āđ‰āđ€āļžāļĢāļēāļ°āđ€āļ›āđ‡āļ™ Global

āļĄāļēāļāļąāļ™āļ—āļĩāđˆāļŠāđˆāļ§āļ™āđāļĢāļāļāļąāļ™āļāđˆāļ­āļ™āļ™āļ°āļ„āļĢāļąāļš āđ€āļĢāļēāļˆāļ°āļ›āļĢāļ°āļāļēāļĻāļŠāļĢāđ‰āļēāļ‡ Object āļāļĨāđˆāļ­āļ‡āļ”āļģāļ‚āļķāđ‰āļ™āļĄāļē āļāļąāļš Image āļŠāļģāļŦāļĢāļąāļšāđ€āļāļĄāļĢāļđāļ›āļāļēāļĢāđŒāļ”āđ€āļ‰āļĨāļĒāđāļĨāļ° Button āļ‚āļ­āļ‡āļāļēāļĢāđŒāļ”āļ—āļąāđ‰āļ‡ 3 āđƒāļš āļĢāļ§āļĄāđ„āļ›āļ–āļķāļ‡āļĢāļđāļ›āļ āļēāļžāđ€āļĄāļ·āđˆāļ­āļŠāļ™āļ°āļāļąāļšāđāļžāđ‰āļāļąāļ™āļ™āļ°āļ„āļĢāļąāļš āđāļĨāļ°āļˆāļąāļ”āļ—āļģāļ•āļąāļ§āđ€āļŠāđ‡āļ„ āđ€āļāļĄāļˆāļšāđ€āļ­āļēāđ„āļ§āđ‰āđ‚āļ”āļĒāļ•āļąāđ‰āļ‡āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ false āđ„āļ§āđ‰āļāđˆāļ­āļ™

private void Start()
    {
        cardA.onClick.AddListener(() => OnCardClick(cardA));
        //Debug.Log(cardA.onClick.GetPersistentEventCount());
        cardB.onClick.AddListener(() => OnCardClick(cardB));
        cardC.onClick.AddListener(() => OnCardClick(cardC));
    }

    private void Update()
    {
        if (IsGameEnded())
        {
            blackbox.gameObject.SetActive(false);
        }
    }

āļ•āđˆāļ­āļĄāļēāđ€āļĢāļēāļˆāļ°āļĄāļēāļŠāļĢāđ‰āļēāļ‡āļĨāļģāļ”āļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™ āđ€āļĄāļ·āđˆāļ­āđ€āļāļĄāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļāļąāļ™ āđ‚āļ”āļĒāļ•āļąāđ‰āļ‡āđ„āļ§āđ‰āļ§āđˆāļē āđ€āļĄāļ·āđˆāļ­āļœāļđāđ‰āđ€āļĨāđˆāļ™ āļ„āļĨāļīāļāļāļēāļĢāđŒāļ” āđƒāļŦāđ‰āļ—āļģāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ āđ‚āļ”āļĒāļ§āļīāļ˜āļĩāļ—āļ”āļŠāļ­āļšāļāđ‡āđ„āļ”āđ‰āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡ Debug.Log āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Update() āļāđ‡āđ„āļ”āđ‰āļ•āļąāđ‰āļ‡āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āđ„āļ§āđ‰āļ§āđˆāļēāļ–āđ‰āļēāđ€āļāļĄāļˆāļšāđƒāļŦāđ‰āđ€āļ›āļīāļ”āļāļĨāđˆāļ­āļ‡āļ”āļģāđ€āļ‰āļĨāļĒ āļ­āļ­āļāļĄāļē

private void OnCardClick(Button selectedCard)
    {
        Debug.Log("clicked");
        if (gameEnded)
        {
            return; // Ignore clicks after the game has ended
        }

        CardButton cardButton = selectedCard.GetComponent();
        
        if (cardButton != null)
        {
            cardButton.ShowCardResult(cardButton.isCorrectCard);
        }
    }

    public bool IsGameEnded()
    {
        return gameEnded;
    }

    public void SetGameEnded(bool value)
    {
        gameEnded = value;
    }

    public Sprite GetWinSprite()
    {
        return winSprite;
    }

    public Sprite GetLoseSprite()
    {
        return loseSprite;
    }
    public void Trigger_card()
    {
         cardShuffler.Trigger_shuffle();
    }
}

āļŠāđˆāļ§āļ™āļ•āđˆāļ­āļĄāļēāļˆāļ°āđ€āļ›āđ‡āļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ OnCardClick() āļ—āļĩāđˆāđƒāļŠāđ‰āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļāļĢāļ°āļ—āļģāđ€āļĨāļ·āļ­āļāļāļēāļĢāđŒāļ”āļ‚āļ­āļ‡āļœāļđāđ‰āđ€āļĨāđˆāļ™

āđāļĨāļ°āļŠāđˆāļ§āļ™āļ—āļĩāđˆāđ€āļŦāļĨāļ·āļ­āļāđ‡āļˆāļ°āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ Return āđāļšāļšāļ—āļąāđˆāļ§āđ„āļ›āđ€āļĨāļĒāļ„āļĢāļąāļš āļ›āļīāļ”āļ—āđ‰āļēāļĒāļ”āđ‰āļ§āļĒāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Triger_card() āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āđƒāļŦāđ‰āđ€āļĄāļ·āđˆāļ­āđ€āļĢāļīāđˆāļĄāđ€āļāļĄāđ€āļĢāļīāđˆāļĄāļŠāļĨāļąāļšāļ•āļģāđāļŦāļ™āđˆāļ‡āļāļēāļĢāđŒāļ”āļ—āļļāļāļ„āļĢāļąāđ‰āļ‡ āļ–āđ‰āļēāđ€āļŠāļĢāđ‡āļˆāđ€āļĢāļĩāļĒāļšāļĢāđ‰āļ­āļĒāđāļĨāđ‰āļ§āđ‚āļ„āđ‰āļ”āļ•āļąāļ§āđ€āļ•āđ‡āļĄāļāđ‡āļˆāļ°āđ„āļ”āđ‰āļŦāļ™āđ‰āļēāļ•āļēāđāļšāļšāļ™āļĩāđ‰āđ€āļĨāļĒāļ„āļĢāļąāļš

using UnityEngine;
using UnityEngine.UI;

public class GameManagers : MonoBehaviour
{
    public CardShuffler cardShuffler;

    public GameObject blackbox;
    public Image resultImage;
    public Button cardA;
    public Button cardB;
    public Button cardC;

    public Sprite winSprite; // Assign the win sprite in the Inspector
    public Sprite loseSprite; // Assign the lose sprite in the Inspector

    public bool gameEnded = false;

    private void Start()
    {
        cardA.onClick.AddListener(() => OnCardClick(cardA));
        //Debug.Log(cardA.onClick.GetPersistentEventCount());
        cardB.onClick.AddListener(() => OnCardClick(cardB));
        cardC.onClick.AddListener(() => OnCardClick(cardC));
    }

    private void Update()
    {
        if (IsGameEnded())
        {
            blackbox.gameObject.SetActive(false);
        }
    }
    private void OnCardClick(Button selectedCard)
    {
        Debug.Log("clicked");
        if (gameEnded)
        {
            return; // Ignore clicks after the game has ended
        }

        CardButton cardButton = selectedCard.GetComponent();
        
        if (cardButton != null)
        {
            cardButton.ShowCardResult(cardButton.isCorrectCard);
        }
    }

    public bool IsGameEnded()
    {
        return gameEnded;
    }

    public void SetGameEnded(bool value)
    {
        gameEnded = value;
    }

    public Sprite GetWinSprite()
    {
        return winSprite;
    }

    public Sprite GetLoseSprite()
    {
        return loseSprite;
    }
    public void Trigger_card()
    {
         cardShuffler.Trigger_shuffle();
    }
}

3. āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āđƒāļ™āļŠāđˆāļ§āļ™ GameManager āļ•āļąāļ§āļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđ€āļĨāđˆāļ™āđ€āļāļĄāļŦāļĨāļąāļ

using UnityEngine;
using UnityEngine.UI;

public class GameManagers : MonoBehaviour
{
    public CardShuffler cardShuffler;

    public GameObject blackbox;
    public Image resultImage;
    public Button cardA;
    public Button cardB;
    public Button cardC;

    public Sprite winSprite; // Assign the win sprite in the Inspector
    public Sprite loseSprite; // Assign the lose sprite in the Inspector

    public bool gameEnded = false;

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ āļ—āļēāļ‡āļœāļĄāļ›āļĢāļ°āļāļēāļĻāđ€āļ›āđ‡āļ™ GameManagers āđ€āļ•āļīāļĄ s āļ™āļ°āļ„āļĢāļąāļšāđ€āļ™āļ·āđˆāļ­āļ‡āļ”āđ‰āļ§āļĒāļŠāļ·āđˆāļ­ GameManager āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āđ„āļ”āđ‰āđ€āļžāļĢāļēāļ°āđ€āļ›āđ‡āļ™ Global

āļĄāļēāļāļąāļ™āļ—āļĩāđˆāļŠāđˆāļ§āļ™āđāļĢāļāļāļąāļ™āļāđˆāļ­āļ™āļ™āļ°āļ„āļĢāļąāļš āđ€āļĢāļēāļˆāļ°āļ›āļĢāļ°āļāļēāļĻāļŠāļĢāđ‰āļēāļ‡ Object āļāļĨāđˆāļ­āļ‡āļ”āļģāļ‚āļķāđ‰āļ™āļĄāļē āļāļąāļš Image āļŠāļģāļŦāļĢāļąāļšāđ€āļāļĄāļĢāļđāļ›āļāļēāļĢāđŒāļ”āđ€āļ‰āļĨāļĒāđāļĨāļ° Button āļ‚āļ­āļ‡āļāļēāļĢāđŒāļ”āļ—āļąāđ‰āļ‡ 3 āđƒāļš āļĢāļ§āļĄāđ„āļ›āļ–āļķāļ‡āļĢāļđāļ›āļ āļēāļžāđ€āļĄāļ·āđˆāļ­āļŠāļ™āļ°āļāļąāļšāđāļžāđ‰āļāļąāļ™āļ™āļ°āļ„āļĢāļąāļš āđāļĨāļ°āļˆāļąāļ”āļ—āļģāļ•āļąāļ§āđ€āļŠāđ‡āļ„ āđ€āļāļĄāļˆāļšāđ€āļ­āļēāđ„āļ§āđ‰āđ‚āļ”āļĒāļ•āļąāđ‰āļ‡āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ false āđ„āļ§āđ‰āļāđˆāļ­āļ™

private void Start()
    {
        cardA.onClick.AddListener(() => OnCardClick(cardA));
        //Debug.Log(cardA.onClick.GetPersistentEventCount());
        cardB.onClick.AddListener(() => OnCardClick(cardB));
        cardC.onClick.AddListener(() => OnCardClick(cardC));
    }

    private void Update()
    {
        if (IsGameEnded())
        {
            blackbox.gameObject.SetActive(false);
        }
    }

āļ•āđˆāļ­āļĄāļēāđ€āļĢāļēāļˆāļ°āļĄāļēāļŠāļĢāđ‰āļēāļ‡āļĨāļģāļ”āļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™ āđ€āļĄāļ·āđˆāļ­āđ€āļāļĄāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļāļąāļ™ āđ‚āļ”āļĒāļ•āļąāđ‰āļ‡āđ„āļ§āđ‰āļ§āđˆāļē āđ€āļĄāļ·āđˆāļ­āļœāļđāđ‰āđ€āļĨāđˆāļ™ āļ„āļĨāļīāļāļāļēāļĢāđŒāļ” āđƒāļŦāđ‰āļ—āļģāļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡ āđ‚āļ”āļĒāļ§āļīāļ˜āļĩāļ—āļ”āļŠāļ­āļšāļāđ‡āđ„āļ”āđ‰āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡ Debug.Log āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Update() āļāđ‡āđ„āļ”āđ‰āļ•āļąāđ‰āļ‡āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āđ„āļ§āđ‰āļ§āđˆāļēāļ–āđ‰āļēāđ€āļāļĄāļˆāļšāđƒāļŦāđ‰āđ€āļ›āļīāļ”āļāļĨāđˆāļ­āļ‡āļ”āļģāđ€āļ‰āļĨāļĒ āļ­āļ­āļāļĄāļē

private void OnCardClick(Button selectedCard)
    {
        Debug.Log("clicked");
        if (gameEnded)
        {
            return; // Ignore clicks after the game has ended
        }

        CardButton cardButton = selectedCard.GetComponent();
        
        if (cardButton != null)
        {
            cardButton.ShowCardResult(cardButton.isCorrectCard);
        }
    }

    public bool IsGameEnded()
    {
        return gameEnded;
    }

    public void SetGameEnded(bool value)
    {
        gameEnded = value;
    }

    public Sprite GetWinSprite()
    {
        return winSprite;
    }

    public Sprite GetLoseSprite()
    {
        return loseSprite;
    }
    public void Trigger_card()
    {
         cardShuffler.Trigger_shuffle();
    }
}

āļŠāđˆāļ§āļ™āļ•āđˆāļ­āļĄāļēāļˆāļ°āđ€āļ›āđ‡āļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ OnCardClick() āļ—āļĩāđˆāđƒāļŠāđ‰āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļāļĢāļ°āļ—āļģāđ€āļĨāļ·āļ­āļāļāļēāļĢāđŒāļ”āļ‚āļ­āļ‡āļœāļđāđ‰āđ€āļĨāđˆāļ™

āđāļĨāļ°āļŠāđˆāļ§āļ™āļ—āļĩāđˆāđ€āļŦāļĨāļ·āļ­āļāđ‡āļˆāļ°āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ Return āđāļšāļšāļ—āļąāđˆāļ§āđ„āļ›āđ€āļĨāļĒāļ„āļĢāļąāļš āļ›āļīāļ”āļ—āđ‰āļēāļĒāļ”āđ‰āļ§āļĒāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Triger_card() āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āđƒāļŦāđ‰āđ€āļĄāļ·āđˆāļ­āđ€āļĢāļīāđˆāļĄāđ€āļāļĄāđ€āļĢāļīāđˆāļĄāļŠāļĨāļąāļšāļ•āļģāđāļŦāļ™āđˆāļ‡āļāļēāļĢāđŒāļ”āļ—āļļāļāļ„āļĢāļąāđ‰āļ‡ āļ–āđ‰āļēāđ€āļŠāļĢāđ‡āļˆāđ€āļĢāļĩāļĒāļšāļĢāđ‰āļ­āļĒāđāļĨāđ‰āļ§āđ‚āļ„āđ‰āļ”āļ•āļąāļ§āđ€āļ•āđ‡āļĄāļāđ‡āļˆāļ°āđ„āļ”āđ‰āļŦāļ™āđ‰āļēāļ•āļēāđāļšāļšāļ™āļĩāđ‰āđ€āļĨāļĒāļ„āļĢāļąāļš

using UnityEngine;
using UnityEngine.UI;

public class GameManagers : MonoBehaviour
{
    public CardShuffler cardShuffler;

    public GameObject blackbox;
    public Image resultImage;
    public Button cardA;
    public Button cardB;
    public Button cardC;

    public Sprite winSprite; // Assign the win sprite in the Inspector
    public Sprite loseSprite; // Assign the lose sprite in the Inspector

    public bool gameEnded = false;

    private void Start()
    {
        cardA.onClick.AddListener(() => OnCardClick(cardA));
        //Debug.Log(cardA.onClick.GetPersistentEventCount());
        cardB.onClick.AddListener(() => OnCardClick(cardB));
        cardC.onClick.AddListener(() => OnCardClick(cardC));
    }

    private void Update()
    {
        if (IsGameEnded())
        {
            blackbox.gameObject.SetActive(false);
        }
    }
    private void OnCardClick(Button selectedCard)
    {
        Debug.Log("clicked");
        if (gameEnded)
        {
            return; // Ignore clicks after the game has ended
        }

        CardButton cardButton = selectedCard.GetComponent();
        
        if (cardButton != null)
        {
            cardButton.ShowCardResult(cardButton.isCorrectCard);
        }
    }

    public bool IsGameEnded()
    {
        return gameEnded;
    }

    public void SetGameEnded(bool value)
    {
        gameEnded = value;
    }

    public Sprite GetWinSprite()
    {
        return winSprite;
    }

    public Sprite GetLoseSprite()
    {
        return loseSprite;
    }
    public void Trigger_card()
    {
         cardShuffler.Trigger_shuffle();
    }
}

4. āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ” āđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡āļ„āļĨāļēāļŠ CardShuffler āļŠāļģāļŦāļĢāļąāļšāļŠāļĨāļąāļšāļ•āļģāđāļŦāļ™āđˆāļ‡āļāļēāļĢāđŒāļ”āđ‚āļ”āļĒāđƒāļ™āļŠāđˆāļ§āļ™āļ™āļĩāđ‰āđ€āļĢāļēāļˆāļ°āļ•āđ‰āļ­āļ‡

āļ—āļģāļāļēāļĢāļ›āļĢāļ°āļāļēāļĻāļŠāļĢāđ‰āļēāļ‡ Image āļ‚āļķāđ‰āļ™āļĄāļē 3 āļ•āļąāļ§āđ€āļžāļ·āđˆāļ­āđ„āļ§āđ‰āđƒāļŠāđ‰āđ€āļāđ‡āļšāļ•āļģāđāļŦāļ™āđˆāļ‡āļāļēāļĢāđŒāļ”āđāļ•āđˆāļĨāļ°āđƒāļš āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ StoreStartingPositions() āļ—āļĩāđˆāļˆāļąāļ”āļ•āļģāđāļŦāļ™āđˆāļ‡āļ‚āļ­āļ‡āļāļēāļĢāđŒāļ”āđāļ•āđˆāļĨāļ°āđƒāļš

using UnityEngine;

public class CardShuffler : MonoBehaviour
{
    public RectTransform[] cards;
    private Vector2[] startingPositions;
    public GameObject CardA;
    public GameObject CardB;
    public GameObject CardC;

    private void StoreStartingPositions()
    {
        startingPositions = new Vector2[3];
        startingPositions[0] = CardA.transform.position;
        startingPositions[1] = CardB.transform.position;
        startingPositions[2] = CardC.transform.position;
    }

āļ‚āļąāđ‰āļ™āļ•āđˆāļ­āļĄāļēāđƒāļŦāđ‰āļŠāļĢāđ‰āļēāļ‡ āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Shufflecards() āļ‚āļķāđ‰āļ™āļĄāļē āđ€āļžāļ·āđˆāļ­āļŠāļĨāļąāļšāļ•āļģāđāļŦāļ™āđˆāļ‡āļ‚āļ­āļ‡āļāļēāļĢāđŒāļ”āđāļ•āđˆāļĨāļ°āđƒāļš āđāļĨāļ°āļ•āļēāļĄāļ”āđ‰āļ§āļĒāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ UpdateCardPostions() āļ—āļĩāđˆāđƒāļŠāđ‰āļŠāļļāđˆāļĄāļ•āļģāđāļŦāļ™āđˆāļ‡āđƒāļ™āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđ‚āļ”āļĒāļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļˆāļēāļāļ•āļģāđāļŦāļ™āđˆāļ‡āļāļēāļĢāđŒāļ”āđāļ•āđˆāļĨāļ°āđƒāļšāđƒāļŦāđ‰āļŠāļĨāļąāļšāļ—āļĩāđˆāļāļąāļ™

private void ShuffleCards()
    {
        Vector2 tempPosition = startingPositions[0];
        startingPositions[0] = startingPositions[2];
        startingPositions[2] = tempPosition;
    }

    private void UpdateCardPositions()
    {
        int n = cards.Length;
        while (n > 1)
        {
            n--;
            int k = Random.Range(0, n + 1);

            Vector2 tempPosition = cards[k].anchoredPosition;
            cards[k].anchoredPosition = cards[n].anchoredPosition;
            cards[n].anchoredPosition = tempPosition;
        }
        }

āļ›āļīāļ”āļ—āđ‰āļēāļĒāļāļąāļ™āļ”āđ‰āļ§āļĒāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Trigger_shuffle() āđ€āļžāļ·āđˆāļ­āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ•āđˆāļēāļ‡āđ†āļ—āļĩāđˆāđ€āļĢāļēāđ„āļ”āđ‰āđ€āļ‚āļĩāļĒāļ™āļ‚āļķāđ‰āļ™āļĄāļē āđ‚āļ”āļĒāđƒāļŦāđ‰āļĨāļģāļ”āļąāļšāđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ€āļ­āļēāđ„āļ§āđ‰ āđāļĨāļ°āļĄāļĩ Debug.Log āđ„āļ§āđ‰āļŠāļģāļŦāļĢāļąāļšāļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ—āļļāļāļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆāļĢāļąāļ™āļ§āđˆāļē āļĄāļąāļ™āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ›āļāļ•āļīāļŦāļĢāļ·āļ­āđ„āļĄāđˆ

 public void Trigger_shuffle()
    {
        StoreStartingPositions();
        ShuffleCards();
        UpdateCardPositions();
        Debug.Log("full"); //āļŠāļģāļŦāļĢāļąāļšāđ€āļŠāđ‡āļ„ Debug āļ§āđˆāļēāļ—āļģāļ‡āļēāļ™āđ„āļŦāļĄ
    }
}

āđ€āļĄāļ·āđˆāļ­āđ€āļžāļ·āđˆāļ­āļ™āđ†āļ—āļļāļāļ„āļ™āļ—āļģāđ€āļŠāļĢāđ‡āļˆāđāļĨāđ‰āļ§āļāđ‡āđ‚āļ„āđ‰āļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰ āļŦāļĢāļ·āļ­āđƒāļ„āļĢāļ­āļĒāļēāļāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ­āļ°āđ„āļĢāļāđ‡āļĨāļ­āļ‡āļ”āļđāđ„āļ”āđ‰āļ™āļ°āļ„āļĢāļąāļš

using UnityEngine;

public class CardShuffler : MonoBehaviour
{
    public RectTransform[] cards;
    private Vector2[] startingPositions;
    public GameObject CardA;
    public GameObject CardB;
    public GameObject CardC;

    private void StoreStartingPositions()
    {
        startingPositions = new Vector2[3];
        startingPositions[0] = CardA.transform.position;
        startingPositions[1] = CardB.transform.position;
        startingPositions[2] = CardC.transform.position;
    }

    private void ShuffleCards()
    {
        Vector2 tempPosition = startingPositions[0];
        startingPositions[0] = startingPositions[2];
        startingPositions[2] = tempPosition;
    }

    private void UpdateCardPositions()
    {
        int n = cards.Length;
        while (n > 1)
        {
            n--;
            int k = Random.Range(0, n + 1);

            Vector2 tempPosition = cards[k].anchoredPosition;
            cards[k].anchoredPosition = cards[n].anchoredPosition;
            cards[n].anchoredPosition = tempPosition;
        }
        }
    public void Trigger_shuffle()
    {
        StoreStartingPositions();
        ShuffleCards();
        UpdateCardPositions();
        Debug.Log("full"); //āļŠāļģāļŦāļĢāļąāļšāđ€āļŠāđ‡āļ„ Debug āļ§āđˆāļēāļ—āļģāļ‡āļēāļ™āđ„āļŦāļĄ
    }
}

āđ€āļĄāļ·āđˆāļ­āđ€āļžāļ·āđˆāļ­āļ™āđ†āđ€āļ‚āļĩāļĒāļ™ Script āļ™āļĩāđ‰āđ€āļŠāļĢāđ‡āļˆāđāļĨāđ‰āļ§āļ­āļĒāđˆāļēāļĨāļ·āļĄāđ„āļ›āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ Script āđƒāļ™ Holder card āļ—āļĩāđˆāļˆāļąāļ”āđ€āļāđ‡āļšāļŠāļļāļ”āļāļēāļĢāđŒāļ”āļ—āļąāđ‰āļ‡ 3 āđƒāļšāđ„āļ§āđ‰āļ”āđ‰āļ§āļĒāļ™āļ°āļ„āļĢāļąāļšāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰ shuffle āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰

āļœāļĨāļĨāļąāļžāļ˜āđŒāļāļˆāļ°āđ„āļ”āđ‰āļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰āđ€āļĨāļĒ āđ€āļĄāļ·āđˆāļ­āđ€āļĢāļīāđˆāļĄāđ€āļĨāđˆāļ™āđƒāļŦāļĄāđˆāđāļ•āđˆāļĨāļ°āļ„āļĢāļąāđ‰āļ‡ āļ•āļģāđāļŦāļ™āđˆāļ‡āļāļēāļĢāđŒāļ”āļˆāļ°āļ–āļđāļāļŠāļĨāļąāļšāļ—āļļāļāļ„āļĢāļąāđ‰āļ‡

āđ€āļĄāļ·āđˆāļ­āđ€āļ‚āļĩāļĒāļ™ Scripts CardButton āđ€āļŠāļĢāđ‡āļˆāđāļĨāđ‰āļ§āļ­āļĒāđˆāļēāļĨāļ·āļĄ āļ™āļģāđ„āļ›āļœāļđāļāļāļąāļš āļ•āļąāļ§āļāļēāļĢāđŒāļ”āđāļ•āđˆāļĨāļ°āđƒāļšāļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āđ„āļ§āđ‰āļ”āđ‰āļ§āļĒāļ™āļ° āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰ Scripts āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰

using UnityEngine;
using UnityEngine.UI;

public class CardButton : MonoBehaviour
{
    public GameManagers gameManager;
    public Image resultImage;
    public bool isCorrectCard;

    public Button Button_play;
    

āļŠāļĢāđ‰āļēāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ ShowCardResult() āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āđ„āļ§āđ‰āđƒāļŠāđ‰āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āđˆāļēāļāļēāļĢāđŒāļ”āļ—āļĩāđˆāļœāļđāđ‰āđ€āļĨāđˆāļ™āđ€āļĨāļ·āļ­āļāļ™āļąāđ‰āļ™āļ•āļĢāļ‡āļāļąāļšāđ€āļ‰āļĨāļŦāļĢāļ·āļ­āđ„āļĄāđˆāļ–āđ‰āļēāļ•āļĢāļ‡āļāđ‡āļˆāļ°āļ—āļģāļ‡āļēāļ™āđƒāļ™āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļ—āļĩāđˆāđ€āļĢāļēāđ„āļ”āđ‰āļ•āļąāđ‰āļ‡āđ€āļ­āļēāđ„āļ§āđ‰

public void ShowCardResult(bool isCorrect)
    {
        Debug.Log("clicked");
        if (isCorrect)
        {
            resultImage.sprite = gameManager.GetWinSprite();
            Debug.Log("You win!");
        }
        else
        {
            resultImage.sprite = gameManager.GetLoseSprite();
            Debug.Log("You lose!");
        }

        resultImage.gameObject.SetActive(true);
        gameManager.SetGameEnded(true);
    }
}

āļŠāļģāļŦāļĢāļąāļšāđ‚āļ„āđ‰āļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ‚āļ­āļ‡āļŠāđˆāļ§āļ™āļŠāļļāļ”āļ—āđ‰āļēāļĒāļ–āđ‰āļēāđ€āļŠāļĢāđ‡āļˆāđ€āļĢāļĩāļĒāļšāļĢāđ‰āļ­āļĒāļāđ‡āļˆāļ°āđ„āļ”āđ‰āđāļšāļšāļ™āļĩāđ‰āđ€āļĨāļĒāļ„āļĢāļąāļš

using UnityEngine;
using UnityEngine.UI;

public class CardButton : MonoBehaviour
{
    public GameManagers gameManager;
    public Image resultImage;
    public bool isCorrectCard;

    public Button Button_play;
    

    public void ShowCardResult(bool isCorrect)
    {
        Debug.Log("clicked");
        if (isCorrect)
        {
            resultImage.sprite = gameManager.GetWinSprite();
            Debug.Log("You win!");
        }
        else
        {
            resultImage.sprite = gameManager.GetLoseSprite();
            Debug.Log("You lose!");
        }

        resultImage.gameObject.SetActive(true);
        gameManager.SetGameEnded(true);
    }
}

āļ­āļĒāđˆāļēāļĨāļ·āļĄ āđ„āļ›āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ āđ‚āļ„āđ‰āļ”āļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļĄāļē āļ”āđ‰āļ§āļĒāļ™āļ°āļ„āļĢāļąāļšāđƒāļ™ Unity āđƒāļ™ Object āđāļ•āđˆāļĨāļ°āļ•āļąāļ§āļ§āđˆāļēāđƒāļŠāđ‰āļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡āļāđ‡āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ•āļēāļĄāļ āļēāļžāđ„āļ”āđ‰āđ€āļĨāļĒāļ™āļ°āļ„āļĢāļąāļš āđ€āļŠāđˆāļ™ āļāļēāļĢāđŒāļ”āđāļ•āđˆāļĨāļ°āđƒāļš , āļāļēāļĢāđŒāļ”āđ€āļ‰āļĨāļĒ āļĢāļ§āļĄāđ„āļ›āļ–āļķāļ‡ GameManager āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ•āļąāļ§āļ”āļģāđ€āļ™āļīāļ™āđ€āļāļĄāļ”āđ‰āļ§āļĒāļ™āļ°āļ„āļĢāļąāļš

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ—āļĩāđˆ 4 : āļ—āļ”āļĨāļ­āļ‡āđ€āļĨāđˆāļ™āđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļāļĄ

āđ€āļ­āļēāļĨāļ°āļ–āđ‰āļēāļœāđˆāļēāļ™āļĄāļēāļ–āļķāļ‡āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ™āļĩāđ‰āļāđ‡āđ„āļĄāđˆāļĄāļĩāļ­āļ°āđ„āļĢāļĄāļēāļāđāļĨāđ‰āļ§ āļ‚āļ­āļšāļ„āļļāļ“āļ—āļĩāđˆāđ€āļŦāļ™āļ·āđˆāļ­āļĒāļĒāļēāļāļāļąāļ™āļĄāļēāļ™āļ°āļ„āļĢāļąāļš

āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ™āļĩāđ‰āđ€āļĢāļēāļāđ‡āļˆāļ°āļ—āļģāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ•āļąāļ§āđ€āļāļĄ Guess Card āļāļąāļ™

  • āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ›āļāļ•āļīāđ„āļŦāļĄ
  • āļĄāļĩāļ›āļąāļāļŦāļēāļ•āļĢāļ‡āđ„āļŦāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ
  • āļ—āļ”āļĨāļ­āļ‡āļ›āļĨāđˆāļ­āļĒ āđ€āļāļĄ āđƒāļŦāđ‰āđ€āļžāļ·āđˆāļ­āļ™āđ† āļŦāļĢāļ·āļ­āļ„āļ™āļĢāļđāđ‰āļˆāļąāļāđ€āļĨāđˆāļ™āļ”āļđ āđ€āļžāļ·āđˆāļ­āļŦāļē Feedback āļĄāļēāļžāļąāļ’āļ™āļēāđ€āļāļĄāđƒāļŦāđ‰āļ”āļĩāļ‚āļķāđ‰āļ™

āđ‚āļ”āļĒāļ™āļĩāđ‰āļˆāļ°āđ€āļ›āđ‡āļ™ interface āđƒāļ™āļ•āļąāļ§āđ€āļāļĄāđāļšāļšāļ–āđ‰āļē Player āļ•āļ­āļšāļ–āļđāļāļ™āļ°āļ„āļĢāļąāļš āļŠāđˆāļ§āļ™āļŦāļ™āđ‰āļēāļ•āļ­āļšāļœāļīāļ” āļ–āđ‰āļēāļ­āļĒāļēāļāļĢāļđāđ‰āļāđ‡āđ„āļ›āļĨāļ­āļ‡ āđ‚āļŦāļĨāļ”āļĄāļēāļ—āļ”āļŠāļ­āļšāđ€āļĨāđˆāļ™āļāļąāļ™āļ”āļđāđ„āļ”āđ‰āļ™āļ°āļ„āļĢāļąāļš āđāļĨāļ°āļŠāļģāļŦāļĢāļąāļšāļ—āļļāļāļ„āļ™āļ—āļĩāđˆāļĄāļēāļ–āļķāļ‡āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ™āļĩāđ‰āļāđ‡āļˆāļ°āđ„āļ”āđ‰ Guess Card Game āļāļąāļ™āđāļĨāđ‰āļ§

āļŠāļģāļŦāļĢāļąāļš āļ„āļ™āļ—āļĩāđˆāļŠāļ™āđƒāļˆāļ­āļĒāļēāļāļˆāļ°āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļŦāļĢāļ·āļ­āļ™āļģāđ„āļ›āļžāļąāļ’āļ™āļēāļ•āđˆāļ­āļāđ‡āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰āđ€āļĨāļĒ āđ‚āļ”āļĒāļ—āļēāļ‡āļœāļĄāļˆāļ°āļ—āļīāđ‰āļ‡āļĨāļīāļ‡āļāđŒāļ•āļąāļ§āđ€āļāļĄāđ„āļ§āđ‰āđƒāļŦāđ‰āļŠāļģāļŦāļĢāļąāļšāđƒāļ„āļĢāļ—āļĩāđˆāļ­āļĒāļēāļāļ™āļģāđ„āļ›āļŠāļēāļ™āļ•āđˆāļ­āļāđ‡āđ€āļŠāļīāļāđ€āļĨāļĒāļ„āļĢāļąāļšāļœāļĄ āļ–āđ‰āļēāđƒāļ„āļĢāļĄāļĩāļ›āļąāļāļŦāļēāļŦāļĢāļ·āļ­āļĒāļąāļ‡āđ„āļ‡āļāđ‡āļĄāļē āļ­āļąāļžāđ€āļ”āļ• āđƒāļŦāđ‰āļ—āļĢāļēāļšāļāļąāļ™āđ„āļ”āđ‰āļ™āļ°āļ„āļĢāļąāļš āđāļ•āđˆāļāđˆāļ­āļ™āļˆāļ°āļˆāļēāļāļāļąāļ™āđ„āļ›āđāļ§āļ°āļĄāļēāđāļ™āļ°āļ™āļģāđāļ™āļ§āļ—āļēāļ‡āļ•āđˆāļ­āļĒāļ­āļ”āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ­āļĩāļāļŠāļąāļāļŦāļ™āđˆāļ­āļĒ āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļŠāļĢāļīāļĄāļ•āļąāļ§āđ€āļāļĄāļ”āđ‰āļ§āļĒāļāļēāļĢāđƒāļŠāđ‰ Animation āđƒāļŦāđ‰āđ€āļāļĄāļ”āļđāļ™āđˆāļēāđ€āļĨāđˆāļ™āļĄāļēāļāļ‚āļķāđ‰āļ™ āļˆāļ°āļĄāļĩāļ§āļīāļ˜āļĩāļāļēāļĢāļ”āļąāļ‡āļ™āļĩāđ‰

1. Animation āļāļēāļĢāđ€āļ›āļīāļ”āļāļēāļĢāđŒāļ”āđ€āļ‰āļĨāļĒ āđ‚āļ”āļĒāļāļēāļĢāļ„āļĨāļīāļāļ—āļĩāđˆ Choice Animator āļ—āļĩāđˆāđ€āļĢāļēāļŠāļĢāđ‰āļēāļ‡āļĄāļē āđāļĨāļ°āļ„āļĨāļīāļ Animation → āļāļ”āļ›āļļāđˆāļĄāļ­āļąāļ” āļˆāļ°āđ„āļ”āđ‰āđ€āļ›āđ‡āļ™ Animation āļ•āļ­āļ™āđ€āļ›āļīāļ”āļāļēāļĢāđŒāļ”āđ€āļ‰āļĨāļĒāļ„āļĢāļēāļ§āđ†āļ›āļĢāļ°āļĄāļēāļ“āļ™āļĩāđ‰āļ„āļĢāļąāļšāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļ‚āđ‰āļēāđƒāļˆāđāļ™āļ°āļ™āļģāđƒāļŦāđ‰āļ”āļđāļ„āļĨāļīāļ›

(7) How To Build Rock Paper Scissors Game | Unity Tutorial – YouTube āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ„āļ”āđ‰āļ„āļĢāļąāļšāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļ‚āđ‰āļēāđƒāļˆāļŠāļąāļ”āđ€āļˆāļ™āļ‚āļķāđ‰āļ™ āđ€āļĢāļīāđˆāļĄāļ—āļĩāđˆāļ§āļīāļ™āļēāļ—āļĩ 12.45 āļ™āļ°āļ„āļĢāļąāļš

2. Animation āļāļēāļĢāđŒāļ”āļ•āļ­āļ™āđ€āļĢāļīāđˆāļĄ Game āļ—āļĩāđˆāļžāļĢāđ‰āļ­āļĄāļāļąāļš Shuffle āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰āļ”āđ‰āļ§āļĒāļāļēāļĢ āļŠāļĢāđ‰āļēāļ‡ empty object āļ‚āļķāđ‰āļ™āļĄāļēāđāļĨāđ‰āļ§āļ—āļģāļāļēāļĢāļĒāđ‰āļēāļĒ UI Button āļāļēāļĢāđŒāļ” 3 āđƒāļšāđ„āļ›āđ„āļ§āđ‰āđƒāļ™āļ™āļąāđ‰āļ™āđāļĨāļ° set Animation āđ„āļ”āđ‰āđ€āļĨāļĒ āļšāļˆāļēāļāļ™āļąāđ‰āļ™āđƒāļŦāđ‰āđ€āļžāļ·āđˆāļ­āļ™āđ†āļ„āļĨāļīāļāļ‚āļ§āļēāļ—āļĩāđˆ frame āļŠāļļāļ”āļ—āđ‰āļēāļĒāļ‚āļ­āļ‡ Animation āđāļĨāđ‰āļ§āļ—āļģāļāļēāļĢāđ€āļĨāļ·āļ­āļ Add Animation Event āđāļĨāđ‰āļ§āļ™āļģ Scripts CardShuffler (Trigger_shuffle) āđ„āļ›āđƒāļŠāđˆ āđ€āļ—āđˆāļēāļ™āļĩāđ‰āļāđ‡āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™āļ„āļĢāļąāļš

āļˆāļēāļāļ™āļąāđ‰āļ™āđƒāļŦāđ‰āđ€āļžāļ·āđˆāļ­āļ™āđ†āļ„āļĨāļīāļāļ‚āļ§āļēāļ—āļĩāđˆ frame āļŠāļļāļ”āļ—āđ‰āļēāļĒāļ‚āļ­āļ‡ Animation āđāļĨāđ‰āļ§āļ—āļģāļāļēāļĢāđ€āļĨāļ·āļ­āļ Add Animation Event āđāļĨāđ‰āļ§āļ™āļģ Scripts CardShuffler (Trigger_shuffle) āđ„āļ›āđƒāļŠāđˆāđ€āļ—āđˆāļēāļ™āļĩāđ‰āļāđ‡āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™āļ„āļĢāļąāļš

āđāļ™āļ§āļ—āļēāļ‡āļ—āļĩāđˆ 2 āļŠāļģāļŦāļĢāļąāļšāđƒāļ„āļĢāļ—āļĩāđˆāļĨāļ­āļ‡āļ—āļģāļ•āļēāļĄāđāļĨāđ‰āļ§āļžāļšāļ›āļąāļāļŦāļē Layout āđƒāļ™āļŦāļ™āđ‰āļēāļ•āđˆāļēāļ‡ interface Game āļ—āļĩāđˆāđāļŠāļ”āļ‡āļœāļĨāđ„āļĄāđˆāļ•āļĢāļ‡āļāļąāļš Scene āļ™āļ°āļ„āļĢāļąāļš āđāļ™āļ§āļ—āļēāļ‡āđāļāđ‰āđƒāļŦāđ‰āđ€āļžāļ·āđˆāļ­āļ™āđ†āđ„āļ›āļ•āļĢāļ‡āļ‚āļ™āļēāļ”āļ—āļĩāđˆāđāļŠāļ”āļ‡āļœāļĨāđāļĨāđ‰āļ§āļ„āļĨāļīāļāđ„āļ› → āđ€āļĨāļ·āļ­āļ + → āđāļĨāđ‰āļ§āļ•āļĢāļ‡ width & height āđƒāļŦāđ‰āđƒāļŠāđˆāļ„āđˆāļē 1080×1920 āđ„āļ›āļ™āļ°āļ„āļĢāļąāļšāđ€āļ—āđˆāļēāļ™āļĩāđ‰āļāđ‡āļˆāļ°āđ„āļ”āđ‰ Layout āļ•āļĢāļ‡āļāļąāļšāđƒāļ™āļĢāļđāļ›āđāļĨāđ‰āļ§

EventSystem : āļŠāļģāļŦāļĢāļąāļšāļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđƒāļ™āđ€āļāļĄ āđ€āļĄāļ·āđˆāļ­āļāļ” Play āđāļĨāđ‰āļ§āļˆāļ°āļžāļšāļ§āđˆāļē āļœāļĨāļĨāļąāļžāļ˜āđŒ Cursor āđ€āļĄāļēāļŠāđŒāļ•āđˆāļēāļ‡āđ† āļĄāļąāļ™āļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļāļąāļšāļ­āļ°āđ„āļĢ āđ‚āļ”āļĒāļ§āļīāļ˜āļĩāļ™āļĩāđ‰ āđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāđāļāđ‰āđ€āļ§āļĨāļē āļ•āļīāļ”āļšāļąāļ„ āļŦāļĢāļ·āļ­āđ€āļĄāļēāļŠāđŒāđ„āļĄāđˆ Detect Object āđƒāļ™āļ‰āļēāļāđ€āļāļĄāļ™āļ°āļ„āļĢāļąāļš āđ‚āļ”āļĒāļœāļĄāđƒāļŠāđ‰āļ§āļīāļ˜āļĩāļ™āļĩāđ‰āđāļāđ‰āļˆāļ™āļŦāļēāļĒāļšāļąāļ„āļ™āļĩāđˆāļĨāļ° āļŪāđˆāļēâ€Ķ(;w;)

āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ āļŠāļģāļŦāļĢāļąāļšāļĄāļ·āļ­āđƒāļŦāļĄāđˆ : āļŠāļģāļŦāļĢāļąāļšāđƒāļ„āļĢāļŦāļĨāļēāļĒāđ†āļ„āļ™āļ—āļĩāđˆāļŠāļ‡āļŠāļąāļĒāļāļąāļ™āļ§āđˆāļēāļ—āļģāđ„āļĄ āđ€āļ§āļĨāļē āđ€āļ‚āļĩāļĒāļ™ Code āđƒāļ™ VS studio āđāļĨāđ‰āļ§āļžāļīāļĄāļžāđŒāļ„āļģāļŠāļąāđˆāļ‡āđ„āļĄāđˆāļ„āđˆāļ­āļĒāļ‚āļķāđ‰āļ™ āđƒāļŦāđ‰āđƒāļŠāđ‰āļ§āļīāļ˜āļĩāļ™āļĩāđ‰ āđ„āļ›āļ—āļĩāđˆ Unity → edit →preference -> external tools -> Regenrate project files

āļŦāļĨāļąāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āđƒāļŦāđ‰ Restart VS studio āđāļĨāđ‰āļ§āđ€āļ›āļīāļ”āđƒāļŦāļĄāđˆāļ”āļđāļ™āļ°āļ„āļĢāļąāļš āđāļĨāļ°āļŠāļģāļŦāļĢāļąāļšāđƒāļ„āļĢāļ—āļĩāđˆāļ­āļĒāļēāļāđ€āļ­āļēāļ•āļąāļ§āđ€āļāļĄāđ„āļ›āļĻāļķāļāļĐāļēāļ•āđˆāļ­āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļāļēāļĢ fork āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāđ„āļ”āđ‰āļ—āļĩāđˆāļĨāļīāļ‡āļāđŒāļ™āļĩāđ‰āđ€āļĨāļĒāļ„āđ‰āļēāļšāļšāļš https://github.com/ChairawichZ6/GuessCard-Game-by-FookIT.git ðŸ’ŧ🚀

āļĢāļ°āļšāļšāļāļķāļāļ—āļąāļāļĐāļ° āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ

āļ—āļĩāđˆāļžāļĢāđ‰āļ­āļĄāļ•āļĢāļ§āļˆāļœāļĨāļ‡āļēāļ™āļ„āļļāļ“ 24 āļŠāļąāđˆāļ§āđ‚āļĄāļ‡

  • āđ‚āļˆāļ—āļĒāđŒāļ›āļąāļāļŦāļēāļāļ§āđˆāļē 200 āļ‚āđ‰āļ­ āļ—āļĩāđˆāļĢāļ­āļ—āđ‰āļēāļ—āļēāļĒāļ„āļļāļ“āļ­āļĒāļđāđˆ
  • āļĢāļ­āļ‡āļĢāļąāļš 9 āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄāļŦāļĨāļąāļ āđ„āļĄāđˆāļ§āđˆāļēāļˆāļ° Java, Python, C āļāđ‡āđ€āļ‚āļĩāļĒāļ™āđ„āļ”āđ‰
  • āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āļŸāļĢāļĩ ! āļ„āļĢāļš 20 āļ‚āđ‰āļ­āļ‚āļķāđ‰āļ™āđ„āļ› āļĢāļąāļš Certificate āđ„āļ›āđ€āļĨāļĒ !!
āđ€āļ‚āđ‰āļēāđƒāļŠāđ‰āļ‡āļēāļ™āļĢāļ°āļšāļš DevLab āļŸāļĢāļĩ !āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ

āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ„āļ­āļ—āļĩ “āļ­āļąāļžāļŠāļāļīāļĨāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ” āļˆāļēāļāļ•āļąāļ§āļˆāļĢāļīāļ‡
āļ›āļąāđ‰āļ™āđƒāļŦāđ‰āļ„āļļāļ“āđ€āļ›āđ‡āļ™ āļ„āļ™āļŠāļēāļĒāđ„āļ­āļ—āļĩāļĢāļ°āļ”āļąāļšāļĄāļ·āļ­āļ­āļēāļŠāļĩāļž

BorntoDev

Author BorntoDev

BorntoDev Co., Ltd.

More posts by BorntoDev
Close Menu

āđ€āļĢāļēāđƒāļŠāđ‰āļ„āļļāļāļāļĩāđ‰āđ€āļžāļ·āđˆāļ­āļžāļąāļ’āļ™āļēāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđāļĨāļ°āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ—āļĩāđˆāļ”āļĩāđƒāļ™āļāļēāļĢāđƒāļŠāđ‰āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒāļ‚āļ­āļ‡āļ„āļļāļ“ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļĻāļķāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ„āļ”āđ‰āļ—āļĩāđˆ āļ™āđ‚āļĒāļšāļēāļĒāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§āđ€āļ­āļ‡āđ„āļ”āđ‰āļ‚āļ­āļ‡āļ„āļļāļ“āđ„āļ”āđ‰āđ€āļ­āļ‡āđ‚āļ”āļĒāļ„āļĨāļīāļāļ—āļĩāđˆ āļ•āļąāđ‰āļ‡āļ„āđˆāļē

āļ•āļąāđ‰āļ‡āļ„āđˆāļēāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§

āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļ„āļļāļāļāļĩāđ‰āđ‚āļ”āļĒāđ€āļ›āļīāļ”/āļ›āļīāļ” āļ„āļļāļāļāļĩāđ‰āđƒāļ™āđāļ•āđˆāļĨāļ°āļ›āļĢāļ°āđ€āļ āļ—āđ„āļ”āđ‰āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļĒāļāđ€āļ§āđ‰āļ™ āļ„āļļāļāļāļĩāđ‰āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™

āļĒāļ­āļĄāļĢāļąāļšāļ—āļąāđ‰āļ‡āļŦāļĄāļ”
āļˆāļąāļ”āļāļēāļĢāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§
  • āļ„āļļāļāļāļĩāđ‰āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
    āđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™āļ•āļĨāļ­āļ”

    āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļ„āļļāļāļāļĩāđ‰āļĄāļĩāļ„āļ§āļēāļĄāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ›āļāļ•āļī āđāļĨāļ°āđ€āļ‚āđ‰āļēāļŠāļĄāđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ āļ„āļļāļ“āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļ›āļīāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ„āļļāļāļāļĩāđ‰āļ™āļĩāđ‰āđƒāļ™āļĢāļ°āļšāļšāđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒāļ‚āļ­āļ‡āđ€āļĢāļēāđ„āļ”āđ‰
    āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ„āļļāļāļāļĩāđ‰

  • āļ„āļļāļāļāļĩāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄāļ—āļēāļ‡āļāļēāļĢāļ•āļĨāļēāļ”

    āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļ„āļļāļāļāļĩāđ‰āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļˆāļģāđ€āļ›āđ‡āļ™āđƒāļ™āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ āđāļĨāļ° āļ™āļģāđ€āļŠāļ™āļ­āđ‚āļ›āļĢāđ‚āļĄāļŠāļąāļ™ āļŠāļīāļ™āļ„āđ‰āļē āļĢāļ§āļĄāļ–āļķāļ‡āļŦāļĨāļąāļāļŠāļđāļ•āļĢāļŸāļĢāļĩ āđāļĨāļ° āļŠāļīāļ—āļ˜āļīāļžāļīāđ€āļĻāļĐāļ•āđˆāļēāļ‡ āđ† āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļ›āļīāļ”āļ„āļļāļāļāļĩāđ‰āļ›āļĢāļ°āđ€āļ āļ—āļ™āļĩāđ‰āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļŦāļĨāļąāļ āđ€āļ§āđ‰āļ™āđāļ•āđˆāļāļēāļĢāļ™āļģāđ€āļŠāļ™āļ­āđ‚āļ›āļĢāđ‚āļĄāļŠāļąāļ™āļ—āļĩāđˆāļ­āļēāļˆāđ„āļĄāđˆāļ•āļĢāļ‡āļāļąāļšāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢ
    āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ„āļļāļāļāļĩāđ‰

āļšāļąāļ™āļ—āļķāļāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē