Exemplo n.º 1
0
 void TravelToParent()
 {
     travelTimeParent_ += Time.deltaTime;
     if (travelTimeParent_ > travelSpeed_)
     {
         GameObject toRemove = null;
         foreach (GameObject bodyPartGO in toParent_)
         {
             //TentaclePart bodyPart = bodyPartGO.GetComponent<TentaclePart>();
             if (bodyPartGO.transform.position != tentacle_.transform.position)
             {
                 bodyPartGO.transform.position = Vector3.MoveTowards(bodyPartGO.transform.position, tentacle_.transform.position, Tentacle.fastTravelSpeed_ * Time.deltaTime);
             }
             if (bodyPartGO.transform.position == tentacle_.transform.position)
             {
                 toRemove = bodyPartGO;
             }
         }
         if (toRemove != null)
         {
             toParent_.Remove(toRemove);
             tentacle_.RemoveBodyPart(toRemove);
         }
         travelTimeParent_ = 0;
     }
 }
Exemplo n.º 2
0
    void PartialReturn()
    {
        travelTime_ += Time.deltaTime;
        if (travelTime_ > travelSpeed_)
        {
            GameObject   toRemove = null;
            TentaclePart headPart = null;
            foreach (GameObject bodyPartGO in tentacle_.BodyParts_)
            {
                TentaclePart bodyPart = bodyPartGO.GetComponent <TentaclePart>();
                if (middleGO_ == null && bodyPart.BodyPartId_ == 0)
                {
                    Vector3 midlePos = Vector3.MoveTowards(bodyPart.targetGO_.transform.position, tentacle_.transform.position, Vector3.Distance(tentacle_.transform.position, bodyPart.targetGO_.transform.position) / 2);
                    midlePos  = Vector3.MoveTowards(midlePos, tentacle_.Target_.transform.position, -0.3f);
                    middleGO_ = new GameObject();
                    middleGO_.transform.position = midlePos;
                    bodyPart.targetGO_           = middleGO_;
                    headPart = bodyPart;
                }
                if (bodyPart.BodyPartId_ == 0 && !bodyPart.atDestination)
                {
                    /*Vector3 middlePoint = Vector3.MoveTowards(bodyPart.targetGO_.transform.position, tentacle_.transform.position, Vector3.Distance(bodyPart.targetGO_.transform.position, tentacle_.transform.position) / 2);
                     * bodyPart.transform.position = Vector3.MoveTowards(bodyPart.transform.position, middlePoint, 0.01f);*/

                    bodyPart.transform.position = Vector3.MoveTowards(bodyPart.transform.position, bodyPart.targetGO_.transform.position, Tentacle.travelSpeed_ * Time.deltaTime);
                }
                else
                {
                    bodyPartGO.transform.position = Vector3.MoveTowards(bodyPartGO.transform.position, tentacle_.transform.position, Tentacle.travelSpeed_ * Time.deltaTime);
                }
                if (bodyPartGO.transform.position == tentacle_.transform.position)
                {
                    toRemove = bodyPartGO;
                }
            }
            if (toRemove != null)
            {
                tentacle_.RemoveBodyPart(toRemove);
            }
            travelTime_ = 0;
        }
    }