我正在尝试使用c#在Unity中自动生成多维数据集。
我终于成功地创建了很多立方体(300x300),对其进行定位并命名,但是在给它们着色(代码的最后一部分)时遇到了问题。
我想使用三个变量给它们上色,每个RGB值一个。我在代码中定义的变量是rnewcolor
,gnewcolor
和bnewcolor
,它们通过使用(代码的最后一部分)被赋予每个组件:
go.GetComponent<Renderer>().material.color = new Color(rnewcolor/255f, gnewcolor/255f, bnewcolor/255f)
例如,当我将随机值归因于这三个变量时:
int rnewcolor = UnityEngine.Random.Range(0, 255))
然后代码工作,并且多维数据集按预期的颜色随机颜色填充(图像在https://ibb.co/pXDmhfB上)
但是当我尝试从文件中读取RGB值时,将它们存储在Rcolor[i,j,k]
,Gcolor[i,j,k]
和Bcolor[i,j,k]
的排列中,以便稍后将它们传递给变量{{1} },rnewcolor
,gnewcolor
,那么颜色归因不起作用,我得到的所有多维数据集都带有一种灰色,而不是从文件中读取的颜色(图像https://ibb.co/S3JRnBr)
更多图片:
第一个多维数据集上的检查器(用于实例化):https://ibb.co/VNsCy5b(作为组件添加了代码“ ProgramCubeNew.cs”) 第一个多维数据集(也在预制中)的检查器:https://ibb.co/tKrVD2V
一些评论:
通过打印一些调试信息,我知道变量bnewcolor
,rnewcolor
,gnewcolor
,bnewcolor
,Rcolor[,,]
和Gcolor[,,]
都是类型相同的Bcolor[,,]
。
此外,我知道从文件读取并存储在Int32
,Rcolor[,,]
和Gcolor[,,]
变量中的值是正确的。
我在这里知道:
Bcolor[,,]
功能go.GetComponent<Renderer>().material.color = new Color(rnewcolor/255f, gnewcolor/255f, bnewcolor/255f)
的浮点数范围为Color(,,)
至0
。将随机数分配给变量1
,gnewcolor
和bnewcolor
时,此方法非常有效,但从文件中读取值时则无效。
由于着色过程在使用随机数时会起作用,因此我认为Unity接口中对象之间的清晰度必须正确(?)
有人知道为什么当从文件中读取值时我不能归因于颜色吗?
谢谢!
gnewcolor