Пример #1
0
    public void EnablePickUpRays(ref Transform p_pickUpTrans)
    {
        float directionX = m_colInfo.FaceDir;

        Vector2 rayOrigin = (directionX == -1) ? m_raycastOrigins.BottomLeft : m_raycastOrigins.BottomRight;

        rayOrigin += Vector2.up * m_skinBounds.size.y * 0.75f;
        RaycastHit2D hit = Physics2D.Raycast(rayOrigin, Vector2.right * directionX, m_interactableRayLength, m_interactableMask);

        Debug.DrawRay(rayOrigin, Vector2.right * directionX, Color.green);

        if (hit)
        {
            if (hit.collider.tag == "Enemy")
            {
                EnemyPlatformerBehavior hitBehavior = hit.collider.GetComponent <EnemyPlatformerBehavior>();
                if (hitBehavior != null)
                {
                    hitBehavior.enabled = false;
                }

                p_pickUpTrans = hit.collider.transform;
                p_pickUpTrans.SetParent(transform);
                p_pickUpTrans.localPosition = new Vector3(0.28f, m_skinBounds.size.y + 0.7f, 0.0f);
                p_pickUpTrans.localScale    = Vector3.one;

                hit.collider.enabled = false;
            }
        }
    }
Пример #2
0
    public void SpawnFromPool()
    {
        EnemyPlatformerBehavior enemy = m_enemyPool.Where(ep => !ep.gameObject.activeSelf).FirstOrDefault();

        if (enemy != null)
        {
            enemy.ToggleCharacter(true, new Vector2(10.0f, -3.76f));
        }
    }
Пример #3
0
    public void PickThrow()
    {
        if (m_pickedUpTrans != null)
        {
            EnemyPlatformerBehavior hitBehavior = m_pickedUpTrans.GetComponent <EnemyPlatformerBehavior>();
            if (hitBehavior != null)
            {
                hitBehavior.enabled = true;
            }

            m_pickedUpTrans.SetParent(null);

            hitBehavior.GetThrown(m_velocity.x + (5.0f * m_raycastCol.ColInfo.FaceDir), 5.0f);

            m_pickedUpSpriteRend.sortingLayerName = "NPC";
            m_pickedUpSpriteRend.sortingOrder     = 0;

            BoxCollider2D col = m_pickedUpTrans.GetComponent <BoxCollider2D>();
            GameflowManager.instance.DelayAction(() => { col.enabled = true; }, 0.3f);

            m_pickedUpSpriteRend = null;
            m_pickedUpTrans      = null;
        }
        else
        {
            m_playerRaycastCol.EnablePickUpRays(ref m_pickedUpTrans);

            if (m_pickedUpTrans != null)
            {
                m_pickedUpSpriteRend = m_pickedUpTrans.GetComponent <SpriteRenderer>();
                m_pickedUpSpriteRend.sortingLayerName = "Player";
                m_pickedUpSpriteRend.sortingOrder     = 10;
            }
        }


        m_anim.SetBool("bIsPickingUp", m_pickedUpTrans != null);
    }