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); }
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); } } }
internal override IntPtr Init() { return(ConstructHittableList(Hittables.Length, Hittables.Select(hittable => hittable.Pointer).ToArray())); }