实例化多维数据集并在Unity(c#)中为它们着色

时间:2019-07-20 08:12:15

标签: c# unity3d voxel procedural cubes

我正在尝试使用c#在Unity中自动生成多维数据集。

我终于成功地创建了很多立方体(300x300),对其进行定位并命名,但是在给它们着色(代码的最后一部分)时遇到了问题。

我想使用三个变量给它们上色,每个RGB值一个。我在代码中定义的变量是rnewcolorgnewcolorbnewcolor,它们通过使用(代码的最后一部分)被赋予每个组件:

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} },rnewcolorgnewcolor,那么颜色归因不起作用,我得到的所有多维数据集都带有一种灰色,而不是从文件中读取的颜色(图像https://ibb.co/S3JRnBr

更多图片:

第一个多维数据集上的检查器(用于实例化):https://ibb.co/VNsCy5b(作为组件添加了代码“ ProgramCubeNew.cs”) 第一个多维数据集(也在预制中)的检查器:https://ibb.co/tKrVD2V

一些评论:

通过打印一些调试信息,我知道变量bnewcolorrnewcolorgnewcolorbnewcolorRcolor[,,]Gcolor[,,]都是类型相同的Bcolor[,,]

此外,我知道从文件读取并存储在Int32Rcolor[,,]Gcolor[,,]变量中的值是正确的。

我在这里知道:

Bcolor[,,]

功能go.GetComponent<Renderer>().material.color = new Color(rnewcolor/255f, gnewcolor/255f, bnewcolor/255f) 的浮点数范围为Color(,,)0。将随机数分配给变量1gnewcolorbnewcolor时,此方法非常有效,但从文件中读取值时则无效。

由于着色过程在使用随机数时会起作用,因此我认为Unity接口中对象之间的清晰度必须正确(?)

有人知道为什么当从文件中读取值时我不能归因于颜色吗?

谢谢!

gnewcolor

0 个答案:

没有答案