Слово к вашему стилю программирования: с тех пор не понятно, как называется 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 не выполнены.