Ejemplo n.º 1
0
        private List <IHittable> BvhPreprocess()
        {
            Hittables.Clear();
            var planes         = new List <IHittable>();
            var hittablesToBvh = new List <IHittable>();

            foreach (var model in Models)
            {
                if (model is Plane || model is Cylinder)
                {
                    planes.Add(model);
                }
                else
                {
                    hittablesToBvh.AddRange(((IHittable)model).Preprocess());
                }
            }

            Hittables.AddRange(planes);
            if (hittablesToBvh != null && hittablesToBvh.Count > 0)
            {
                var node = new BvhNode(hittablesToBvh, 0, hittablesToBvh.Count);
                Hittables.Add(node);
            }

            return(Hittables);
        }
Ejemplo n.º 2
0
        private List <IHittable> StandardPreprocess()
        {
            Hittables.Clear();
            foreach (var model in Models)
            {
                Hittables.AddRange(((IHittable)model).Preprocess());
            }

            return(Hittables);
        }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Hittables hit = collision.GetComponent <Hittables>();

        if (hit)
        {
            if (hit.GetHit())
            {
                AddMoney(-50);
                Cam.AddShake(0.75f);
                AS.PlayOneShot(SFX_HitMailbox, 4f);
            }
        }
    }
Ejemplo n.º 4
0
 internal override IntPtr Init()
 {
     return(ConstructHittableList(Hittables.Length, Hittables.Select(hittable => hittable.Pointer).ToArray()));
 }