UnityのUIを使っていて、フォーカスを変えたい場合はEventSystem.SetSelectedGameObject
を使ってみると良いみたいです。
使い方
EventSystem.current.SetSelectedGameObject(gameObject);
Canvasを2重に表示していて、後ろ側になっているCanvasのボタンにフォーカスがある場合など、一見不可解な現象が起こる場合もあるので、注意して使ってみてください。
リンク
Unity – Scripting API: EventSystems.EventSystem.SetSelectedGameObject
https://docs.unity3d.com/2018.2/Documentation/ScriptReference/EventSystems.EventSystem.SetSelectedGameObject.html