Example #1
0
        public void FetchCollisions()
        {
            CubeModel.UpdateBounds(transform, (svector3)Position, (svector3)Scale);
            Colliding     = ActiveCollisions.Count > 0;
            DeltaPosition = ((svector3)transform.position + (svector3)Position) - LastPosition;
            LastPosition  = ((svector3)transform.position + (svector3)Position);

            for (int i = 0; i < NucleonManager.Colliders.Length; i++)
            {
                NucleonBoxCollider BoxCollider = (NucleonBoxCollider)NucleonManager.Colliders[i];
                if (BoxCollider != this)
                {
                    bool Colliding = intersector.CC_I(CubeModel, BoxCollider.CubeModel);
                    CollisionCheck(Colliding, BoxCollider);

                    if (Colliding && DebugCollisionVertices)
                    {
                        List <svector3> CollidingPointsFetchList = new List <svector3>();
                        foreach (svector3 Vertice in CubeModel.Vertices)
                        {
                            if (intersector.PC_I(Vertice, BoxCollider.CubeModel))
                            {
                                CollidingPointsFetchList.Add(Vertice);
                            }
                        }
                        CollidingPoints = CollidingPointsFetchList;
                    }
                    if (!Colliding && DebugCollisionVertices)
                    {
                        CollidingPoints.Clear();
                    }
                }
            }
        }
Example #2
0
        void Awake()
        {
            DeltaPosition = svector3.Zero();
            LastPosition  = svector3.Zero();

            try
            {
                Body = GetComponent <NucleonRigidbody>();
            }
            catch { }

            CubeModel = new CubeModel();

            ActiveCollisions = new List <NucleonCollider>();
            CollidingPoints  = new List <svector3>();

            UpdateInterval = (sfloat)1f / (sfloat)UpdatesPerSecond;
        }