public void RevisarLugarDeOrganos()
    {
        int _organospuestos = 0;

        for (int i = 0; i < ListaDeOrganos.Length; i++)
        {
            Organo _revisarorgano = ListaDeOrganos[i].GetComponent <Organo>();
            if (_revisarorgano.Puesto == true)
            {
                _organospuestos++;
                if (_organospuestos == ListaDeOrganos.Length)
                {
                    Ganar = true;
                    for (int j = 0; j < ListaDeOrganos.Length; j++)
                    {
                        Organo __organos = ListaDeOrganos[i].GetComponent <Organo>();
                        __organos.enabled = false;
                    }
                }
            }
        }
    }
Пример #2
0
    void Update()
    {
        if (GrabingOrgan == false)                                                                       //SI NO ESTA AGARRANDO ALGO EL RAYCAST ES CORTO
        {
            GrabIndicator.sprite = HandOpen;
            HandOutline.sprite   = HandOpenOutline;
            if (Cam.transform.localEulerAngles.x > AngleToStartGrab)
            {
                GrabRange = LookingDownGrabRange;
            }
            else
            {
                GrabRange = ForwardGrabRange;
            }
        }
        if (GrabingOrgan)                                                                               //SI SE ESTA AGARRANDO ALGO EL RAYCAST SE HACE LARGO
        {
            GrabIndicator.sprite = HandClose;
            HandOutline.sprite   = HandCloseOutline;
            GrabRange            = PlaceOrgenRange;
        }

        RaycastHit hit;                                                                                 //CREA EL RAYCAST

        if (Physics.Raycast(Cam.transform.position, Cam.transform.forward, out hit, GrabRange))         //REVISA SI EL RAYCAST TOCA ALGO
        {
            //Debug.Log(hit.transform.name);

            if (hit.transform.tag == "Organo")                                                           //SI EL RAYCASR TOCA A UN ORGANO
            {
                OrganInRange        = true;
                HandOutline.enabled = true;
                HandOutline.color   = MyGreen;
            }
            if (hit.transform.tag == "PuestoOrgano" && GrabingOrgan)
            {
                HandOutline.color   = MyBlue;
                HandOutline.enabled = true;
            }
        }
        else
        {
            OrganInRange        = false;
            HandOutline.enabled = false;
            HandOutline.color   = Color.red;
        }

        if (Input.GetMouseButtonDown(0) && OrganInRange)
        {
            if (hit.transform.GetComponent <Organo>() != null)
            {
                GrabingOrgan    = true;
                OrganoAgarrando = hit.transform.GetComponent <Organo>();
                if (OrganoAgarrando.Puesto == false)
                {
                    OrganoAgarrando.Agarrar(Hand);
                }
            }
        }

        if (GrabingOrgan)
        {
            if (Input.GetMouseButtonUp(0))
            {
                GrabingOrgan = false;
                OrganInRange = false;
                OrganoAgarrando.Soltar(CheckForOrganPlacement());
                OrganoAgarrando = null;
            }
        }


        if (GrabingOrgan)
        {
            Debug.DrawRay(Cam.transform.position, Cam.transform.forward * GrabRange, Color.blue);
        }
        else
        {
            Debug.DrawRay(Cam.transform.position, Cam.transform.forward * GrabRange, Color.red);
        }
    }