【发布时间】:2019-04-01 15:29:35
【问题描述】:
您好,我一直在尝试找到一种方法来实例化具有随机颜色的预制件。我看过许多标题相似的问题,我确信它们是很好的答案,但它们不是我需要的。我正在制作游戏的副本,以进行练习,并且我希望在实例化对象时必须使用随机颜色,这是我的代码:
private Vector3 spawnPos = new Vector3(0, 0.75f, 0);
[SerializeField]
private GameObject hitCube;
private Color color1;
private Color color2;
private string lastColor;
// Use this for initialization
void Start () {
color1 = Random.ColorHSV(0f, 1f, 0f, 0f);
color2 = Random.ColorHSV(0f, 1f, 0f, 0f);
for (int i = 0; i < 21; i++)
{
if (lastColor == "color1")
{
hitCube.GetComponent<Renderer>().sharedMaterial.color = color2;
lastColor = "color2";
}
else
{
hitCube.GetComponent<Renderer>().sharedMaterial.color = color1;
lastColor = "color1";
}
Instantiate(hitCube, spawnPos, Quaternion.identity);
spawnPos.y += 0.50f;
}
}
那么有谁知道我怎样才能做到这一点?当我使用它时,地面变成了一种颜色,所有的立方体也是如此。
我的另一个问题是为什么地面会改变颜色但发射器没有(看起来会改变但实际上它已经设置为更深的灰色阴影),以及为什么地面会改变颜色第一名?我明白了
sharedMaterial
不是要走的路,因为它适用于所有预制件。感谢所有帮助。
【问题讨论】: