Exemplo n.º 1
0
    // 상호작용 종료
    public void EndInteract()
    {
        // 입력 제어 해제
        playerController.enabled   = true;
        customBlockBuilder.enabled = true;

        currentHandler = null;
    }
Exemplo n.º 2
0
    // 상호작용 시작
    private void StartInteract(IInteractedHandler interactedHandler)
    {
        // 상호작용 시작
        interactedHandler.Interact(this);

        // 핸들러 설정
        currentHandler = interactedHandler;

        // 입력 제어
        playerController.enabled   = false;
        customBlockBuilder.enabled = false;
    }
Exemplo n.º 3
0
    // 주위에 상호 작용 가능한 개체를 찾아 상호작용을 진행
    private void Interact()
    {
        Collider2D[]       hitColliders2D    = Physics2D.OverlapBoxAll(transform.position, new Vector2(1f, 1f), 0);
        IInteractedHandler interactedHandler = null;

        // 모든 충돌체를 확인
        foreach (Collider2D collider in hitColliders2D)
        {
            interactedHandler = collider.GetComponent <IInteractedHandler>();

            // 충돌체가 상호작용 가능하면
            if (interactedHandler != null)
            {
                StartInteract(interactedHandler);

                break;
            }
        }
    }