public override void _Ready() { base._Ready(); hoverIndicator = GetNode <HoverIndicator>(hoverIndicatorNodePath); treeActionRadius = GetNode <TreeActionRadius>(actionRadiusNodePath); stateMachine = GetNode <TreeStateMachine>(stateMachineNodePath); treeState = GetNode <TreeState>(treeStateNodePath); interactionPopup = interactionPopupPackedScene.Instance() as InteractionPopup; uiContainer = NodeGetter.GetFirstNodeInGroup <Control>(GetTree(), GameConstants.UiContainerGroup, true); soundEngineNode = NodeGetter.GetFirstNodeInGroup <SoundEngineNode>(GetTree(), GameConstants.SoundEngineGroup, true); uiContainer?.AddChild(interactionPopup); interactionPopup.Init(this); Connect("tree_exiting", this, nameof(OnTreeExiting)); }
/// <summary> /// Update is called once per frame /// </summary> void Update() { target = null; float targetDistance = minimumDistance; foreach (Interactable interactiable in interactables) { float distance = Vector2.Distance(transform.position, interactiable.transform.position); if (targetDistance > distance) { target = interactiable; targetDistance = distance; } } if (target != null) { InteractionPopup.CallInteractionPopup(target); } else { InteractionPopup.DismissInteractionPopup(); } }
// Use this for initialization void Start() { instance = this; }