void Update() { //Debug.DrawRay(cam.transform.position, cam.transform.TransformDirection(Vector3.forward), Color.red); RaycastHit hit; if (Physics.Raycast(cam.transform.position, cam.transform.TransformDirection(Vector3.forward), out hit, range)) { if (hit.collider.tag == "Node") { if (nodeEssence != null) { info.SetActive(false); } nodeEssence = hit.collider.gameObject.GetComponent <NodeEssence>(); info = nodeEssence.info; info.SetActive(true); if (onScan) //IF SCANNING { //Debug.Log("gets scanned"); if (time <= 0) { //Debug.Log("timer is 0"); time = drainPower; for (int i = 0; i < nodeEssence.nodeEssenceObjects.Length; i++) { nodeDisplay = nodeEssence.nodeEssenceObjects[i].GetComponent <NodeDisplay>(); if (!OneTimeRun) { OneTimeRun = true; essencesScanned = new Essence[nodeEssence.nodeEssenceObjects.Length]; essencesAmount = new int[nodeEssence.nodeEssenceObjects.Length]; for (int j = 0; j < essencesScanned.Length; j++) { bool gotten = true; for (int k = 0; k < knownEssences.knownEssences.Length; k++) { if (nodeEssence.nodeEssences[j] == knownEssences.knownEssences[k]) { gotten = true; Debug.Log("GET IT"); break; } else { gotten = false; } } if (!gotten) { Essence[] temp = new Essence[knownEssences.knownEssences.Length + 1]; knownEssences.knownEssences.CopyTo(temp, 0); knownEssences.knownEssences = temp; knownEssences.knownEssences[knownEssences.knownEssences.Length - 1] = nodeEssence.nodeEssences[j]; } } } if (nodeDisplay.amount > 0) { essencesScanned[i] = nodeDisplay.nodeEssence; nodeDisplay.amount -= 1; nodeDisplay.UpdateAmount(); essencesAmount[i] += 1; nodeEssence.nodeEssences[i].amount += 1; mobileInput.Vibrate(); } Debug.Log(essencesScanned[i] + " " + essencesAmount[i].ToString()); //INFO OUTPUT essence + amount } } else { //Debug.Log("timer goes down"); time -= Time.deltaTime; } } } else { //if its not a node if (nodeEssence != null) { info.SetActive(false); } } } else { if (nodeEssence != null) { info.SetActive(false); } if (OneTimeRun) { OneTimeRun = false; //resets } } }