Scale GameObject ao longo do tempo

Eu fiz um jogo de teste em unidade que o faz quando clico em um botão, que gera um cilindro criado a partir de uma classe de fábrica. Estou tentando fazer isso quando crio o cilindro, sua altura diminui nos próximos 20 segundos. Alguns métodos que encontrei são difíceis de traduzir para o que estou fazendo. Se você pudesse me levar na direção certa, eu agradeceria muito.

Aqui está o meu código para a classe de cilindros

 public class Cylinder : Shape
{
    public Cylinder()
    {
    GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        cylinder.transform.position = new Vector3(3, 0, 0);
        cylinder.transform.localScale = new Vector3(1.0f, Random.Range(1, 2)-1*Time.deltaTime, 1.0f);

        cylinder.GetComponent<MeshRenderer>().material.color = Random.ColorHSV();
        Destroy(cylinder, 30.0f);
    }
}

questionAnswers(3)

yourAnswerToTheQuestion