コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        if (ShouldHook() && currentLoad <= maxLoad)
        {
            CollectJunk();
        }

        if (ShouldRelease())
        {
            ReleaseJunk();
        }

        currentLoad = 0;
        for (int i = collectedJunk.Count - 1; i >= 0; i--)
        {
            JunkObjectData junkData = collectedJunk[i];
            if (junkData != null)
            {
                junkData.joint.attachedRigidbody.velocity *= 0.99f;
                currentLoad += junkData.currentSize;
            }
            else
            {
                collectedJunk.Remove(junkData);
            }
        }
    }
コード例 #2
0
    void ReleaseJunk(JunkObjectData junkData)
    {
        //Tell junk to release
        junkData.ReleaseRope();

        //Decrease load counter
        currentLoad -= junkData.currentSize;
    }
コード例 #3
0
    void CollectJunk(JunkObjectData junkData)
    {
        //Tell junk to attach
        junkData.AttachRope(junkConnectionPoint, ropeConnectionDistance);

        //Add to list
        collectedJunk.Add(junkData);

        //Count up load
        currentLoad += junkData.currentSize;
    }
コード例 #4
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.gameObject.layer == layerToCheck)
     {
         JunkObjectData junkData = other.gameObject.GetComponent <JunkObjectData>();
         if (junkData != null)
         {
             objectsInArea.Add(other.gameObject);
         }
     }
 }
コード例 #5
0
 void CollectJunk()
 {
     if (pickupArea.objectsInArea != null)
     {
         for (int i = pickupArea.objectsInArea.Count - 1; i >= 0; i--)
         {
             GameObject gameObject = pickupArea.objectsInArea[i];
             if (gameObject != null)
             {
                 JunkObjectData junkData = gameObject.GetComponent <JunkObjectData>();
                 if (junkData != null)
                 {
                     pickupArea.objectsInArea.Remove(gameObject);
                     CollectJunk(junkData);
                 }
             }
         }
     }
 }
コード例 #6
0
 // Update is called once per frame
 void FixedUpdate()
 {
     if (pickupArea.objectsInArea != null)
     {
         for (int i = 0; i < pickupArea.objectsInArea.Count; i++)
         {
             GameObject gameObject = pickupArea.objectsInArea[i];
             if (gameObject != null)
             {
                 JunkObjectData junkData = gameObject.GetComponent <JunkObjectData>();
                 if (junkData != null && !junkData.collected)
                 {
                     if (junkData.collectTimer++ >= collectionTick)
                     {
                         gameController.AddPoints(junkData.pointValue);
                         gameController.DestroyJunk(gameObject);
                     }
                 }
             }
         }
     }
 }