예제 #1
0
 private void ClientOnExitingBuildingMode()
 {
     // Let go of what im holding
     if (_highlightedItem != null)
     {
         _highlightedItem.ResetPosition();
         SpriteRenderer renderer = _highlightedItem.GetComponent <SpriteRenderer>();
         renderer.material.SetFloat("Vector1_5D8044E5", 0);
     }
     _grabbyHand.Pointer();
 }
예제 #2
0
    private void Update()
    {
        _mousePos   = _mainCamera.ScreenToWorldPoint(Input.mousePosition);
        _clampedPos =
            Vector3.ClampMagnitude(new Vector3(_mousePos.x, _mousePos.y, LocalPlayerTransform.position.z) - LocalPlayerTransform.position,
                                   MaxInteractRange) + LocalPlayerTransform.position;
        RaycastHit2D hit = Physics2D.Raycast(_clampedPos, Vector2.zero);

        if (hit.collider != null && hit.transform.CompareTag("Moveable") && !_exploded)
        {
            if (Input.GetMouseButtonDown(0))
            {
                _grabbyHand.CloseHand();
            }
            else if (Input.GetMouseButtonUp(0))
            {
                _grabbyHand.OpenHand();
            }

            if (_previousCollider == null || !_active)
            {
                _grabbyHand.OpenHand();

                _active = true;

                _previousCollider = hit.collider;

                _renderer = hit.collider.GetComponent <SpriteRenderer>();
                _renderer.material.SetFloat("Vector1_5D8044E5", 1);

                _highlightedItem = hit.collider.GetComponent <GridItem>();
            }
            else if (_previousCollider != hit.collider)
            {
                _active           = true;
                _previousCollider = hit.collider;

                // Remove outline from previously selected item if it wasn't clicked
                if (!_highlightedItem.Picked)
                {
                    _renderer.material.SetFloat("Vector1_5D8044E5", 0);
                }

                _renderer = hit.collider.GetComponent <SpriteRenderer>();
                _renderer.material.SetFloat("Vector1_5D8044E5", 1);

                _highlightedItem = hit.collider.GetComponent <GridItem>();
            }
        }
        else if (_active)
        {
            _grabbyHand.Pointer();

            _active = false;
            // Only remove borders on non picked items
            if (!_highlightedItem.Picked)
            {
                _renderer.material.SetFloat("Vector1_5D8044E5", 0);
            }
            _highlightedItem = null;
        }

        if (Input.GetMouseButtonDown(0) && _highlightedItem && !_highlightedItem.Picked && !_exploded)
        {
            _highlightedItem.Picked = true;
            if (_client.IsMyGuessCorrect(_highlightedItem.Id))
            {
                _renderer.material.SetColor("Color_BC0A261F", Color.green);
                CorrectItems += 1;

                _audioSource.PlayOneShot(DingSound);
            }
            else
            {
                _renderer.material.SetColor("Color_BC0A261F", Color.red);
                WrongItems += 1;

                ExplodePlayer();
            }

            UpdateStatusText();
        }
    }