Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使掷骰子者在unity中移除最后一个掷骰比赛_C#_Unity3d - Fatal编程技术网

C# 如何使掷骰子者在unity中移除最后一个掷骰比赛

C# 如何使掷骰子者在unity中移除最后一个掷骰比赛,c#,unity3d,C#,Unity3d,我用掷骰子的脚本在同学们的不同面孔之间滚动,就像是一种命运之轮系统,我对unity和C#都是全新的。我在谷歌上搜索了一下,找到了下面的代码 使用系统集合; 使用UnityEngine; 公共类骰子:单一行为 { //要从资源文件夹加载的骰子边精灵数组 公共雪碧【】侧边; //参考精灵渲染器以更改精灵 私人喷泉人; //用于初始化 私有void Start() { //指定渲染器组件 rend=GetComponent(); //从资源文件夹的DiceSides子文件夹将dice sides精灵加

我用掷骰子的脚本在同学们的不同面孔之间滚动,就像是一种命运之轮系统,我对unity和C#都是全新的。我在谷歌上搜索了一下,找到了下面的代码

使用系统集合;
使用UnityEngine;
公共类骰子:单一行为
{
//要从资源文件夹加载的骰子边精灵数组
公共雪碧【】侧边;
//参考精灵渲染器以更改精灵
私人喷泉人;
//用于初始化
私有void Start()
{
//指定渲染器组件
rend=GetComponent();
//从资源文件夹的DiceSides子文件夹将dice sides精灵加载到阵列
diceSides=Resources.LoadAll(“diceSides/”);
}
//如果您在骰子上单击鼠标左键,则启动RollTheDice协同程序
公屋空置
{
开始例行程序(“滚动的冰”);
}
//掷骰子的协同程序
私有IEnumerator RollTheDice()
{
//变量包含随机骰子边数。
//需要对其进行分配。初始设置为0
int=0;
//骰子在协同程序结束时读取的最后一面或值
int finalSide=0;
//循环以随机切换骰子边
//在最后一方出现之前。这里有20条。
随机rnd=新随机();

对于顶部的(inti=0;i,添加以下using语句:
using System.Collections.Generic;

有一个
私有列表finalSideSprites
变量

Start
finalSideSprites=新列表(Resources.LoadAll(“DiceSides/”);

RollTheDice
中:将
finalSide=randomDiceSide;
替换为

finalSide = (int)Random.Range(0, finalSideSprites.Count - 1);
rend.sprite = finalSideSprites[finalSide];
finalSideSprites.RemoveAt(finalSide);
if(finalSideSprites.Count <= 0){
    finalSideSprites = new List<Sprite>(Resources.LoadAll<Sprite>("DiceSides/"));
}
finalSide=(int)Random.Range(0,finalSideSprites.Count-1);
rend.sprite=finalsidesprite[finalSide];
最终结晶(最终结晶);

如果(finalSideSprites.Count谢谢你的回复。我按照你的要求做了,但它仍然没有删除它们。在控制台中,我收到以下消息,“ArgumentOutOfRangeException:索引超出范围。必须是非负的,并且小于集合的大小。参数名称:Index”“啊,哎呀,有一个错误。我已更新了answer.应该是
finalSide=(int)Random.Range(0,finalSideSprites.Count-1);
看起来没有任何变化。我是否要将'finalSide=(int)Random.Range(0,finalSideSprites.Count-1);'替换为'finalSide=(int)Random.Range(0,finalSideSprites.Count-1)'?执行此操作后,我仍然收到相同的错误消息。这是当前的情况:
finalSide=(int)Range.Range(0,finalSideSprites.Count-1);rend.sprite=finalSideSprites[finalSide];finalSideSprites.RemoveAt(finalSide);if(finalSideSprites.Count==0){finalSideSprites=new List(Resources.LoadAll(“DiceSides/”);}
在我这方面起作用。也许你忘了把它复制到Start?
finalSideSprites=new List(Resources.LoadAll(“DiceSides/”);
如果没有,请尝试添加
Debug.Log(“finalsidesavaailable”+finalSideSprites.Count)
然后查看该值是多少?应该与您的骰子边数相同。