public void Init(ScreenSide side) { ScreenSide = side; bool isWide; bool isNegativeOffset; Vector2 size; Vector3 position; switch (side) { case ScreenSide.Top: isWide = true; isNegativeOffset = false; break; case ScreenSide.Right: isWide = false; isNegativeOffset = false; break; case ScreenSide.Bottom: isWide = true; isNegativeOffset = true; break; case ScreenSide.Left: isWide = false; isNegativeOffset = true; break; default: throw ExceptionUtil.ArgumentException(() => side); } float negativePositionMultiplier = isNegativeOffset ? -1f : 1f; float positionOffset = ColliderWidth * -0.5f; if (isWide) { size = new Vector2(SpaceUtil.WorldMapSize.x, ColliderWidth); float y = (SpaceUtil.WorldMap.Top.y - positionOffset) * negativePositionMultiplier; position = new Vector3(0, y); } else { size = new Vector2(ColliderWidth, SpaceUtil.WorldMapSize.y); float x = (SpaceUtil.WorldMap.Right.x - positionOffset) * negativePositionMultiplier; position = new Vector3(x, 0); } var collider = GetComponent <BoxCollider2D>(); collider.size = size; collider.transform.position = position; }
private void BounceOffScreenEdge(ScreenSide screenSide) { switch (screenSide) { case ScreenSide.Left: case ScreenSide.Right: ReverseVelocityX(); break; case ScreenSide.Top: case ScreenSide.Bottom: //ReverseVelocityY(); break; default: throw ExceptionUtil.ArgumentException(() => screenSide); } }
public static float GetTimeScaleModifier(TimeScaleType type) { float ret; switch (type) { case TimeScaleType.Player: ret = Player; break; case TimeScaleType.PlayerBullet: ret = PlayerBullet; break; case TimeScaleType.Enemy: ret = Enemy; break; case TimeScaleType.EnemyBullet: ret = EnemyBullet; break; case TimeScaleType.UIElement: ret = UIElement; break; case TimeScaleType.Default: ret = 1f; break; default: throw ExceptionUtil.ArgumentException(() => type); } return(ret); }