Beispiel #1
0
    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;
            }
        }
    }