>

카메라의 특정 지점에 도달하면 색상을 변경 한 다음 왼쪽으로 이동하여 다시 변경됩니다. 개체는 보석입니다.

이 작업을 시도했습니다 :

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

  • 답변 # 1

    알았다 ..... 0,255 대신에 0f, 1f를 넣었다. 그것은 트릭을했다 ....

  • 답변 # 2

    프로그래밍 스타일에 대한 단어 : 그것은 그때 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가 실행되지 않는 경우 사전에 생성 할 필요가 없습니다.

관련 자료

  • 이전 c# - net 코어 - unitest 프로젝트의 nuget pack은 "조립품이 'lib'폴더 안에 있지 않습니다"라는 경고를 표시합니다
  • 다음 oop - PHP의 부모 객체