【发布时间】:2017-09-04 11:41:28
【问题描述】:
我想通了!原来它正在打印到控制台,但它会打印出类似的东西 1 (2) 个 2 (2) 3(3)
表示每个数字都去了两次。如果我打印带有试用计数的数字,我会得到我正在寻找的东西 TC 1,数字 1 TC 2,数字 2 TC 3,数字 3 TC 4,数字 1 TC 5,数字 2 TC 6,数字 3
感谢您的所有建议。
我是 C# 的新手,遇到了一个我似乎找不到解决方案的问题。
我有一个具有 6 个插槽的浮点数组,其中 3 个插槽是重复数字( 1.0f,2.0f,3.0f,1.0f,2.0f,3.0f).
每次点击“a”时,我都需要将这些数字中的每一个都打印给领事。
问题是在前 3 个数字之后它停止打印 - 在控制台中我得到:
1,2,3....索引超出范围
我使用数组中的数字来更改对象的大小。这个对象会随着每个“a”的推送而继续改变大小,所以我知道它正在遍历整个数组。
我怎样才能让它打印副本?
这是我的代码的简短版本,它已被缩短以删除不相关的内容。
*********************************************************************
public class ChangeSize : MonoBehaviour {
float[] numbers;
int MyIndex;
public int Range;
int trialCount = 0;
// Use this for initialization
void Start () { //************************************Start
numbers = new float[] { 1.0f,2.0f,3.0f,1.0f,2.0f,3.0f };
}
// Update is called once per frame
void Update()
{
changeSizeObj();
}
//**************************************************Functions
void changeSizeObj() {
if (Input.GetKeyDown("a"))
{
transformSize();
}
}
void transformSize()
{
float num = numbers[trialCount];
print(num);
transform.localScale = new Vector3(num, num, num);
trialCount += 1;
}
}
【问题讨论】:
-
抱歉代码出现问题。我不确定为什么 float[] numbers;在公共类 ChangeSize 上:MonoBehaviour {
-
您打算如何解决
3.999999f和4.0000001f问题(汇总错误问题)?你确定你有一个 float 数组吗? -
如果你想打印副本。您需要对其进行编程。您应该创建一个列表/哈希集来跟踪您已经“看到”的数字
-
每
Update检查一次密钥'A' 您可能想检查密钥是否也被释放。它可能走得太快了。显示print值可能会有延迟,因此在打印所有值之前会引发错误。例如,您可以通过添加调试延迟Thread.Sleep(1000)来对此进行测试。如果钥匙被释放,最好等待。 -
嗨,Dmitry,我不打算解决四舍五入问题,因为这对我想做的事情来说似乎没什么大不了的。而且我很确定该数组是一个浮点数组。谢谢
标签: c# arrays printing duplicates