Есть несколько проблем с вашим кодом
Как уже говорилось и упоминалось в другом ответе об ошибке компилятора, вы не можете "преобразовать" string
в Text
компонент.
Вы скорее должны назначить его свойству text
компонента Text
, например
label.text = "example";
Это необходимо сделать, например, в Start
Вам не хватает скобок для вызова
click.Play();
, хотя на самом деле я бы предпочел использовать PlayOneShot
click.PlayOneShot(clickSound, 1.0f);
Для того, чтобы ваш текст появлялся постепенно, вы должны использовать свой код, например, для Coroutine
public void message()
{
// Stop other routines to not have multiple concurrent instances
StopAllCoroutines();
StartCoroutine(MessageRoutine());
}
private IEnumerator MessageRoutine()
{
for(i=0; i<=text.Length; i++)
{
label.text += text.Substring(0, i);
click.Play();
//or
click.PlayOneShot();
// Wait for seconds e.g. 0.1
// yields makes the routine "interrupt" here,
// render the frame and continue in the next frame from here
yield return new WaitForSeconds(0.1f);
}
}