// Update is called once per frame void Update() { if (GetComponent <Actor>().GetState() != EActorState.Walking) { return; } if (interactables.Count > 0 && controls.IsDown(EKey.Confirm)) { GameObject bestMatch = null; var bestDistance = Mathf.Infinity; foreach (var interactable in interactables) { if (interactable == null) { continue; } var dist = (transform.position - interactable.transform.position).magnitude; if (dist < bestDistance) { bestMatch = interactable; bestDistance = dist; } } if (bestMatch != null) { bestMatch.GetComponent <Interactible>().doInteraction(this.gameObject); } interactables.RemoveWhere(obj => obj == null); } }
// Update is called once per frame void Update() { Vector3 move = Controls.GetXY(); var actor = GetComponent <Actor>(); actor.AddMovementInput(move, 1f); if (Controls.IsDown(EKey.Jump)) { actor.TryJump(); } }