我只想在到达相机的特定点时更改其颜色,然后转到左侧并再次更改。该对象是宝石。
我尝试这样做:
void Rendercolor()
{
render = Gem.GetComponent<SpriteRenderer>();
random = new Color(Random.Range(0, 255),
Random.Range(0,255),Random.Range(0,255),255);
}
void Update()
{
Rendercolor();
if (direction == DirecaoGameObject.Right)
{
Gem.transform.Translate(Vector3.right * Time.deltaTime
*velocity);
if (Gem.transform.position.x >= right.position.x)
{
render.color = random;
direction = SortdirecaoGameObject(direction);
}
}
答案 0 :(得分:0)
我明白了.....我没有使用0255,而是输入了0f,1f。它成功了。...
答案 1 :(得分:0)
一个适合您的编程风格的词:从名字Rendercolor
开始不清楚此方法的作用。除了创建颜色之外,它还具有渲染组件。同样,它不返回任何内容,而是设置一些全局字段。以下结构会更清楚。
Color CreateRandomColor()
{
return new Color(Random.Range(0, 255), Random.Range(0, 255), Random.Range(0, 255), 255);
}
void Update()
{
if (direction == DirecaoGameObject.Right)
{
Gem.transform.Translate(Vector3.right * Time.deltaTime * velocity);
if (Gem.transform.position.x >= right.position.x)
{
// Use local variable here.
var spriteRenderer = Gem.GetComponent<SpriteRenderer>();
spriteRenderer.color = CreateRandomColor();
direction = SortdirecaoGameObject(direction);
}
}
}
spriteRenderer
和颜色是在嵌套if内创建的。如果没有执行if,则没有必要事先创建它们。