public BoxCollider(GameObject gameObject, CollisionChanell collisionChanell = CollisionChanell.Object, Vector2 relativePosition = new Vector2(), float width = 1, float height = 1) : base(gameObject, collisionChanell, relativePosition) { float epsilon = (float)Math.PI / 8; float rotation = Parent.transform.rotation; if (Math.Abs(rotation - Math.PI / 2) < epsilon || Math.Abs(rotation - Math.PI / 2 - Math.PI) < epsilon) { this.height = width * scale; this.width = height * scale; } else { this.width = width * scale; this.height = height * scale; } }
public Collider( GameObject gameObject, CollisionChanell collisionChanell = CollisionChanell.Object, Vector2 relativePosition = new Vector2(), bool temp = false) : base(gameObject) { scale = SceneManager.scale; this.relativePosition = Vector2.Multiply(relativePosition, new Vector2(scale, scale)); SetRotation(); this.collisionChanell = collisionChanell; SetReactions(); this.temp = temp; if (!temp) { PhysicsManager.AddCollider(this); } }
public void SetCollisionChanell(CollisionChanell collisionChanell) { this.collisionChanell = collisionChanell; SetReactions(); }
public void SetReaction(CollisionChanell channel, ReactType reaction) { this.reaction[channel] = reaction; }
/// <summary> /// Zwraca typ reakcji na dany kanał kolizji. /// </summary> public ReactType GetReaction(CollisionChanell collisionChanell) { return(reaction[collisionChanell]); }
public CircleCollider(GameObject gameObject, CollisionChanell collisionChanell = CollisionChanell.Object, Vector2 relativePosition = new Vector2(), float radius = 1, bool temp = false) : base(gameObject, collisionChanell, relativePosition, temp) { this.radius = radius * scale; }