Esempio n. 1
0
 //判断是否当前Collider
 bool IsColliderActive(SimonColliderType type)
 {
     if (type == SimonColliderType.None)
     {
         return(false);
     }
     return(colliders[(int)type] == m_currentCollider);
 }
Esempio n. 2
0
    //激活Collider
    void ActiveCollider(SimonColliderType type)
    {
        //先关闭所有Collider
        for (var i = 0; i < colliders.Length; i++)
        {
            colliders[i].enabled = false;
            onHitBoxes[i].gameObject.SetActive(false);
        }

        Collider2D co = colliders[(int)type];

        //不同的Collider需要改变人物的位置
        int isGrounded = CheckGrounded() ? 1 : 0;

        if (IsColliderActive(SimonColliderType.Squat) && (type == SimonColliderType.Default))
        {
            transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y + isGrounded * m_SpriteYOffset1);
        }
        else if (IsColliderActive(SimonColliderType.Default) && (type == SimonColliderType.Squat))
        {
            transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y - isGrounded * m_SpriteYOffset1);
        }
        else if (IsColliderActive(SimonColliderType.OnHit) && (type == SimonColliderType.Squat))
        {
            transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y - m_SpriteYOffset2);
        }
        else if (IsColliderActive(SimonColliderType.Squat) && (type == SimonColliderType.OnHit))
        {
            transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y + m_SpriteYOffset2);
        }


        co.enabled = true;
        onHitBoxes[(int)type].gameObject.SetActive(true);
        m_currentCollider = co;
    }