void Update() { if (!isActive) { return; } if (!AcceptsInput) { return; } if (input.GetButtonDown(ButtonCode.Left)) { if (focused.Left != null) { focused.UnFocus(); focused = focused.Left; focused.Focus(); _OnNodeFocused.OnNext(focused); } } if (input.GetButtonDown(ButtonCode.Right)) { if (focused.Right != null) { focused.UnFocus(); focused = focused.Right; focused.Focus(); _OnNodeFocused.OnNext(focused); } } if (input.GetButtonDown(ButtonCode.Up)) { if (focused.Up != null) { focused.UnFocus(); focused = focused.Up; focused.Focus(); _OnNodeFocused.OnNext(focused); } } if (input.GetButtonDown(ButtonCode.Down)) { if (focused.Down != null) { focused.UnFocus(); focused = focused.Down; focused.Focus(); _OnNodeFocused.OnNext(focused); } } }
void Start() { focused = initialNode; initialNode.Focus(); _OnNodeFocused.OnNext(initialNode); }