public Attack( AttackType type, Direction direction, float strength, int range, Vector2Int size, Physics.PhysicsLayer layers) { this.Type = type; this.Direction = direction; this.Strength = strength; switch (direction) { case Direction.Left: case Direction.Right: LocalPosition = new Vector2Int(range, 0) * (direction == Direction.Left ? -1 : 1); break; case Direction.Up: case Direction.Down: LocalPosition = new Vector2Int(0, range) * (direction == Direction.Down ? -1 : 1); break; } hitBox = AddComponent(new BoxCollider(size.X, size.Y)); hitBox.CollidesWithLayers = (int)layers; hitBox.PhysicsLayer = (int)Physics.PhysicsLayer.None; spriteController = AddComponent(new AttackSpriteController( AddComponent(new SpriteAnimator()))); spriteController.SpriteAnimator.FlipX = direction == Direction.Right; }
public static bool IsCollidable(Physics.PhysicsLayer layers) { return ((layers & Physics.PhysicsLayer.Collidable) != 0 || (layers & Physics.PhysicsLayer.Object) != 0); }