void FixedUpdate() { speedStretch = m_Rigidbody.velocity.y * Time.fixedDeltaTime; if (speedStretch > -0.05f) { speedStretch = -0.05f; } collisionDownEnter = collisionDown; collisionDown = CollisionUtilities.GetCollision(this.gameObject, //Vector3.down * (m_boxCollider.size.y / 2f), new Vector2(0.55f, -speedStretch * 2), layer, true); Vector3.down * (m_boxCollider.size.y / 2f), new Vector2(0.55f, 0.1f), layer, true); collisionDownEnter = collisionDown != collisionDownEnter && collisionDown; if (collisionDown) { collisionDownTimer = coyoteTime; } collisionDownTimer -= Time.fixedDeltaTime; //speedStretch = m_Rigidbody.velocity.y * Time.fixedDeltaTime; //if (speedStretch < 0.05f) speedStretch = 0.05f; collisionUpEnter = collisionUp; collisionUp = CollisionUtilities.GetCollision(this.gameObject, //Vector3.up * (m_boxCollider.size.y / 2f), new Vector2(0.5f, speedStretch * 2), collisionUpLayer, true); Vector3.up * (m_boxCollider.size.y / 2f), new Vector2(0.5f, 0.1f), collisionUpLayer, true); collisionUpEnter = collisionUp != collisionUpEnter; collisionUpLeft = CollisionUtilities.GetCollision(this.gameObject, Vector3.up * (m_boxCollider.size.y / 2f + 0.1f) + Vector3.left * 0.24f, new Vector2(0.1f, 0.3f), collisionUpLayer); collisionUpRight = CollisionUtilities.GetCollision(this.gameObject, Vector3.up * (m_boxCollider.size.y / 2f + 0.1f) + Vector3.right * 0.24f, new Vector2(0.1f, 0.3f), collisionUpLayer); collisionUpMiddle = CollisionUtilities.GetCollision(this.gameObject, Vector3.up * (m_boxCollider.size.y / 2f + 0.1f), new Vector2(0.4f, 0.3f), collisionUpLayer); collisionDanger = CollisionUtilities.GetCollision(this.gameObject, Vector3.zero, new Vector2(0.6f, 1.2f), dangerLayer); collisionLeftStep = CollisionUtilities.GetCollisionDistance(this.gameObject, Vector2.left * (m_boxCollider.size.x / 2f + (0.1f * detectDistance)), Vector2.down, m_boxCollider.size.y / 2f, layer); collisionRightStep = CollisionUtilities.GetCollisionDistance(this.gameObject, Vector2.right * (m_boxCollider.size.x / 2f + (0.1f * detectDistance)), Vector2.down, m_boxCollider.size.y / 2f, layer); }
void FixedUpdate() { if (isCarried) { collisionDownLayer = collisionUpLayer; gameObject.layer = LayerUtilities.LayerNumber(carriedIdolLayer); } else { collisionDownLayer = layer; gameObject.layer = LayerUtilities.LayerNumber(idolLayer); } speedStretchX = m_Rigidbody.velocity.x * Time.fixedDeltaTime; speedStretchY = m_Rigidbody.velocity.y * Time.fixedDeltaTime; if (speedStretchY > -0.05f) { speedStretchY = -0.05f; } collisionDownEnter = collisionDown; collisionDown = CollisionUtilities.GetCollision(this.gameObject, Vector3.down * -speedStretchY + Vector3.right * speedStretchX, new Vector2(0.25f, 0.6f), collisionDownLayer, true) || (m_Velocity.y > yVelocityBuffer && yVelocityBuffer <= 0f && !isCarried); collisionDownEnter = collisionDown != collisionDownEnter; speedStretchY = m_Rigidbody.velocity.y * Time.fixedDeltaTime; if (speedStretchY < 0.05f) { speedStretchY = 0.05f; } collisionUpEnter = collisionUp; collisionUp = CollisionUtilities.GetCollision(this.gameObject, Vector3.up * (m_boxCollider.size.y / 2f + 0.05f), new Vector2(0.25f, (speedStretchY + 0.05f) * 2f), collisionUpLayer, true); collisionUpEnter = collisionUp != collisionUpEnter; collisionLeft = CollisionUtilities.GetCollision(this.gameObject, Vector3.left * (m_boxCollider.size.x / 2f) + Vector3.down * 0.05f, new Vector2(0.1f, 0.5f), collisionUpLayer); collisionRight = CollisionUtilities.GetCollision(this.gameObject, Vector3.right * (m_boxCollider.size.x / 2f) + Vector3.down * 0.05f, new Vector2(0.1f, 0.5f), collisionUpLayer); collisionDanger = CollisionUtilities.GetCollision(this.gameObject, Vector3.zero, new Vector2(0.3f, 0.6f), dangerLayer); collisionCarryPlayer = CollisionUtilities.GetCollisionDistance(player.gameObject, Vector2.zero, Vector2.up, carryHeight + 0.6f, player.GetCollisionUpLayer()); collisionCarry = CollisionUtilities.GetCollisionDistance(player.gameObject, new Vector2(m_Rigidbody.position.x - playerRigidbody.position.x, 0f), Vector2.up, carryHeight + 0.6f, collisionUpLayer); collisionTeleport = CollisionUtilities.GetCollision(this.gameObject, Vector3.up * 0.35f + Vector3.left * 0.225f, new Vector2(0.15f, 1.1f), collisionUpLayer) && CollisionUtilities.GetCollision(this.gameObject, Vector3.up * 0.35f + Vector3.right * 0.225f, new Vector2(0.15f, 1.1f), collisionUpLayer); float n; if (teleportRechargeTimer < 0) { n = 0; } else { n = teleportRechargeTimer; ///// } CollisionUtilities.GetCollision(this.gameObject, Vector3.right * 0.5f, new Vector2(0.1f, n * 3f), layer, true); teleportTimer -= Time.fixedDeltaTime; teleportRechargeTimer -= Time.fixedDeltaTime; rechargeIndicator.SetFill(teleportRechargeTimer / teleportRechargeDuration); yVelocityBuffer = m_Velocity.y; }