>>312
input.getkeydownってのはキーを押した瞬間trueを返すから、そのコードだと一瞬しか表示されないんじゃないかな
そしてやりたいのは押している間じゃなくて押したら表示するってことだよね
だから解決策としては、

void OnTriggerEnter(Collider other)
{
if (Input.GetKeyDown(KeyCode.E)&&other.tag == "Player")
GameObject.Find("hanasi").GetComponent<Canvas>().enabled = true;
}
ってやって、
離れた時に
void OnTriggerExit(Collider other)
{
GameObject.Find("hanasi").GetComponent<Canvas>().enabled =false;
}
ってすればいいんじゃないかな