Esempio n. 1
0
    // 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);
        }
    }
Esempio n. 2
0
    // 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();
        }
    }