コード例 #1
0
            public void Set(Entity entity, Transform transform, CircleCollider collider)
            {
                this.collider  = collider;
                this.entity    = entity;
                this.transform = transform;
                colliderTag    = collider.Tag;

                center       = transform.Position;
                sortDistance = (float)collider.Radius;
            }
コード例 #2
0
        /// <summary>
        /// Add a listener which is notified when any collision happens between two
        /// colliders with the given ColliderTags (the collision filter)
        /// </summary>
        public void AddListener(ColliderTag tag1, ColliderTag tag2, CollisionListener listener)
        {
            var collisionType = new CollisionFilter(tag1, tag2);

            if (!listenerMap.ContainsKey(collisionType))
            {
                listenerMap[collisionType] = new List <CollisionListener>();
            }
            listenerMap[collisionType].Add(listener);
        }
コード例 #3
0
            public void Set(Entity entity, Transform transform, BoxCollider collider)
            {
                this.collider  = collider;
                this.entity    = entity;
                this.transform = transform;
                colliderTag    = collider.Tag;

                center = transform.Position;
                collider.CalculatePoints(transform);

                // Diagonal distances
                var    diagonal1   = (collider.Points.c - collider.Points.a).Length();
                var    diagonal2   = (collider.Points.d - collider.Points.b).Length();
                double maxDiagonal = diagonal1 > diagonal2 ? diagonal1 : diagonal2;

                sortDistance = (float)(maxDiagonal / 1.95);
            }