Как изменить цвет экземпляра объекта? - PullRequest
0 голосов
/ 07 апреля 2019

Я просто хочу изменить его цвет, когда он достигает определенной точки камеры, а затем он идет влево и снова меняется.Объект Gem.

Я пытался сделать это:

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);

        }
    }

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

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

0 голосов
/ 07 апреля 2019

Я понял ..... Вместо использования 0,255 я поставил 0f, 1f. Это добилось цели ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...