//判断是否当前Collider bool IsColliderActive(SimonColliderType type) { if (type == SimonColliderType.None) { return(false); } return(colliders[(int)type] == m_currentCollider); }
//激活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; }