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