C# 在统一的UI中显示卡片

C# 在统一的UI中显示卡片,c#,unity3d,C#,Unity3d,我试图通过脚本onClick以编程方式在画布中显示卡片。我已成功洗牌并储存在player1和player2阵列中(每位玩家随机获得26张牌)。我已经为player1和player2创建了一个基本玩家区域。我的方法是,当我点击按钮时,卡会被分发到各自的区域,并带有存储在卡中的图像 我是unity的新手,不知道如何将图像渲染到画布上,我尝试在google和stackoverflow的帮助下创建游戏对象画布,但我没有解决我的问题。我已将我的完整项目存储在dropbox链接上:。 画布图像: 这是我的主

我试图通过脚本onClick以编程方式在画布中显示卡片。我已成功洗牌并储存在player1和player2阵列中(每位玩家随机获得26张牌)。我已经为player1和player2创建了一个基本玩家区域。我的方法是,当我点击按钮时,卡会被分发到各自的区域,并带有存储在卡中的图像

我是unity的新手,不知道如何将图像渲染到画布上,我尝试在google和stackoverflow的帮助下创建游戏对象画布,但我没有解决我的问题。我已将我的完整项目存储在dropbox链接上:。 画布图像:

这是我的主HelloWord.cs文件

public class HelloWorld : MonoBehaviour
{
    Sprite sprite;
    List<string> player1 = new List<string>();
    List<string> player2 = new List<string>();
    public static string[] suits = new string[] { "spades", "hearts", "clubs", "diamonds" };
    public static string[] values = new string[] { "ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king" };
    public List<string> deck;
    Texture2D myTexture;

    public void PlayCards()
    {
        deck = GenerateDeck();
        Shuffle(deck);
    }

    public void distributeCard()
    {
        for (var x = 1; x <= 26; x++)
        {
            player1.Add(deck[x]);
            foreach (var item in player1)
            {
                print("Player 1 Cards:" + item.ToString());
            }
        }
        for (var y = 26; y <= 52; y++)
        {
            player2.Add(deck[y]);
            foreach (var item in player2)
            {
                print("Player 2 Cards:" + item.ToString());
            }
        }
    }
    public void onClick()
    {
        PlayCards();
        distributeCard();
    }

    public static List<string> GenerateDeck()
    {
        List<string> newDeck = new List<string>();
        foreach(string s in suits)
        {
            foreach(string v in values)
            {
                newDeck.Add(v  +"_of_"  + s);

            }
        }
        return newDeck;
    }
    void Shuffle<T>(List<T> list)
    {
        System.Random random = new System.Random();
        int n = list.Count;
        while (n > 1)
        {

           int k = random.Next(n);
            n--;
            T temp = list[k];
            list[k] = list[n];
            list[n] = temp;
        }
    }
}
公共类HelloWorld:MonoBehavior
{
雪碧雪碧;
List player1=新列表();
List player2=新列表();
公共静态字符串[]suits=新字符串[]{“黑桃”、“红桃”、“梅花”、“钻石”};
公共静态字符串[]值=新字符串[]{“ace”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“jack”、“queen”、“king”};
公开名单组;
纹理2d-myTexture;
公共游戏卡
{
deck=GenerateDeck();
洗牌(牌组);
}
公共无效分发卡()
{

对于(var x=1;x有一个名为“RawImage”的UI元素。它只是画布上UI层中显示的一个纹理。可以从UI->Raw Image中的编辑器添加它

可以指定材质或纹理

元素UnityEngine.UI.RawImage有一个属性“material”,您可以随时分配该属性。您可以使用该属性分配您准备的材料,每张卡一个

使用材质时,请确保将着色器设置为“unlight/Color”或“unlight/Transparent”,因为使用灯光的普通着色器将在UI层上显示黑色图像