예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
 public void SetCollisionChanell(CollisionChanell collisionChanell)
 {
     this.collisionChanell = collisionChanell;
     SetReactions();
 }
예제 #4
0
 public void SetReaction(CollisionChanell channel, ReactType reaction)
 {
     this.reaction[channel] = reaction;
 }
예제 #5
0
 /// <summary>
 /// Zwraca typ reakcji na dany kanał kolizji.
 /// </summary>
 public ReactType GetReaction(CollisionChanell collisionChanell)
 {
     return(reaction[collisionChanell]);
 }
예제 #6
0
 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;
 }