// 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); } } }
void ReleaseJunk(JunkObjectData junkData) { //Tell junk to release junkData.ReleaseRope(); //Decrease load counter currentLoad -= junkData.currentSize; }
void CollectJunk(JunkObjectData junkData) { //Tell junk to attach junkData.AttachRope(junkConnectionPoint, ropeConnectionDistance); //Add to list collectedJunk.Add(junkData); //Count up load currentLoad += junkData.currentSize; }
void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.layer == layerToCheck) { JunkObjectData junkData = other.gameObject.GetComponent <JunkObjectData>(); if (junkData != null) { objectsInArea.Add(other.gameObject); } } }
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); } } } } }
// 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); } } } } } }