private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "HUMAN") { InRange = true; ITargetable targetable = other.gameObject.GetComponent <ITargetable>(); targetable?.Lock(); StartCoroutine(Timer.Start(TimeToAdd, false, () => { // Do something at the end of the timer if (!InRange) { return; } Debug.Log("We can add now"); EventManager <ITargetable> .BroadCast(EVENT.humanDetectEvent, targetable); InRange = false; })); //TO-DO //Als er een HUMAN wordt opgezogen door de UFO dan is het belangrijk om het type van die HUMAN op te slaan //Als de inventory van HUMANS vol zit dan moet er als er naar het checkpoint in de game is gegaan een recept worden geblend. //Dit recept moet bepaalde stats hebben waardoor de baby blij of boos wordt ( meter omhoog met x procent of omlaag met x procent ) } if (other.gameObject.tag == "CheckPoint") { CheckPointManager.Instance.ReachedCheckPoint(); } }
private void Beem() { Vector3 dir = UFO.transform.TransformDirection(Vector3.down); RaycastHit hit; Debug.DrawRay(UFO.transform.position, dir * 50, Color.blue); if (Physics.SphereCast(UFO.transform.position, 3f, dir, out hit, Mathf.Infinity)) { string name = hit.transform.name; if (name == "HUMAN") { ITargetable targetable = hit.transform.GetComponent <ITargetable>();; targetable?.Lock(); //AddWhenPosible(targetable); } else { TimeToAdd = MaxTimeToAdd; } } }