Beispiel #1
0
    public override void Object_Grab()
    {
        if (_IE_Grabling)
        {
            return;
        }
        S_ResultNearPosit Posit = S_A_GameRoom.GetInstance().GetNearChest(transform.position);

        if (Posit == null)
        {
            return;
        }

        _TAGET_Chest = Posit._Chest;
        _TAGET_POSIT = Posit._TAGET;
        _TAGET_NAP   = Posit._NAP;

        StartCoroutine(IE_GRABLING());
    }
Beispiel #2
0
    public S_ResultNearPosit GetNearChest(Vector3 Posit_)
    {
        int CompareDisSUm(S_A_Chest P1_, S_A_Chest P2_)
        {
            float DIS1 = Vector3.Distance(P1_.transform.position, Posit_);
            float DIS2 = Vector3.Distance(P2_.transform.position, Posit_);

            if (DIS1 > DIS2)
            {
                return(1);
            }
            if (DIS1 < DIS2)
            {
                return(-1);
            }
            return(0);
        }

        _Chests.Sort(CompareDisSUm);


        foreach (S_A_Chest SD_ in _Chests)
        {
            if (5 > Vector3.Distance(Posit_, SD_.transform.position) && SD_._Enable)
            {
                GameObject[] RES = SD_.GetPosit().GetNearPosit(Posit_);
                if (RES != null)
                {
                    S_ResultNearPosit RES2 = new S_ResultNearPosit();
                    RES2._Chest = SD_;
                    RES2._TAGET = RES[0];
                    RES2._NAP   = RES[1];
                    return(RES2);
                }
            }
        }


        // return  _Chests.Find(A => { return 5 > Vector3.Distance(Posit_, A.transform.position) && A._Enable; });
        return(null);
    }